AlbertR Regular Member Joined: 29/05/2025 Location: GermanyPosts: 61
Posted: 09:42am 26 Sep 2025
Hi Volhout,
thanks for the recognition. I think I have learned so much from your explanations about PIO. I am pleased that I can give something back.
In
PIO ASSEMBLE 1, "out null, 8 side &b00 [0]" '8 shift:clear osr for autopull
the OSR will be empty, and here the "autopull" will be done or wait, if no data is present, I think. But that doesn't matter, because the DMA will always fill the FiFo until the number of 32bit words are reached. Then the DMA TX interupt will be fired.
About the "Stop" by triggering the interupt is also a question for me. When I made a PIO with DMA for WS2812, I have discovered that. In my thread
I discuss this with Peter. The trigger is FiFo-empty, although if PIO is working. Now I use there a precalculated Tic. If I could stop it myself in the IRQ-sub, I would be able to spend some time, but it stops alone . PIO stop is not needed. Here I spend some dummy-data at the end.
PIO DMA TX 1,0,770,PacA(),HubS'3x256 frame-data + 2 dummys to delay TX IRQ
They will be never shown, because they contain no EOL.