AGW Posted February 5, 2010 Report Share Posted February 5, 2010 I was hoping to get a "that will work" from the people in the know. I have read the MIDI Router pages from TK and want to know if the following setup would work. -The Core32 module with 8 I/O modules (IIC MIDI) -On/off switches to isolate specific devices that require Omni for communication. -I plan to use a LCD during testing, but the final unit will use LEDs for status notifications From what I have read theoretically 127 of the IIC devices can be used, but it requires a firmware change. If I am planning to use 8 of these, I guess that I would change something in the firmware of the IIC? Or am I misunderstanding and the change is required in the core? Any thoughts on how to implement the switches? I think that I am comfortable enough to build the parts and pieces, but I want to make sure that I can run 8 devices through the router. I currently have 5 things to connect and there is a possibility of more in future (true for everyone, I am sure). Thank you all! Quote Link to comment Share on other sites More sharing options...
AGW Posted February 13, 2010 Author Report Share Posted February 13, 2010 I was looking at the firmware code for the IIC modules and hope that I found the information about the IIC address. Code snippets are from the file iic.asm Original for the first four modules: ;; FUNCTION: IIC_Init_GetAddress ;; DESCRIPTION: initialises the IIC address only - can be called from the ;; mainloop to allow the change on-the-fly without device reset ;; IN: - ;; OUT: - ;; USES: - ;; -------------------------------------------------------------------------- IIC_Init_GetAddress movlw IIC_DEVICE_ADDRESS btfsc ID0_PORT, ID0_PIN iorlw 0x02 btfsc ID1_PORT, ID1_PIN iorlw 0x04 SWITCHBANK_0_1 movwf SSPADD SWITCHBANK_1_0 return Modified for additional 4 modules: ;; FUNCTION: IIC_Init_GetAddress ;; DESCRIPTION: initialises the IIC address only - can be called from the ;; mainloop to allow the change on-the-fly without device reset ;; IN: - ;; OUT: - ;; USES: - ;; -------------------------------------------------------------------------- IIC_Init_GetAddress movlw IIC_DEVICE_ADDRESS btfsc ID0_PORT, ID0_PIN iorlw 1x02 ;Changed 0 to 1 btfsc ID1_PORT, ID1_PIN iorlw 1x04 ;Changed 0 to 1 SWITCHBANK_0_1 movwf SSPADD SWITCHBANK_1_0 return Would I be able to update the firmware on the modules without having to flash the PIC? Quote Link to comment Share on other sites More sharing options...
TK. Posted February 18, 2010 Report Share Posted February 18, 2010 You only need to change the base address in iic.asm header. With IIC_DEVICE_ADDRESS EQU 0x18 the new device addresses will be 0x18, 0x1a, 0x1c, 0x1e No, it isn't possible to update the firmware via MIDI or IIC Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.