STM32H7 SPI6 Full duplex Slave + NSS

OP #7145230
Lesenswert?

Bei meinem STM32H7 Projekt habe ich gerade ein problem bez SPI6 als 
slave. Gegenstelle ist ein FPGA welches mit 50MHz taktet und dabei NSS 
über die gauer von 2 sCLK (dauer - sck clockt während dieser zeit nicht) 
hoch hält bevor der nächste 16 bit transfer startet.

Im code habe ich versuchsweise:
HAL_SPI_TransmitReceive_IT(&hspi6, &SPI6send, &SPI6recv, 1); im init und 
dann die in der ISR:

void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi){
if(hspi==&hspi6){
HAL_SPI_TransmitReceive_IT(&hspi6, &SPI6send, &SPI6recv, 1);
}}

Welches als STM master bei SPI1 auch so funktioniert, nur halt bei SPI6 
slave nicht.
HAL_SPI_TransmitReceive_IT sollte doch bei slave auch funktionieren, 
einfach die Daten werden bereitgestellt und wenn der Master dann den TX 
abgeschlossen hat interrupt.
Bedenken habe ich, dass die NSS =1 zeit nicht genügt für die ISR, anyway 
sollte doch zumindest jeden 2. Transfer ausführern. Die ISR wird jedoch 
nie bez SPI6 aufgerufen.
Angehängte Dateien:
OP #7145433
Lesenswert?

Gem. https://i.stack.imgur.com/zxkMI.jpg

sind nur 29MHZ drinn. Ok funktioniert aber mit 12.5MHz ebenfalls nicht. 
Verstehe ich NSS setup sowie hold time korrekt, dass diese sich ohne sck 
beziehen, die Zeit jedoch mindestens 2 sowie 1 Periode der max frequenz 
(29MHz) sind?

Weiter noch ein signaltap vom FPGA, systemclk ist 100MHZ. So wie ich das 
sehe ist dies korrekt und alle Anforderungen des STMs sind erfüllt?
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