Forum: Mikrocontroller und Digitale Elektronik Tutorial: Leds blinken statt zu leuchten...


von Lukas (Gast)


Lesenswert?

Hi,

ich habe ein kleines Problem mit meiner Tutorial-Schaltung: Ich habe
alles wie beschrieben aufgebaut, das Programmieren des Atmega8 mit der
ersten Beispielschaltung hat auch einwandfrei funktioniert, allerdings
habe ich die Fuses erstmal gelassen wie sie sind.
Wenn ich jetzt den Quarz rausnehme, leuchten die LEDs kurz mal nach dem
Reset auf. Danach passiert überhaupt nichts mehr. Wenn ich den Quarz
einsetze, blinken sie sehr schnell. (Wobei ich mir auch nicht erklären
kann warum der Quarz überhaupt einen Einfluss hat).
Die Spannungsversorgung liegt überall bei ca. 4,6V, sollte also kein
Problem sein.

Kann mir da jemand helfen?

von ne oder ? (Gast)


Lesenswert?

Dir is die Funktion eines Quarzes bekannt ? Nimmst du ihn aus der
Schaltung, funktioniert der Prozessor nicht mehr, bzw taktet nicht
mehr. Du reist ihm bildlich gesprochen das Herz heraus..........

von Lukas (Gast)


Lesenswert?

Ja, das ist mir durchaus bewusst ;) - wie gesagt hatte ich aber die
Fuses noch nicht auf einen externen Clock eingestellt, d.h. der Atmega
sollte seinen internen 1Mhz Clock nehmen, tat er aber anscheinend
nicht.

Ich habe eben die Fuses wie im Tut angegeben verändert, programmieren
kann ich ihn nach wie vor, nur tut er nix mehr (Zumindest Leuchten die
LEDs nicht).
Leider habe ich keinen TTL-Prüfstift da um zu sehen ob der Quarz
richtig arbeitet. Hat da jemand nen Trick?

Gruß Lukas

von Dirk (Gast)


Lesenswert?

Hi,

du hast die Fusspunktkondensatoren dran? Ein 100nF Kondensator hast du
so dicht wie moeglich an VCC und GND zum µC dran? Ein Pullup hast du
hoffentlich auch am Reset Pin.

Du kannst eine Gleichspannung von ca. 2,5V messen am Quarz am zweiten
Quarz sind es ca 0.3V weniger.

Gruß,

Dirk

von Lukas (Gast)


Lesenswert?

Hi, danke schonmal für die schnellen Antworten.
Was meinst du mit Fusspunktkondensatoren?
Der 100nF Kondensator ist da, Pullup am Reset selbstverständlich auch.
Am Quarzoszillator kann ich 4,5V= messen. Welchen zweiten Quarz meinst
du?
Im übrigen kann das alles nicht so verkehrt sein, da ich den Chip ja
programmieren kann. D.h. der Quarz MÜSSTE ja eigentlich gehen, oder?
Wenn ja ist der Fehler wohl eher an meiner LED-Schaltung zu suchen, nur
weiß ich da echt nicht wo, hab die LEDs mit nem 1kR auf Vcc, die Kathode
zum Port...

Gruß
Lukas

von andy (Gast)


Lesenswert?

Hallo er meint mit Fusspunktkondensatoren,das an jedem Bein des Quarzes
ein ca 22 pf Kondensator nach masse dran muss.
gruss
Andy

von D. W. (dave) Benutzerseite


Lesenswert?

Lies doch einfach mal die Fuses aus (sollte nichts verändern) und sag
uns mal, wie die Häckchen bei
CKSEL 0 bis 3 sind..

von Lukas (Gast)


Angehängte Dateien:

Lesenswert?

Also, für die Fuses siehe den Dateianhang, habe mich an das Tutorial
gehalten.
Wgn. den Kondensatoren:
Ich habe nur noch 47pF Kerkos, mit denen funzt aber gar nix, ich kann
ihn nicht mal mehr mit Yaap erkennen. Es sei denn ich habe sie falsch
beschaltet.

