Hallo! Ich möchte einen STM32H753ZIT6 als SPI Slave verwenden, um Daten eines AD-Wandlers (SPI Master, AD7768-4) zu empfangen. Der ADC hat 4 Kanäle und sendet die jeweils 32 bit pro Kanal (inkl. Statusbits) aneinander gehängt (also 4 x 32 bit = 128 bit) bzw. im sogenannten TDM-Mode. Das bedeutet, dass ich nur alle 128 bit einen Puls durch den ADC auf der Data-Ready-Leitung bekomme, die ich an SPIx_NSS des STM32 klemmen würde. Kann das funktionieren? Der Mikrocontroller hat ja eine begrenzte Framesize (32 bit glaube ich). Würde der Rx-Buffer dann also immer überlaufen? Idealerweise würde ich die Empfangsdaten auch gerne direkt per DMA wegspeichern. Danke für eure Hilfe!
TDM? Das ist dann kein SPI. Nimm den "SAI" der kann TDM empfangen und wertet auch den Syncpuls in Hardware aus.
TDM heißt Time Division Multiplex. Tatsächlich muss ich zustimmen, dass dieses Format dann nicht mehr so ganz SPI entspricht, sondern eher an sowas wie I2S oder eben SAI erinnert. Mich würde dennoch interessieren, ob ich nicht trotzdem die normale SPI-Peripherie verwenden kann. Habe nochmal im Reference Manual nachgelesen: Der RX-FIFO hat eine Länge von 16 x 8 bit = 128 bit. Diese Länge passt exakt zu meinen 4 x 32 bit. So könnte ich einfach eine DMA-Operation auslösen, sobald der RX-FIFO voll ist. Das sollte doch gehen, oder nicht?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.