I'm trying to interface to a MAX11043 (4-channel synchronous ADC with SPI output). It has an end-of-conversion pin, which when active means that a bunch of data is available to read via SPI.
Which is fine, except I want to run this baby at 200kHz (ish). Which means that using the EOC pin as an IRQ input is fairly nuts. (CPU is an AVR AT32UC3A.) The ADC data will be shipped out, raw, in Ethernet messages - not one sample at a time ;) - so needs to be aggregated into main memory for despatch (with some extra room for Ethernet delays, say 1s-worth). The CPU does have a SPI DMA subsystem, but needs to be primed in code...
So - one way of solving this is to find (or design) a FIFO with SPI in, and SPI (or any other form of DMA-able CPU subsystem - again seems nuts to shuffle this one byte at a time) out. Short of a Lattice IP core, I'm finding nothing off-the-shelf. Could design some logic to use a parallel dual-port FIFO, but seems wrong: I'd have to convert from SPI to parallel on the way in, and the reverse on the way out.
I've asked Maxim the obvious question: how do I interface to this thing? They've not been able to help.
Any ideas, folks?
Steve