Forum: Mikrocontroller und Digitale Elektronik 60 ATtiny-Eingänge an einem ATmega-Ausgang


von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hallo zusammen,

ich möchte 60 ATtiny85 über je einen Pin als Eingang an einem 
ATmega168-Pin, welcher als Ausgang geschaltet ist, anschließen.
Die Betriebsspannung ist 5 V.

Ich kann mir bei 60 parallel geschalteten Eingängen durchaus vorstellen, 
dass die Eingangskapazitäten der ATtinys eine nicht unbedeutende Rolle 
spielen bei der Signalübertragung. Leider habe ich in den Datenblättern 
nichts zu den Eingangskapazitäten gefunden.

Früher zu TTL-Zeiten war das einfacher: Da gab es einen FAN-Out für 
TTL-ICs, i.d.R 20. Das heisst, man konnte an einen TTL-Ausgang bis zu 20 
TTL-Eingänge anschließen. Bei CMOS-Technologie verhält sich das ganze 
wohl etwas anders. Leider habe ich da zu wenig Kenntnisse.

Daher meine Fragen:

1. Kann man überhaupt mit einem ATmega-Ausgang 60 ATtiny-Eingänge
   treiben?

2. Wie groß wird die Anstiegszeit eines Rechtecks sein?

3. Wäre es besser, einen (TTL-kompatiblen) MOSFET dazwischenzuschalten?

Die Anstiegszeit könnte ich leicht berechnen, wenn ich die Kapazität der 
parallel-geschalteten 60 Eingänge kennen würde. Kenne ich aber leider 
nicht.

Vielleicht kann da mal jemand aus dem Nähkästchen plaudern?

Vielen Dank,

Frank

von Falk B. (falk)


Lesenswert?

@  Frank M. (ukw) Benutzerseite

>1. Kann man überhaupt mit einem ATmega-Ausgang 60 ATtiny-Eingänge
>   treiben?

Ja, wenn man nicht zu oft schaltet.

>2. Wie groß wird die Anstiegszeit eines Rechtecks sein?

Kann man abschätzen. tau = R * C

R ist der Innenwiderstand vom ATmega, irgendwas um die 30 Ohm. C sind 
die parasitären Kapazitäten der ATtinys, sagen wir 5pF für jede Pin und 
5pF pro Zuleitung, macht 600pF ins Summe, OK, sagen wir 1nF. Macht tau ~ 
30ns, was in ca. 50ns Anstiegszeit resultiert.

>3. Wäre es besser, einen (TTL-kompatiblen) MOSFET dazwischenzuschalten?

Nicht zwingend.

>Vielleicht kann da mal jemand aus dem Nähkästchen plaudern?

Done.

MFG
Falk

von Klakx (Gast)


Lesenswert?

wie schon der Vorredner sagt. Im Endeffekt ist nur die Treiberstärke 
relevant und wenn du genug Zeit hast, dann kannst du in der Regel jedes 
Fan-out laden.

soviel anders sind ttl und cmos nicht.

(natürlich muss man das interface auch richtig aufbauen, pegel, 
eingangsströme, usw.)

von H.Joachim S. (crazyhorse)


Lesenswert?

Wie schon gesagt - statisch oder quasistatisch wird es funktionieren.
Alles auf einer Platine? Oder räumlich verteilt?
Es kommt auch darauf an, ob du damit einen flankengesteuerten Interrupt 
auslösen willst (dafür gibts vorgeschriebene Mindeststeilheiten) oder 
den Eingang pollst.
Bei längeren Leitungen würde ich auf jeden Fall einen Treiber 
dazwischenschalten.
Man kann das ganze gut simulieren.

von H.Joachim S. (crazyhorse)


Lesenswert?

Doch, TTL ist prinzipiell anders, da jeder Eingang Strom aufnimmt bzw. 
abgibt. Dies verursacht am Ausgang Spannungsabfälle, irgendwann wird der 
zulässige Bereich verlassen.

von Peter D. (peda)


Lesenswert?

Frank M. schrieb:
> Bei CMOS-Technologie verhält sich das ganze
> wohl etwas anders.

Stimmt, da gibt es keinen FAN-Out mehr.
Man kann ihn aber berechnen:
Leckstrom: <1µA
Ausgangsstrom: max 20mA
FAN-Out = 20mA / 1µA = 20000

Es hängt also allein von der Datenrate auf der Leitung ab.


Peter

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
>>2. Wie groß wird die Anstiegszeit eines Rechtecks sein?
>
> Kann man abschätzen. tau = R * C

