Port B bei Nichtprogrammierung?

Gast #3947
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...
Gast #3949
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.
Gast #3950
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
Gast #3951
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!
Gast #3952
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
Gast #3953
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.
Gast #3954
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!
Gast #3955
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?)
Gast #3956
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
Gast #3957
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...
Gast #3960
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

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