www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Port B bei Nichtprogrammierung?


Autor: Empir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was passiert eigentlich wenn man bei Nichtprogrammierung des AT90S4433 
LED's an Port B (z.B. Pin 14) mit Vorwiderstand gegen VCC anschließt. 
(siehe http://www.mikrocontroller.net/tutorial2.htm).
Bei mir passiert gar nichts... Sollte die LED leuchten? Die Spannung 
zwischen Vcc und Pin 14 ist 0 und zwischen GND und Pin 14 ist sie auch 
null...

Autor: Jonas Diemer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann stimmt was nicht. die ports werden normalerwese alle mit 0x00 
initialisiert.

Autor: Empir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich mir irgendwie gedacht und deshalb auch gefragt... Aber was 
koennte denn nicht stimmen? Ich hab alles angeschlossen wie es im 
Tutorial (mikrocontroller.net) im Schaltplan steht. Erschwerend kommt 
noch hinzu, dass ich ein Newbie bin und nicht allzu viele 
Elektronik-Erfahrungen habe.

Autor: Niki Hammler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest einmal messen ob zwischen VCC und GND Pins am Sockel des AVR 
genau und schön 5 Volt rauskommen.
Wenn ja dann scheint entweder der uC oder der Quarzoszillator kaputt zu 
sein. So einen hab ich auch schon (ziemlich am Anfang) aus 
unerklärlichen Gründen abgeschossen.

Niki

Autor: Empir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An den Pins (7: Vcc und 8: GND) liegen genau 5.00V an. Das kann doch gar 
nicht sein, dass irgendetwas kaputt ist, ist doch alles neu! Wie teste 
ich, ob mein Quarzoszillator kaputt ist? (mir steht aber im Prinzip nur 
ein Multimeter zur Verfügung)...
und wie verifiziere ich, ob der uC kaputt ist?
Danke für eure Hilfe!

Autor: Phagsae (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist völlig korrekt

Nicht nur PORTB sondern auch das DDRB werden $00 nach RESET
-> Hi_Z Input

Vorsicht
Einschalten von Sonderfunktionen ( zb SPI ) ändert manchmal die 
Datenrichtungsregister automatisch

Phagsae

Autor: Igor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Atmel-Doku steht, daß die Ports bei und nach einem Reset (also 
auch einschalten) "ge-Tri-Stated" sind. Das soll bedeuten, daß sie 
hochohmig sind, also darf die LED auch gar nicht leuchten.
Den Oszillator müßtest Du testen können, in dem Du einfach mal das 
Multimeter auf ACV stellst und es zwischen Ausgang und GND klemmst.

Autor: Empir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heißt das, dass die LED erst leuchtet wenn man in das 
Datenrichtungsregister von PORT B diesen explizit als Ausgang definiert 
hat? Dann bin ich ja beruhigt.

Beim Oszillatortest kommt 1.46 V heraus. Der Oszillator liefert doch 
eine Rechteckspannung mit Amplitude 5 V. Dann kann da doch was nicht 
stimmen, oder?

Danke für eure nette Hilfe!

Autor: Jonas Diemer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Phagsae: sag ich ja, all ports, d.h. das komplette portfile (ddrx sind 
ja auch ports, so wie das sreg u.a.)

@Igor: dennoch müsste zwischen portpin und vcc ne spannung von 5V sein 
(oder irre ich da?)

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Empir,
kann stimmen, weil dein Voltmeter so schnell garnicht messen kann. Du 
kannst das Multimeter ruhig im DC-Bereich schalten. Wenn ein exakt 
symetrischer Rechteck anliegt mit einer Spitzenspannung von 5V wirst du 
2,5V messen.
Dein AVR scheint also in Ordnung zu sein.

So denn,
Günter

Autor: Empir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf welcher Seite von der Doku steht denn, dass die Ports nach dem Reset 
ge-tri-statd sind. Ich hab' auf Seite 5 gefunden, dass sie während einer 
Resets ge-tri-stated sind, was danach geschieht ist mir immer noch 
unklar...

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Reset werden alle IO-Register auf 0 gesetzt -> Ports sind Eingänge 
ohne Pullup.

MfG
Andreas

Autor: Empir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
äh sorry für meine Unwissenheit, aber was genau heißt Pullup?
Danke im Voraus.

Autor: Lennzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ein "Pull up" ( zieh hoch ) - Widerstand liegt zwischen einem Eingang 
und +5V. Dadurch wird erreicht, das der Eingang immer ein definiertes 
Signal ( in diesem Fall high-Signal ) erhält und er nicht "in der Luft 
hängt", denn damit könnte der Controller oder andere Digitaltechnik 
manchmal nichts anfangen. Dies ist sehr wichtig.
Ist der Eingang mit Pull up nun unbeschaltet, so liegt an ihm trotzdem 
eine Spannung von 5Volt an ( über den Widerstand ) und er wird als high 
erkannt. Als low wird er erkannt wenn man den Eingang auf Masse zieht ( 
z.B. einen Schalter zwischen Eingang und Masse schaltet ).
Einen Schaltplan für dieses Beispiel findest du auch bei der 
eingangsbeschaltung im Tutorial 2.

Gruß
Lennzo

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.