ATmega Pin-Pegel beim Starten?

Gast #2225820
Lesenswert?

Im Datenblatt wird man unter Register Descriptions bei I/O Ports initial 
values finden. Die beschreiben nach RESET den Portzustand. Beim 
ATmega1248P hab ich nicht geschaut. Bei anderen AVR sind die in aller 
Regel 0 und Pullups damit nicht aktiv.
OP #2225841
Lesenswert?

Ich habs im Datenblatt gefunden, da steht, dass initial value für das 
PORTx-Register = 0, also pull-ups ausgeschaltet sind und Pins auf 
Eingang, aber zählt das auch während der Start-up-time?

ich hab mit nem Oszi bei mir die Pegel von 3 Pins nach dem Starten 
gemessen, und die sind alle 3 high während der Start-up-time und da 
hängen extern keine pull-ups dran.
Daher wundert mich das jetzt etwas.
Gast #2225853
Lesenswert?

Andreas H. schrieb:
> ich hab mit nem Oszi bei mir die Pegel von 3 Pins nach dem Starten
> gemessen, und die sind alle 3 high während der Start-up-time und da
> hängen extern keine pull-ups dran.
> Daher wundert mich das jetzt etwas.

man kann einen Input pin überhaupt nicht sinnvoll messen. Du müsstest 
ihn testweise mit pullup und pulldown messen.
OP #2225860
Lesenswert?

naja sagen wir es so:
Ich habe an einem Pin einen NPN-Transistor dranhängen, der mir ein 
Ventil öffnet.
Während der Start-up-time ist das Ventil kurz geöffnet, was sich durch 
ein zischen bermerkbar macht.

Bedeutet für mich auch, dass der Pin high ist während der Start-up-Time 
oder habe ich da einen Denkfehler?
Gast #2225865
Lesenswert?

Andreas H. schrieb:
> Bedeutet für mich auch, dass der Pin high ist während der Start-up-Time
> oder habe ich da einen Denkfehler?

und was macht dein Ventil wenn gar kein Atmel vorhanden ist? (Pin nicht 
mit Transitor verbunden)

Wie lange braucht denn dein Atmel zum starten, so schnell kann ein 
Ventil doch gar nicht sein.
Moderator Persönliche Seite #2225872
Lesenswert?

Andreas H. schrieb:
> Bedeutet für mich auch, dass der Pin high ist während der Start-up-Time
> oder habe ich da einen Denkfehler?

Ja, hast du.  Du wirst da irgendeine andere Einstreuung drin haben,
die nur bei floatendem Pin zuschlägt.  Das solltest du analysieren.

Die einzigen Pins, die an einem ATmega1284P nicht floaten sind die
vom JTAG-Interface.  Die sollte man aber nach Möglichkeit in der
eigenen Applikation nur für "Unwichtiges" (LEDs oder sowas) belegen,
damit man trotzdem noch via JTAG debuggen kann bei Bedarf.
OP #2225886
Lesenswert?

Peter II schrieb:
> und was macht dein Ventil wenn gar kein Atmel vorhanden ist? (Pin nicht
> mit Transitor verbunden)
>
> Wie lange braucht denn dein Atmel zum starten, so schnell kann ein
> Ventil doch gar nicht sein.

Also, wenn ich die Start-up-Time auf 16K + 0ms stelle, so schaltet das 
Ventil natürlich nicht. Wenn ich die Start-up-Time auf 16K + 65ms 
stelle, dann schaltet es eben. Es ist ein kleines Ventil, dass eine 
Schaltzeit von ca. 10ms hat.
OP #2225991
Lesenswert?

Also ich muss hier nen Rückzieher machen.

Ich hatte die beiden Widerstände am Pin ausgelötet und nur den 
Ausgangspin gemessen, und dieser blieb low. Dann löte ich die beiden 
Widerstände wieder ein und der Pin bleibt immer noch low.

Mit anderen Worten: das Ventil wird nicht mehr in der Start-up-Time 
angesteuert. Ich krieg hier die Krise!!!
Keine Ahnung was ich da eben gemessen habe oder ob ich ne Lötbrücke oder 
sowas hatte. Das Zischen war aber auf jeden Fall da, was mir auch nen 
Kollege bestätigen kann °_o

Tschuldigung für die Missverständnisse...
Gast #2226026
Lesenswert?

...ich würde einen externen pull-up am uC Ausgang empfehlen (übern 
Daumen 10k), da die uC pins erstmal floaten bis die SW sie definiert 
konfiguriert hat.
Dann lässt Du den uC aus dem Reset mal hochkommen und schaust mit Oszi 
direkt am Portpin, ob da etwas rumzappelt beim Pon bis die Applikation 
vollständig "oben" ist.
Siehst Du nix aber das Ventil zischt - dann stückweise weiter in 
Richtung Ventileingang messen und dann findest Du wer da wann Unsinn 
macht.
Denke daran, der Avr kann nur 3mA treiben, aber 20mA sinken - passt 
Deine Dimensionierung dahingehend ?

gruss, tom.
Moderator Persönliche Seite #2226051
Lesenswert?

tom schrieb:
> ...ich würde einen externen pull-up am uC Ausgang empfehlen (übern
> Daumen 10k), da die uC pins erstmal floaten bis die SW sie definiert
> konfiguriert hat.

Er braucht aber eher einen pulldown.  Ist aber eigentlich egal,
ein floatendes Pin liefert einem npn-Transistor keinen Basisstrom.

> Denke daran, der Avr kann nur 3mA treiben, aber 20mA sinken - passt
> Deine Dimensionierung dahingehend ?

Gaaaanz alte AVRs waren leicht asymmetrisch, aber nie so stark.  Ein
ATmega1284P ist laut typical characteristics ziemlich symmetrisch,
laut Garantiedaten werden bei Vcc = 5 V 10 mA treiben und 20 mA
"versenken" zugesichert.  Dabei werden aber noch die Logikpegel
garantiert, auf die es hier gar nicht ankommt.
OP #2226090
Lesenswert?

ähm zu euren Hinweisen hab ich jetzt doch nochmal ne Frage. Und zwar 
habe ich auch nen größeres Ventil auf gleiche Weise angeschlossen, nur 
dass nen leistungsstärkerer Transistor eingebaut ist.
Der Widerstand an der Basis beträgt allerdings 220R.
Somit hätte ich einen Basisstrom von ca. 4,3 / 220 =  ca. 20mA.
Jetzt schreibt ihr oben, dass ein Pin nur 10mA treiben kann?!

Wenn ich mir das Datenblatt auf Seite 323 in Electrical Characteristics 
anschaue, steht dort:

"DC Current per I/O Pin = 40.0mA"

Weiter unten steht noch als Zusatz, dass die Summe gewisser Ports nicht 
100mA überschreiten darf.

Woher steht das denn bei euch mit den 10 bzw. 20mA?
Moderator Persönliche Seite #2226151
Lesenswert?

Andreas H. schrieb:

> Jetzt schreibt ihr oben, dass ein Pin nur 10mA treiben kann?!

Nein, nicht kann, sondern nur für 10 mA werden die Werte auch
garantiert.  Das ist schon ein Unterschied.

> Woher steht das denn bei euch mit den 10 bzw. 20mA?

Abschnitt 26.1, in der Tabelle die Parameter V[OL] und V[OH].  Hmm,
ist ja sogar genau andersrum: 20 mA werden als Stromquelle
garantiert, aber nur 10 mA als Stromsenke.

Kurz und gut, mit deinen 220 Ω wirst du kein Problem haben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren