not specially in mb ng… i would write my own mios based code…
i dont want to waste midi io on my core32
is a other connection then midi to the mf module possible? if yes are there any drawbacks? or what are the pros and cons. and what if i have to use more then one mf module is the this solution then cascadeable
There are good reasons why I decided to use an UART based MIDI interface for interconnections:
universal approach, easy to setup from a (PC) and easy to connect to other cores
MIDI messages are buffered via FIFOs, this relaxes the MIOS32 application requirement. E.g. it could prioritize the handling of other tasks and doesn’t need to frequently poll for incoming messages to avoid information loss. By default the FIFOs are dimensioned with 64bytes, which means that we can bridge up to 20 mS
no need to program special interface communication handlers -> less troublesome & no special knowledge required
MIDI cable can be up to 10m
optocouplers decouple the noisy MF voltage from the MIOS32 core, this improves EMC
level-shifting 3.3V to 5V part of the physical MIDI interface
So, if you are searching for alternative interfaces, they all have cons
you have to learn how to program such interfaces. I won’t have so much time to help you on this… you’ve to find your own way
the MBNB_MF_NG firmware is programmed in assembly language which is difficult to enhance for people who never did this before
all IO pins of the MBHP_MF_NG module are allocated, for a different interface you’ve not only program a new firmware, you also have to change the circuit
Possible interfaces:
SPI
Cons:
no programming example available for MIOS8
requires 4 IO pins (RC3, RC4, RC5, RA5)
MBHP_MF_NG circuit has to be modified. But especially RA5 does hurt, since this is an analog input (actually a killer argument)
no programming via MIDI possible anymore, you’ve to use a PIC programmer instead
actually more valuable than MIDI ports, since only 3 SPI interface ports exist on a typical MIOS32 core. One (J8/9) is allocated for SRIO, another one (J16) for SD Card and Ethernet at 3.3V level, another one (J19) is free, but typically used for AOUT/AINSER, etc… However, if SPI, than you would either have to sacrifice J8/9 (-> no SRIO), or J19 (-> probably unusued in your application? But couldn’t be used for all applications, so: only a dedicated solution for your purposes)
MIOS32 core has to frequently service the SPI to avoid message loss
programming will be much more complicated
I2C
Cons:
requires 2 IO pins (RC3, RC4)
MBHP_MF_NG circuit has to be modified
no programming via MIDI possible anymore, you’ve to use a PIC programmer instead
MIOS32 core has to frequently service the I2C
I2C overhead higher than for other interfaces, will slow down your application and/or result into message loss
programming will be much more complicated
CAN
Cons:
requires different PIC chip (e.g. PIC18F4685)
requires 2 IO pins (RB2, RB3)
MBHP_MF_NG circuit has to be modified
MIOS32 core has to frequently service the CAN interface.
Similar to I2C and SPI there is a high risk for message loss if this isn’t done frequently
programming will be most complicated compared to other interfaces