Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frage zur SPI beim BF532


von joern (Gast)


Lesenswert?

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

von Christian G. (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.