I'm starting up a project where i will have to use a SAMD21 and a external counter for example 74LS590D( does not have high enough bandwidth, but it is just a good example)
I wanna try replacing the 74LS590D 8 bit counter with the SAMD21G18. As it got the DMA function AND I'm awaiting 25 of them.
I did some research earlier and if i did single instruction loop where i count to 255 using assembly INC function I would in theory be able to to count at full CPU frequency aka 48MHz.
I don't need to have any interrupts running while counting so I can do a while loop until reaching the count of 255.
But I am really unsure how fast the DMA is and if I can get it to work just as fast as the counter. I don't have any eval board for it right now so i can't test out anything yet.
The only detail I've found is that with PORT.PINCFG.DRVSTR enabled it can drive 20pF capacitance at 15ns rise and 15ns fall so if i reduce the trace capacitence to less than 20puff i should be able to push it. 1/15ns = 66MHz and that it runs off AHB clock which is max 48MHz so I would say that limits the whole concept to CPU clock / 2 unless there is a way to have the AHB clock running out of phase with the CPU clock but that surely doesn't sound healthy.
TL;DR. Need a 8 bit parallel clock counter using DMA running 48MHz with SAMD21G18.