2013-09-22 11:50 AM
I am currently reading a high speed ADC over SPI1. E11 is configured to generate a DMA SPI write/read when the busy signal from the ADC goes low. A double buffered DMA moves the data from SPI to memory. Works well at 1 MSPS. I thought I was done.
Unfortunately for the final design I need to go through optocouplers and the propagation delay is too great. I believe the normal solution is to use two SPI devices and loop back the clock signal from the first and have the 2nd act as a slave. But SPI2 and SPI3 are maxed at 21 MHz which is a little too slow to pull the data off before the next conversion. I need to continue to trigger on the external ADC's busy going low, but instead of writing to SPI to generate pulses I need to generate 16 pulses at 24 MHz. SPI1 would be configured as a slave and the current DMA scheme can remain the same. Software interrupts would be too slow so it has to be done with DMA, timers, etc. I've investigated the repetition count but it doesn't seem to have the ability to reset as it only generates an interrupt. I suspect another timer will need to be used. Suggestions for the easiest method to accomplish this would be appreciated. Thanks in advance.