Danke, diese Formel wollte ich nutzen, konnte sie aber mangels Kenntnis 
von C nicht anwenden.

> R ist der Innenwiderstand vom ATmega, irgendwas um die 30 Ohm.

Bei U=5V und Imax=40mA komme ich mit R = U/I auf 125 Ohm. Oder sehe ich 
das zu einfach?

> C sind
> die parasitären Kapazitäten der ATtinys, sagen wir 5pF für jede Pin und
> 5pF pro Zuleitung, macht 600pF ins Summe, OK, sagen wir 1nF. Macht tau ~
> 30ns, was in ca. 50ns Anstiegszeit resultiert.

Wo hast Du die 5pF her? Sind das Erfahrungswerte?

>>3. Wäre es besser, einen (TTL-kompatiblen) MOSFET dazwischenzuschalten?
>
> Nicht zwingend.

Da ich mit 50-100ns durchaus zufrieden wäre, sollte damit der MOSFET 
tatsächlich nicht notwendig sein.

Vielen Dank für Deine schnelle Antwort, das hilft mir weiter.

Frank

von Falk B. (falk)


Lesenswert?

@  Frank M. (ukw) Benutzerseite

>> R ist der Innenwiderstand vom ATmega, irgendwas um die 30 Ohm.

>Bei U=5V und Imax=40mA komme ich mit R = U/I auf 125 Ohm. Oder sehe ich
>das zu einfach?

Ja. Schau dir die Diagramme im Datenblatt an, Driver Pin Strength.

R = delta U / delta I

Beim ATmega88 komm ich auf ca. 0,4V/13mA=30,7 Ohm ;-)

>Wo hast Du die 5pF her? Sind das Erfahrungswerte?

Jo.

MfG
Falk

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

H.joachim Seifert schrieb:
> Wie schon gesagt - statisch oder quasistatisch wird es funktionieren.

Das dachte ich mir schon.

> Alles auf einer Platine? Oder räumlich verteilt?

Es ist eine ganz lange schmale Platine[1]: ca. 130 cm x 2 cm. Die 
ATtinys sind daher an einer langen "Perlenschnur" aneinandergekettet.

> Es kommt auch darauf an, ob du damit einen flankengesteuerten Interrupt
> auslösen willst (dafür gibts vorgeschriebene Mindeststeilheiten) oder
> den Eingang pollst.

Ich möchte tatsächlich einen flankengesteuerten Interrupt verwenden. Ein 
Prototyp mit 4 ATtinys auf Lochraster-Platine funktioniert auch bereits. 
Übertragen möchte ich das Signal bitsynchron mit 2 Leitungen: CLK und 
DATA. CLK sollte 10000/sec sein, 20000/sec wäre "schöner". Also nichts 
weltbewegendes.

> Bei längeren Leitungen würde ich auf jeden Fall einen Treiber
> dazwischenschalten.

Was ist für Dich "lang"? Es geht mir um ca. 130 cm.

Gruß und Dank,

Frank

[1] Tatsächlich sind es 4 hintereinandergeschaltete Platinen mit jeweils 
30,4 cm. Diese sind über 4 möglichst kurze Kabelbrücken miteinander 
direkt verbunden: 5V, GND, CLK, DATA.

von karadur (Gast)


Lesenswert?

Hallo

sieh auf der Platine am Eingang einen 74HC14 vor. Damit kannst du die 
Signale Puffern und regenerieren. Je 2 Inverter hintereinander.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
> Ja. Schau dir die Diagramme im Datenblatt an, Driver Pin Strength.

Danke, wieder was dazugelernt :-)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

karadur schrieb:
> sieh auf der Platine am Eingang einen 74HC14 vor. Damit kannst du die
> Signale Puffern und regenerieren. Je 2 Inverter hintereinander.

Begründung dafür? Soweit ich dank Falk gelernt habe, bin ich bei 50ns 
Anstiegszeit mit Fclk = 10kHz noch weit im grünen Bereich.

von karadur (Gast)


Lesenswert?

Hallo


wegen "flankengesteuerter Interrupt"

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

karadur schrieb:
> wegen "flankengesteuerter Interrupt"

Ja, die Bemerkung von H.joachim Seifert (crazyhorse) dazu hatte ich 
durchaus zur Kenntnis genommen. Seitdem suche ich im Datenblatt nach der 
"Mindeststeilheit" für einen PCINT, bin aber bisher nicht fündig 
geworden.

Wenn Du da einen Wert hast, immer her damit ;-)

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.