I’ve noticed SD card writes causing video glitching artifacts.
EMX running 18.104.22.168 Premium library.
Can this be rectified?
Is it a know issue?
Can someone confirm similar results on their own hardware? (esp vga display)
We use the EMX on a custom board outputting to a VGA monitor display through resistor ladders. We also use the SD card for persistent storage. We noticed that during the SD card wites, the screen sometime gitches. The glitch can manifest itself as part of the screen jerking to the left (although it might sometimes jerk to the right?) Sometimes parts of horizontal lines of pixels will show as colours other than what is expected.
The size of the glitch seems to be related to how long the SD card writes for and so is related to how many bytes are requested to be written at a time. I found during my test that 6000 byte writes helped to produce the glitch artifacts. Although our actual app was only doing 200 to 300 byte writes when we noticed it.
To rule out anything about the app code, i wrote some test code that just displayed vertical colour bars with thin vertical black lines in between. Then included code to write 6000 bytes to the SD card over and over with 500mS interval in between. The glitches were quite pronounced on the vga monitor.
Then to test some other hardware, I tried the same test on the EMX Development System V1.3 with the TFT LCD that came with it. I just changed the video settings and the colour bar pattern to suit the display. The jerking glitch artifact is apparent with this scenario albeit not as severe.
I’ve been able to see the gitched data on the RGB data lines and the Hsync signal with an oscilloscope. Vsync is a bit difficult to see but it must be happening on Vsync for the jerk glitch to occur. I still need to do some experiments but the glitch pulse appears to have a lower impedance than one would expect from a signal if the glitch effect was caused by induced crosstalk on our pcb traces (also, the sd card lines are some 4.5cm? away from the video lines on our pcb). Even after adding a weak voltage divider on the line to test this theory, the glitched part of the data is still 3.3V which makes me suspiscious that it might actually be generated from the module that way. The SD card writes don’t seem to affect the board’s 3.3V rail.