Forum: Mikrocontroller und Digitale Elektronik SPI-Bus, Eingangskapazität und max. Anzahl Bauteile


von Bernhard Roth (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Zur Zeit entwickle ich einen Schaltplan wo 16 MAX3100 (SPI-UART) an
einem SPI-Bus eines atmega168 hängen sollen. Die MAX3100 haben eine
Eingangskapazität von 5pF.
Um das System möglichst schnell laufen zu lassen wollte ich die
maximale SPI-Frequenz des mega168, der mit 20MHz getacktet ist,
verwenden.
Um die Ausgänge des mega zu entlasten hatte ich vor einen Buffer (z.B.
2x 1/6 74AC14 hintereinander) anzuschalten. Die Frage ist nun ob ein
Buffer ausreicht oder ob ich lieber den SPI-Bus segmentiere (also 2x8
oder 4x4 MAX3100 mit einzelnem Treiber). Man müsste natürlich auch
beachten das die SDO Ausgänge der MAX3100 auch alle zusammenhängen und
hier kein Treiber vorgesehen werden kann...
Gibt es eine Grundregel die man bei solchen Konstellationen beachten
sollte und die ich noch nicht kenne? :)

Für die Abfrage der UART's Bauteile habe ich mir eine
Multiplex-Schaltung überlegt mit der der MCU alle Bauteile schnell
durchscannen kann. Sobald ein UART z.B. Daten hat, bekommt der MCU auf
#INT ein Signal und kann dann den entsprechenden Baustein wählen indem
#CS auf LOW gezogen wird. Wie ist Eure Meinung dazu? Sieht vielleicht
jmd noch einen Fehler?

Vielen Dank im voraus!
Grüße

Bernhard

von arc (Gast)


Lesenswert?

Falls noch nicht zu spät, hier noch eine andere Idee:
SC16IS752/762 (Dual Uart mit SPI-Interface), der noch den Vorteil von
8-IOs mit Interrupt-Fähigkeit + Interrupt-Latch hätte.

http://www.standardics.philips.com/products/sc16/pdf/sc16is752.sc16is762.pdf

von Pieter (Gast)


Lesenswert?

moin moin,

laut Datenblat liegt die max. Taktfreq. des 3100 bei 4,2MHz.
In dem splitting des INT sehe ich keinen Sinn. Die Ansteuerung des
Decoder/Multiplexer erfolgt binär, also ist doch die Adresse des INT
bekannt.

Mit Gruß
Pieter

von Bernhard Roth (Gast)


Lesenswert?

arc: Wir haben noch einige von den MAX3100 rumliegen, die sollen verbaut
werden :)

Pieter: Meinst Du es funktioniert wenn man den SPI-Bus aller 16
Bausteine zusammenschließt? Ich habe die Befürchtung das die 80pF
Eingangskapazität etwas viel sind bei 4,2MHz Busfrequenz... Deswegen
dachte ich an die Aufteilung.
Zu den INT's: Welches Splitting der INT's? Ich mache im AVR erstmal
nichts anderes als die Decoder/Multiplexer in einer Endlosschleife von
0-15 durchzuscannen. Ist bei einem der INT-Ausgang LOW springt der AVR
in die interrupt-routine und prüft was denn ansteht. Um den passenden
MAX dann zu selektieren muss einfach nur der #CS-Eingang auf Low gelegt
werden und es kommt am richtigen Chip an.

von A.K. (Gast)


Lesenswert?

Was ist der Unterschied zwischen der Treiberleistung eines 74AC14 und
des Mega168? Bei 4MHz und leidlich dichter Plazierung sollte das auch
ohne Puffer möglich sein.

Mögliche Alternative zum IRQ-Muxer: Prioritätsencoder '348. Liefert
die IRQ-Nummer frei Haus (auf Ax in umgekehrter Richtung).

von Pieter (Gast)


Lesenswert?

moin moin,

bei INT wird ja "rückwärts gemuliplext", ist dann schon klar.
Genauso könnte mann ja auch den MISO schalten und MOSI+ CLK dann
vorwärts.  Eventuell einen 4053 in AC, also immer ein 4053+MAX3100.
MOSI, CLK und Select mit Bustreiber.
Ob der Aufwand lohnt? Nach Datenblatt ist der MAX3100 bei 100pf
angegeben. Eine Frage der Leitungskapazitäten und so blank schwer zu
beantworten.

Mit Gruß
Pieter

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.