Teensy 4.1 How to start using FlexIO?

@miciwan I just read your document on the wiki for the third time. It's great, really super helpful. But, do you have some examples other than the 12 bit wide transfer?

It would be great if you could perhaps start with the simplest example, one pin input for some different word sizes, say 8, 12, 16 bit words, and then the same thing as output. The next really important example would be two data streams in parallel. Then perhaps an 8 bit wide transfer, and finally, your tour-de-force, 12 bit wide.

Having the 12 bit word transfer as the only example feels a little like trying to learn fiddle by starting ith Blackberry Blossum. (I have a friend who did that, but it's not usual.)
 
@KurtE

HI, any chance of a simpler example? The business of routing through xbar seems a special case, from using so many pins. I could crib from what you have done, but when I get to that part I am stuck. I have no clue how to set it up when I do not need xbar.

Could you possibly, please show us an example with just two serial channels running in parallel?

Thank you
 
Reviving this thread on some new findings that I’ve made recently while trying to integrate flexio8080 with an RA8889 display controller.

Testing a block transfer of 480*320px (307200 bytes), one byte at a time

At 20Mhz bus speed the polling transfer takes 24ms, a DMA transfer takes 13ms

At 40/60Mhz bus speed, the polling transfer takes 19ms, a DMA transfer takes 7-8ms

Going any higher, DMA is capped at 7-8ms, and polling does not seem to improve either

Enabling or disabling register fast access has almost no effect on the transfer times.

60% of the polling time is spent waiting for the shifter buffer status to reset.

I don’t recall such high numbers when testing speeds back in 2021 when was working with @easone on the ILI9488 lib.

Was anything changed on FlexIO between td1.59 and 1.56/57?
 
Back
Top