Hallo, ich benutze einen ATmega1284P. Unter welchem Kaptiel im Datenblatt finde ich denn einen Hinweis, ob die Pins während der Start-up-time high oder low sind? Kann ich dies denn durch z.B. Fuses einstellen, also dass alle high bzw. low sind?
die pull-ups sind also zugeschaltet? Und ne andere Frage nebenbei, wann benutzt man welche Start-up-Time? Also was sind die Gründe eine Start-up-Time zu verlängern?
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.
Andreas H. schrieb: > die pull-ups sind also zugeschaltet? > > Und ne andere Frage nebenbei, wann benutzt man welche Start-up-Time? > Also was sind die Gründe eine Start-up-Time zu verlängern? z.B. wenn der Quarz/Oszi erst noch einschwingen muss bzw. wenn man da exakten/stabilen Betrieb wünscht würde Ich meinen.
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.
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.
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?
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.
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.
okay, dann formulier ich die Frage anders: Warum ist mein Ventil, das über einen NPN-Transistor angesteuert wird während der Start-up-Time geöffnet? Im Anhang habt ihr den Ausschnitt der Schaltung:
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.
Andreas H. schrieb: > Im Anhang habt ihr den Ausschnitt der Schaltung: Und wie sieht die Firmware aus? Passiert das auch bei einem Reset, wenn der Flash komplett gelöscht ist?
ich werde das jetzt erstmal testen ohne Anschluss an den Atmel und versuchen ein paar Screenshots vom Oszi zu posten, evtl. schafft das etwas mehr Klarheit. Kann aber nen bissl dauern...
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...
Andreas H. schrieb: > Tschuldigung für die Missverständnisse... Ist doch gut, wenn du auf diese Weise bei der Fehlersuche in die richtige Richtung voran gekommen bist.
...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.
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.
ä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?
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.
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.