AnsweredAssumed Answered

NFC read pipelining example?

Question asked by Marc Lindahl on Mar 18, 2014
Latest reply on Apr 25, 2014 by Marc Lindahl

Are there any examples of using the Nand Flash Controller for continuous pipelined reads, including DMA?  There are some vague  examples of pipelining commands in the manual and AN4348 to different buffers in the NFC but nothing connecting DMA.


The idea is to stream data off the NAND flash as fast as possible into user memory. From the description the NFC can, in parallel, read a page from NAND into a buffer, perform ECC on a different buffer, and DMA yet a third buffer.  But I don't get how to do that, since there is no separate interrupt trigger for DMA complete.  There's only a command complete, and IDLE (which states it's command complete AND ECC complete AND DMA complete). But if you are constantly new issuing commands from the command complete interrupt, you'll never get an IDLE interrupt to tell when your DMA is complete so you can set the DMA to service the next buffer.  Or am I missing something?


It seems like the only way to do that is either not use the DMA and have the processor move the data out of the NFC buffer, or use the eDMA controller as a data mover, and use it's done interrupts to tell when your data is moved and ready to use. 


Otherwise I don't see how to pipeline....