Frage zur SPI beim BF532

Gast #469422
Moin,

im Moment entwerfe ich gerade eine Platine für einen Blackfin. Dabei 
möchte ich sowohl die PPI vollständig nutzen als auch drei SPI-Slaves 
auswählen können. Ein weitere Pin des GPIO geht für einen Interrupt 
drauf.
Da dann nur noch zwei Pins zur Auswahl der SPI-Slaves zur Verfügung 
stehen, wollte ich diese über drei AND- und zwei NOT-Gatter multiplexen. 
Geht das überhaupt? Das Slave-Select-Register (heißt wohl anders) läßt 
die gleichzeitige Auswahl mehrerer Slaves zu, was mich vermuten läßt, 
dass dann auf mehreren Pins ein ChipSelect gleichzeitig ausgeführt wird, 
es sich also multiplexen lassen müsste. Wie kritisch sind dabei 
Gatterlaufzeiten? Gerade da ich eine Minimalbeschaltung mit eben diesen 
fünf Gattern vorgesehen hatte und dadurch die Signale teilweise durch 
die NOT-Gatter verzögert werden, was vielleicht kurzzeitig falsche 
CS-Signale bedingt.

Vielen Dank,
joern
Gast
Moin,

noch so einer;-) Bin auch gerade dabei so ein Board zu machen.

Zum SPI-Timing: das ist alles sehr schön im Datenblatt (S.37) und 
Hardware-Manual zum BF532 beschrieben.
Simultanes Aktivieren mehrerer SPISELs geht, das nennen sie dann 
Broadcast Mode. Das Select wird mindestens eine halbe (CPHA=0) und 
maximal eine ganze (CPHA=1) SCK-Periode vor der aktiven SCK-Flanke 
ausgelöst. Zwischen zwei aufeinanderfolgenden Transfers wird das Select 
für eine halbe SCK-Periode inaktiv.
D.h. deinem Slavedevice muß im worst case die Zeit für ein halbes pSCK 
(z.B. 25ns bei 20MHz) minus der Gatterlaufzeit (ca. 15ns bei 74lvx139) 
genügen um einen Transfer zu erkennen. Wenn das nicht reicht, setzt du 
entweder CPHA=1 und/oder machst pSCK länger und/oder nimmst einen 
schnelleren Decoder.

(DISCLAIMER: Soweit die Theorie, du hast aber gute Chancen, daß das in 
der Praxis auch so funktioniert.)

Gruß,
Christian.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.