[M] I/O Expander

A project log for Tetrinsic [gd0041]

A motorised, pressure sensitive and haptic-feedback slide encoder.

kelvinAkelvinA 09/26/2022 at 18:021 Comment
I read through the Ti version of the PCA9555A schematic and it's actually simple to implement, hardware wise. I'm not even sure if I'd need to use the interrupt pin, but even with it, my ribbon cable is only 4 lanes now:
I might give nSync an IO pin instead of using the serial clock. According to my calculations with a 8.192MHz ADC clock, as long as the serial clock is over 4kHz, the chip will just synchronise and not reset. I can't imagine a situation where holding the pin for over 1/4000 of a second would have any adverse effects, and should facilitate a reset of the chip in a timely manner.

The reason why I feel that the interrupt may be useful is because of the ADC's "data ready" pin and the motor controller's nFault. Not like it costs money or much space to keep it or omit it, so I'll keep it.

The next steps are to double check that I've set up the sense pins correcty, see if I can implement suggestions on circuitry for taking ADC measurements and then start creating the custom footprints for the PCB.


kelvinA wrote 09/27/2022 at 19:32 point

I've opted for the more expensive PCA9671 that has a clock speed of 1MHz instead of 400kHz. The hope is that it would be better suited for the PWM signals of the MP6543. Additionally, I've changed sData and Interrupt to CH0 and CH1 on the ribbon cables. This is to reduce traffic on one line. For example, all the left Tetrinsics on a keyboard could be on channel 0 and all the right ones on channel 1.

I haven't yet calculated exactly what kinds of speeds I need for the I/O Expander, but I want to obtain >250Hz polling rate of Tetent.

  Are you sure? yes | no