I use a polled system without DMA. When filling the 128 worlds FIFO with a write water mark of 128 words and 8 word burst I get sporadic problem that BWEN are set to 0 and do not change. The water mark should set when BWEN should be activated. But independent BWEN should be set to 1 when the FIFO is empty and it should be empty when all the bytes are transferred. The water mark should only protect the FIFO from bursting to many bytes when the FIFO are almost full. So why could this happened and what should be considered when this problem occur.
There is an remark that water mark is only for DMA but it seems to be working for non DMA modes anyway. Should I use another check for FIFO ready bit or it is okay to use the water mark.
When the stuck state happens I also get the following state:
Data line 0 are low, data timeout (DTOE) and transfer complete (TC).
Full memory dump:
AZSD:0219C000|>00000000 00FF0200 006E0100 193A0000
AZSD:0219C010| 00000900 FFFFFFFF 320F5913 00D04F01
AZSD:0219C020| FE8D8188 08800024 000A0207
AZSD:0219C030| 00100002 157F51FF 157F51FF 00000000
AZSD:0219C040| 07F30000 08800880 80000022 00000000