STM32H753ZIT6 als SPI Slave zum Empfang von 128 bit

Gast #6438073
Lesenswert?

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!
Gast #6438246
Lesenswert?

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?
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren