Other Parts Discussed in Thread: TCA9539, TCAL9539
Tool/software:
Hi everyone:
I'm in the process of updating our old design and I'm considering using 2 units of ISO1228. I would like, if possible, to get some feedback around the way I'm trying to solve the implementation, in case there is a better way to do it and to solve some questions I have about it.
My principal design restriction is that I need to get at least 4 inputs with interrupt capabilities on my uC as the signals may appear every 62.5 uSec lasting for about 1 uSec (Those are kind of tachometers).
My initial estimations say that I can continuously poll the two devices via SPI in a Daisy Chain connection and my uC would get a representation of the state of the inputs including the "tachometers". But also - to be more precise - I could relay on the state of the INT pin to issue a register read via SPI before missing the signals. However all that would require a profound change in my uC firmware that currently relies on simple interruptions which are very accurate.
At the same time it seems to me that it would be a waste not taking advantage of ISO1228 perks of being able to set individual filters for every channel and its ability to determine the error condition of every channel. For that I need SPI communication in conjunction with parallel.
Assuming I would be able to find enough IOs on my uC (a TIVA TM4C123), please help me to determine if I'm correct with the following:
- For the ISO1228 that would have the interrupts I would need:
- The 8 OUTx pins (Which also include the 4 SPI pins)
- To account for a pin for COMM_SEL to conmute between SPI and parallel communication. At start I need to configure the device with the Filters, parallel comm is needed at runtime, and I would need to switch to SPI in case I need to determine the reason of the fault or the state of the wires.
- A Pin for nFAULT is required to determine when to switch to SPI.
- OUT_EN is not needed, right? It is not clear to me when this could be useful? I understand that the outputs are enabled by COMM_SEL, then, what is the use of OUT_EN?
- For the other ISO1228 that does not need interrupts:
- The 4 SPI pins are required, although it can't be the same port on the uC as the previous ISO1228 will occupy it with the output status at runtime.
- The COMM SELECTION would be fixed to VCC1 as no comm switching is necessary.
- Burst won't be implemented, as I need to share the SPI with other peripherals. Then BURST_EN and SYNC are not required.
- nINT would not be necessary as I would be polling the device continuously.
- nRST could be needed at any point? I'm not clear when would it be necessary. Let's say If there is the need to reset the comm, Won't bt the CS on the SPI will take care of resetting the communication?
Any guidance on this would be very much appreciated.
Thank you!