Gruß Lukas

von Lukas (Gast)


Lesenswert?

Okay, ich habe den Atmega8 jetzt wieder auf die ursprüngliche
Selbsttaktung zurückgestellt damit ich mir keinen Ärger mehr mit dem
Clock machen muss. Nach wie vor habe ich aber das Problem das die LEDs
nach einem Reset kurz (vielleicht für eine halbe Sekunde) leuchten und
dann wieder ausgehen und aus bleiben. Kann es sein das der Controller
nicht genügend Spannung abbekommt? Aber ca. 4,5 V sollten doch
eigentlich reichen, oder?

Ich bin hier echt am verzweifeln...

Gruß Lukas

von Dirk (Gast)


Lesenswert?

Hi,

hast du nun einen Quarz(2 Beinchen) o. einen Quarzoszillator (3Beinchen
benoetigt VCC und GND) am Mega8?

Bitte pack mal deinen Quellcode in den Anhang, vielleicht ist es ein
Softwarefehler.

Gruß,

Dirk

von Lukas (Gast)


Lesenswert?

Oha, hab mich vorhin wohl unklar ausgedrückt: Habe einen QuarzOSZI mit
4MHz. Allerdings ist der im Augenblick nicht angeschlossen. Ich
versuche es erstmal mit dem internen Takt. Das Programm habe ich 1:1
aus dem Tutorial rauskopiert, selbstverständlich auch die "m8def.inc"
mit übernommen. Hier aber trotzdem nochmal der Code:

.include "m8def.inc"     ;bzw. 2333def.inc


         ldi r16, 0xFF       ;0xFF ins Arbeitsregister r16 laden
         out DDRB, r16       ;Inhalt von r16 ins IO-Register DDRB

         ldi r16, 0b11111100 ;0b11111100 in r16 laden
         out PORTB, r16      ;r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ;Sprung zur Marke "ende" -> Endlos

von Dirk (Gast)


Lesenswert?

Hi,

dann muss ich mal weiter fragen. Wie sind die Led's angeschlossen an
deinem µC? VCC->R->LED->µCPortpin o. µCPortpin->R->LED->GND ?

Also wenn deine LED mit Low Pegel eingeschaltet wird und sich an PB0
oder PB1 befindet sollte die LED angehen und anbleiben bis zu einem
Reset.

Wenn du ein Voltmeter hast mess doch mal bitte die Spannung am Reset
Pin.

Gruß,
Dirk

von Lukas (Gast)


Lesenswert?

Ok, danke Dirk!! (Ich weiss ehrlich gesagt noch nicht so genau wofür :D,
aber es klappt jetzt!)

Ich habe und hatte eine Pull-Up Schaltung an den LEDs, also
Vcc->R->LED->PortB0-3

Ich habe jetzt mal die Kondensatoren von dem Quarzoszillator entfernt
(die kamen mir vorhin schon ziemlich merkwürdig vor, aber wgn. Quarz !=
Quarzoszillator waren die Antworten vorhin schon korrekt)

Jetzt aber ein paar Fragen: Wenn ich den Ausgang des Oszillators an
XTL1 hänge, fangen die LEDs an zu blinken, warum?

Wie kann ich Yaap sagen das ich einen externen Clock habe, d.h. wie
muss ich die Fuses setzen, ich komm da nicht so ganz klar. Im
Datenblatt steht das 0=programmiert heisst, was heisst dann jetzt ein
Häkchen in Yaap?

Ich habe vorhin Testweise einen Atmega8 mit CLKSEL0..3 mit komplett an
allem Häkchen gefused, dieser wird jetzt nicht mehr erkannt. Wie bekomm
ich den wieder (sind immerhin 3 EUR...)?

JUCHUU es GEHT :D

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.