Hi,
I have a problem which is not easy to explain due to the complexity of the software used on the AM3358. So I'm looking more for ideas what the reason could be/where to investigate further.
Following situation: there is a bare-metal firmware running on this AM3358 (or to be more exact: on this BeagleBone) This firmware makes use of loads of interfaces an interrupts of the SoC. One of these many interfaces is the UART1 at base address 0x48022000. This UART makes use of a 48 MHz input clock, the related clock divisor is calculated based on the oversampling mode and transmission rate. This all is working properly, when looking at the transmitted data using an oscilloscope, the resulting signal is quite perfect and comes with a low jitter only.
Now sometimes (may be when some other stuff in the firmware is running, the exact circumstances are no clear) the transmitted signal is more or less damaged, most often it seems the stop-bit is trashed because the last data bit is too long. Sometimes it also seems other bits are too long. So the timing of the whole data transmission seems to be out of sync.
As I have absolutely no idea, what other parts of the firmware could have an influence here, my question is: what could cause such a behaviour? What perhaps could let the UART stumble this strange way where the transmitted bits (not the bytes!) are delayed? Any ideas and hints are welcome so that I can find a starting point to look at!
Thanks :-)