Other Parts Discussed in Thread: SYSCONFIG,
Tool/software:
The high level is I want something like a ring buffer, where i can keep say 256 from an ADC channel, and when a value is over some threshold, continue sampling only for 192 more, than stop.
I have this running slowly using interrupts, but now i'd like to see how fast i can make this run.
If i wanted to do this at max possible speeds. I wanted to get this question started before i've finished going through the documentation (there is a lot to parse). a few questions...
1) first i want to note, i dont have an external clock, so i think i'm limited to 32mhz CPUCLK and ULPCLK what is the max throughput of the ADC with these limitations?
2) side question, I used the sysconfig to setup the chip, now i just saw someone reference the Analog Configurator, is one recommended over the other? I haven't installed the Analog Configurator yet, i have not seen its features or how to use it with CCS yet.
3) what is my best bet for filling the ring buffer, fifo or DMA? i could imagine pulling from the fifo, checking the threshold and then putting it into my own buffer. if i pull from the fifo, i imagine i could do it at max sample speed?
4) if i use the fifo, how do i know how many items are in the fifo? i see CCS function DL_ADC12_getFIFOData, i see in the technical reference the register, but i dont see a count. I dont see the data format either. in a different e2e post, i saw something about a data valid bit with the data, but i'm not seeing it.
5) would i need to use the DMA? how would you do something like a ring buffer with the dma, and would the samples be interrupted? (i could imagine setting up a dma for 32 samples, then on complete move the buffer location and re-enabling the dma, then during this time i could try to look through the previous samples to see if i need to stop.
6) regardless of how i get the data, i was imagining that the ADC samples are automatically running, whats the best way to do this? i had setup the ADC to trigger off a timer interrupt, but then i had to look at the ADC interrupt in order to allow it to sample again, is this a necessary step? or is there a way to just have the ADC go continuously?













