Hi,
I want to use FlexSPI on the imx8m mini. It seems working but when i write bock of data ,i have noticed that writing data to FlexSPI TX IP FIFO is really slow, in my case writing 32 bytes needs around 4 us, also when i try to toggle GPIO by directly writing to the dedicated register takes long time (150 ns , the assembly code looks fine with only 3 instructions) which seems too slow, i tried also to fire a timer interrupt to be sure that clock/pll configurations are fine.
All the tests are made on the M4 core and the code is based on the SDK_2.8.2_EVKB-IMXRT1050; so i am wondering what is the time needed to access peripherals registers.
Solved! Go to Solution.
Hi Abdellahkafi
regarding "time needed to access peripherals registers" - general answer
this is caused by bus arbiters, like NIC301 in i.MX6 processors, similar modules
are used in i.MX8 processors. Good latency description can be found in
sect.3.4 NIC transfer latency AN4947 "Understanding Vybrid Architecture"
https://www.nxp.com/docs/en/application-note/AN4947.pdf
So 150 ns for toggling GPIO by directly writing to the dedicated register may be
considered as normal.
Best regards
igor
Hi Abdellahkafi
regarding "time needed to access peripherals registers" - general answer
this is caused by bus arbiters, like NIC301 in i.MX6 processors, similar modules
are used in i.MX8 processors. Good latency description can be found in
sect.3.4 NIC transfer latency AN4947 "Understanding Vybrid Architecture"
https://www.nxp.com/docs/en/application-note/AN4947.pdf
So 150 ns for toggling GPIO by directly writing to the dedicated register may be
considered as normal.
Best regards
igor
Thanks for your fast answer
Concerning FlexSPI, writing 32 bytes (eight 32-bits words ) to IP TX-FIFO, I changed the watermark level to 3 in my case and the filling time is around 2.5 us, is it expected and is there any way to make it faster without using DMA?
Best regards