Replies: 9 comments 2 replies
-
It seems very complicated.
So, if no DMA is involved than why an answer from Marlin leads to skipped bytes? |
Beta Was this translation helpful? Give feedback.
-
A few hours later: there was a nice "No SD Card" on my TFT. So having just one serial enabled in Marlin hasn't fixed loosing bytes from TFT. |
Beta Was this translation helpful? Give feedback.
-
Just a follow-up: I'm still checking Marlin for a reason for the lost bytes. Already down in Arduino core for STM32, but no theory yet. |
Beta Was this translation helpful? Give feedback.
-
My head is dizzy checking Marlin... I haven't find anything yet too... I have a strong feeling it is MCU related. |
Beta Was this translation helpful? Give feedback.
-
@digant73 @kisslorand Johannes |
Beta Was this translation helpful? Give feedback.
-
I confirm that in case of Marlin there's no checksum nor line numbering used in UART communication. |
Beta Was this translation helpful? Give feedback.
-
It's more complicated than this. I forgot to mention (again) that I have done intensive HW log between the TFT and the motherboard. There were many times the TFT sent M221 and Marlin responded "No SD card" so it clearly interpreted M221 as M21. The monitoring was done by sniffing the very wires between TFT and motherboard. |
Beta Was this translation helpful? Give feedback.
-
I have always your measurements in mind. That's the reason I'm seeing the problem on Marlin side (blocked Interrupts). Edit: |
Beta Was this translation helpful? Give feedback.
-
I might have found something. Testing it... |
Beta Was this translation helpful? Give feedback.
-
@kisslorand: I have a new information:
I examined Marlin code and there's no DMA involved in Serial communication for STM32. Just single byte interrupts. (The comment mentioning DMA you found seems related to SDIO.) So it's even more obvious that answering of M220 can happen during reception of M221.
But now I have no new theory, why a corruption occurs.
Regards, Johannes
Beta Was this translation helpful? Give feedback.
All reactions