Raspberry Pi Inmos Link

While I haven’t progressed much with the AVM M1 as an Inmos link adapter, I have also been designing an Inmos IMS-C011 based link adapter for the Raspberry Pi.

The Raspberry Pi link interface uses two PCF8574 I2C I/O expanders to interface to the Raspberry Pi. I2C makes development easier, as all can be done in user-mode using Python.

The software that I wrote for the AVM M1 before was not reliable, first I thought this was due to my own programming, but on more investigation it turs out that the AVM driver is interfering, but without a driver the Linux PCMCIA subsystem doesn’t allocate resources for the card.

For my purpose and because I was getting on a roll designing some other printed circuit boards in Eagle, I deciced to postpone the M1 for a while to experiment with this new link board for the Raspberry Pi.

The PCF8574 I/O expanders divide the work, one (on i2c address 0x20) handles the databus to the IMS-C011 link adapter, the other (on address 0x21) the control signals.

The circuit board shown above still has some issues, it could use a better shape to clear the composite video connector on the Raspberry Pi. I had wired the Input and Output interrupts of the IMS-C001 directly to some Raspberry GPIO’s without thinking of the 5 volt levels the IMS-C011 uses, to prevent damage to the Raspberry Pi’s GPIO’s I’ve cut the races to these GPIO’s on this board.

No software has been written yet, but the first hardware tests seem to be ok, the 5 MHz oscillator is running and both PCF8574’s can be seen from the Raspberry Pi side of things:

hessch@leibniz ~ $ sudo i2cdetect -y -a 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: 20 21 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

The status LED’s can be made to blink with a quick and dirty shell script:

1
2
3
4
5
while [ == ]
do 
  sudo i2cset -y 0 0x21 0x40 0xff; sleep 1
  sudo i2cset -y 0 0x21 0x40 0x00; sleep 1
done

So far so good, to be continued…

Comments