Forum: Mikrocontroller und Digitale Elektronik Wieviele 74HC595 am SPI-Bus möglich?


von Elektrikser (Gast)


Lesenswert?

Hallo,

ich beschäftige mich gerade mit dem Hardware-SPI-Bus. In den Artikeln
ist ja der Anschluss eines 74HC595 erklärt und ich habe das
spaßeshalber aufgebaut. Funktioniert eigentlich sehr gut.

Nun will ich eine größere Anzeige mit Sieben-Segment-Anzeigen bauen,
die über ULN2803 ihren Saft bekommen. Diese Anzeige würde 16x 74HC595
benötigen. (Also 16 Schieberegister hintereinander und die passenden
Werte durchgetaktet...)
Kann ich diese ohne weiteres an einen ATmega32 hängen, oder muss ich
einen Treiber benutzen? Wenn ja, welchen Treiber könnte ich nehmen?

Die Frage stellte sich mir, da ja Logikgatter auch nur eine bestimmte
Anzahl von anderen Gattern treiben können (ich glaube, dass es 20
waren...) und ich will sicher gehen, da es ziemlich große Platinen
werden. Wäre schlecht, wenn ich dann alles über Bord werfen darf.

Gruß Elektrikser

von TobyTetzi@t-online.de (Gast)


Lesenswert?

Hallo,

das würde mich auch mal interessieren.

Bin mal gespannt!

Gruß Toby

von geeky (Gast)


Lesenswert?

abo

von Jens D. (jens) Benutzerseite


Lesenswert?

Hallo

Über die belastbarkeit der Ports sollte einiges im Datenblatt stehen.
Die anzahl der Dchieberegister, wie angesteuert werden können ist
anhänngig von den Port Pins, die dein µC hat.
(pro Slave ein Portpin)

Gruss Jens

von ??? (Gast)


Angehängte Dateien:

Lesenswert?

beim SN74HC595 steht:

 "High-Current 3-State Outputs Can Drive up to 15 LSTTL Loads"

von ??? (Gast)


Lesenswert?

...Sorry! man soll lesen bevor man antwortet...
Gefragt ist die Belastbarkeit der Ports des ATMega32.

von TobyTetzi (Gast)


Lesenswert?

Hallo,

warum ist die Schieberegister Menge von den Portpins abhänig?

Ich kann doch alle Enable an einen Pin hängen?!

Des weiteren reden wir doch über eine Hardware SPI, oder nicht?

Gruß Toby

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

irgendwann addieren sich die Eingangskapazitäten der
Schieberegister-ICs soweit das es dem ATMega nicht mehr gelingt die
Eingänge schnell genug umzuladen bzw. es werden die nötigen
Anstiegszeiten nicht mehr eingehalten. Das kann man mit Hilfe der
Datenblätter beider ICs aber ermitteln.

Matthias

von Elektrikser (Gast)


Lesenswert?

@Jens
Ich will ja einen SPI-Bus aufbauen und nicht an jedem I/O-Pin des
ATmega einen Slave anschliessen. Und zwar so:
http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI


O.K ein bißchen habe ich ja in die Datenblätter geschaut. Beim Atmega
finde ich nur beim TWI eine Angabe, die mich weiterhelfen könnte:
> Capacitance for each I/O-Pin*: 10pF
> *In Atmega32, this parameter is characterized and not 100% tested.

So nun habe ich hier ein Datenblatt von STM für den 74HC595 und dort
steht:
> Input Capacitance: 5...10pF

Wie jetzt, dann dürfte ich ja nur einen, maximal zwei Schieberegister
in Reihe schalten? Oder habe ich die falschen Werte verglichen?

Verwirrte Grüße, Elektrikser

von Wiesi (Gast)


Lesenswert?

Nein. Ich denke so kann man das nicht sehen.
Also: Der Input Leakage current, der sozusagen die Ohmsche Belastung
des ATMega32 Ausgangs darstellt, ist lt. Datenblatt +-1uA, also (wie
bei CMOS Eingängen) erwartungsgemäß klein genug um nicht ins Gewicht zu
fallen.

Viel wichtiger ist die Kapazitive Belastung. Laut Philips Datenblatt
beträgt die Eingangskapazität 3.5pF. Natürlich kommen da mehr zusammen,
wegen der Leitungen, etc.
Bei Input rise and fall time ist der min. Wert etwa 400ns. So schnell
muss der Übergang mindestens sein, damit die Flankengesteuerten
Eingänge richtig funktionieren. Nehmen wir nun an, der ATMega liefert
am Portpin z.B. 10mA (Damit der interne Spannungsabfall in Grenzen
bleibt, ist aber nur eine rechnerische Annahme.) Dann wir gemäß:
i*t=C*u --> C=i*t/u
und u=5V sowie t=400ns und i=10mA
C=10mA*400ns/5V
C=800pF

Man könnte daher so Daumen mal Pi [Weil eigentlich ist es ja keine
Aufladung an einer Konstantstromquelle wie hier angenommen sondern:
U=U0*(1-e^(-t/tau))]. 800/3.5=228 Schieberegister anschließen.
Da man aber noch die Leitungskapazitäten einrechenn müsste, ist das
dementsprechen weniger.
Aber so 25 müssten schon drin sein.

   Wiesi

von TravelRec. (Gast)


Lesenswert?

16 Schieberegister 74HC595 hintereinander und mit gemeinsamem Strobe am
SPI sind gar kein Problem, weil schon gemacht. Die laufen dann immer
noch mit 2MHz Clockfrequenz zuverlässig. Kannste machen, ohne drüber
nachzudenken. Nicht die Blockkondensatoren pro Schieberegister
vergessen.

von Elektrikser (Gast)


Lesenswert?

O.K. danke für eure Auskünfte. Dann werde ich mal die Platinen
fertigmachen. ;-)

Viele Grüße, Elektrikser

von Peter D. (peda)


Lesenswert?

Unter 20 ICs würde ich mir keine Gedanken machen.

Im Gegenteil, die AVRs sind kräftiger als ein HC-Treiber-IC (74HC541).

Außerdem kannst Du ja den Takt am SPI einstellen. Probier einfach den
höchsten Takt aus, bei dem es keine Probleme gibt und halbiere dann zur
Sicherheit nochmal.


Peter

von Elektrikser (Gast)


Lesenswert?

Werde ich machen. Danke!

von Elektrikser (Gast)


Lesenswert?

So Leute,

ich habe jetzt den ersten Versuchsaufbau seit letzter Woche am laufen.
Es sind 16x 74HC595 und sie funktionieren einwandfrei.

Hatte wieder einmal Probleme, wo es keine gab.

Ich danke allen, die mir helfen wollten.
Gruß Elektrikser

von andreas schwentner (Gast)


Lesenswert?

Hallo,

ich hab vor kurzem für eine LED Laufschrift (5*100) 20 74HC595 mit 2
MHz verbaut und es läuft ohne Probleme. Ich hatte nur mit dem Senden
auf den SPI ein Problem, da ich einen Takt selber erzeugen musste.
Sonst wurde immer ein Bit zu wenig auf die 74HC595 gesendet.

Grüße Andi

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.