Pozdrav,
imam IR kamero priključeno na STM32F407 preko SPI-ja in vključen DMA. Pobiram dol okoli 40KB/s podatkov. Do tukaj je ok. STM je nato priključen na raspberry, ki služi zgolj za prikaz slike. Raspberry je konfiguriran kot SPI master (za slave bojda niso spisani gonilniki). Tukaj se pa pojavijo težave, namreč zgodi se 1x na XY poslanih okvirjev, da padeta iz sinhronizacije. Predvidevam, da DMA na STM-u ni uspel poslati vseh podatkov, raspberry pa je že zaključil z branjem. In potem ob naslednjem branju DMA pošlje ven preostale podatke in se seveda slika poruši. Sedaj rešujem stvar na ta način, da ob zaznavi napake pri prenosu resetiram STM. Seveda ima to posledico, da včasih vrže tudi kamero iz sinhronizacije.
Torej vprašanje je, kako softwarsko resetirat pointer na memory v DMA, da bo ob vsakem klicu začel pošiljati podatke od začetka. Oz. nekako resetirat DMA, marsikaj sem poskusil, ampak resetira ga samo reset kontrolerja (kakršenkoli).
Uporabljam pa HAL oz. Tilnove funkcije. Gledal po spletu in našel ljudi s posobnimi težavami, nisem pa našel recepta za reset DMA-ja.
Še slikica s kamere, kadar je prenos ok: