SAMD21 - Konstrukteure unterbelichtet?

Gast #6014908
Lesenswert?

Hallo,

ich bin bei der Master-SPI gerade über ein idiotisches "Feature" 
gestolpert und frage mich, warum man das gerade so - bei einem 32Bit-µC 
- umgesetzt hat.
Und zwar geht es um das (Hardware-)Slave-Select-Signal.
Im DB ist es ja wenigstens beschrieben, dass wenn MSSEN= 1 ist,
die SPI nach jedem gesendeten Byte(!) !SS auf high setzt und eine Pause 
von fast 4Bit macht!
Das verringert nicht nur unnötig die Datenrate um 33%, sondern ist bei 
vielen Slave-ICs fatal, die erwarten dass während des ganzen Frames 
(>8Bit)
!SS auf low bleibt.
Die Idiotie der Entwickler zeigt sich für mich auch dadurch,
dass die SPI ja ein TXC-Flag hat, das man zur Ansteuerung von !SS
korrekter Weise hätte nutzen können! Dann wären die Pausen genauso 
unnötig!
Grrrrr...
Jedenfalls ist dieser HW-Modus für mich praktisch nie benutzbar!
Zusätzlich brauche ich bei meinen selbst geschriebenen allgemeinen 
SPI-Initialisierungsroutinen jetzt zusätzliche Fallunterscheidungen und
muss !SS umständlich selbst ansteuern...
Gerade habe ich zudem herausgefunden, dass wenn man MSSEN= 0 setzt,
anscheinend kein RXC-Flag mehr gesetzt wird! Kann das sein???
Das macht in meinen Routinen zusätzlich Scherereien...

...Oder habe ich 'was übersehen?
Gast #6014963
Lesenswert?

Meine Güte, einen I/O zu setzen ist auch extrem umständlich.
In Verbindung mit DMA braucht man sowieso eine Funktion um den DMA zu 
starten, da kann man auch den I/O setzen.
Und wenn der DMA durch ist nimmt man den I/O eben im Interrupt zurück.

Mehr Features würden mir auch besser gefallen, zum Beispiel 32 Bit SPI.
Aber so ist das eben.
#6015154
Lesenswert?

Alexxx schrieb:
> ich bin bei der Master-SPI gerade über ein idiotisches "Feature"
> gestolpert

Ebenso ist es mir bei den STM32 mal ergangen. Die einfache (aber doch 
sehr praktikable) Lösung war, wie von Rudolph schon erwähnt, den Pin 
manuell zu setzen. Damit hat man auch mehr Freiheiten beim Pinout.

Hardware-NSS braucht man meiner Meinung nach nur im Slave-Modus und da 
kann man den anderen Master ja so einstellen, dass es mit der 
Framebreite passt.

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