Jump to content

Recommended Posts

Posted

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!

  • 2 weeks later...
Posted

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?

Posted

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...