ATSAMD51 empfängt Datenmüll auf SPI

Gast #6284427
Lesenswert?

Ich versuche hier gerade mit einem ATSAMD51G18 Daten auf zwei 
SPI-Eingägnen (der ATSAM agiert als Slave) zu empfangen. Beide SPIs 
nutzen den gleichen externen Clock und das gleiche Externe CS-Signal, 
aber unterschiedliche Datenleitungen. Da ich 22-Bit-Frames empfangen 
möchte, habe ich die SPIs entsprechend konfiguriert:
1
hri_sercomi2cm_set_CTRLC_DATA32B_bit(SERCOM5);
2
hri_sercomi2cs_set_LENGTH_LEN_bf(SERCOM5,22);
3
hri_sercomi2cs_set_LENGTH_LENEN_bit(SERCOM5);

Mein Problem: es werden zwar Daten empfangen (Abfrage per 
RXC-Statusbit), aber diese Daten sind ziemlicher Müll. 
Überraschenderweise stehen auch in den oberen 10 Bits des DATA-Registers 
Daten. Hier hätte ich eher erwartet, dass diese alle 0 sind, da ja nur 
22 Bit Empfangslänge konfiguriert sind.

Was habe ich hier möglicherweise übersehen? Schiebt das Eingangsregister 
trotzdem bei jedem SPI-Frame auf 32 Bit weiter, so dass die Daten jedes 
mal versetzt in DATA liegen? Wenn ja: kann man das irgendwie 
konfigurieren/resetten? Oder: was könnte hier sonst schief laufen?

Jeder Hinweis ist willkommen :-)

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