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
Hallo, das würde mich auch mal interessieren. Bin mal gespannt! Gruß Toby
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
beim SN74HC595 steht: "High-Current 3-State Outputs Can Drive up to 15 LSTTL Loads"
...Sorry! man soll lesen bevor man antwortet... Gefragt ist die Belastbarkeit der Ports des ATMega32.
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
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
@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
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
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.
O.K. danke für eure Auskünfte. Dann werde ich mal die Platinen fertigmachen. ;-) Viele Grüße, Elektrikser
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.