LED blinkt (ATA6613-EK bzw. ATmega168)

Gast #2422824
Lesenswert?

Hallo zusammen!

Wollte mich für ein Uniprojekt mit dem Tutorial wieder ins 
C-programieren einarbeiten. Habe ein ATA6613-EK zur Hand. Das ist ein 
Evalboard für LIN Bussysteme. Darauf ist ein ATmega168 und der LIN 
Transceiver ATA6624.

Wollte jetzt zum Anfang wie gesagt das Tutorial durch arbeiten, da das 
letzte programieren schon länger her ist und stolper gleich über die 
LEDs.

Also ich habe an Port B zwei LEDs angeschlossen (mit Vorwiderstand an 
VCC und an Pin 0 und 1. Programm ist wie im Tutorial. Übertragen hat 
funktioniert und wenn ich denn Controller an Spannung anlege, fangen die 
LEDs an zu blinken.

Statt der erwarteten 5V an den Pins, messe ich auch nur ca. 3V und wie 
gesagt die LEDs blinken.

Kennt jemand diese Phänomen?

Gruß der Basti
Gast #2422967
Lesenswert?

Blinken kann bedeuten, dass du eine Blink-LED eingebaut hast. Nicht 
lachen, die gibt es.

Oder dass

* der AVR laufend resettet z.B. wegen einem Watchdog oder einem 
Brownout

* das Programm die LED wieder ausschaltet und wieder anschaltet. 
Blinkprogramme gibt es auch im Tutorial!

Deine Spannungsmessung an den Pins kann ich nicht nachvollziehen. Bei 
der Schaltung mit active-low angeschlossenen LEDs:

        R     LED
Vcc o---###--->|---o PB0

Vcc o---###--->|---o PB1

Sollte bei leuchtender LED an PB0 bzw. PB1 die Spannung nahe 0V sein und 
nicht "erwartet 5V und gemessen 3V".
Gast #2423520
Lesenswert?

Hallo Krapao,

danke für deine Antwort. Ich weiß das es keine Blink-LEDs sind. Ein 
Brownout würde ich ausschließen. Betreibe die ganze Sache an einem 
Netzteil mit 1,2A und 12V DC Output. Achtung nicht erschrecken, bei dem 
Board ist das von der Versorgungsspannung erlaubt! Die 5V nehme ich vom 
VCC Pin des Controllers. Du hast natürlich recht, es sind nahe 0V (ca. 
0,1V). Hatte mich im Pin geirrt und gegen VCC gemessen.

Das Programm schaltet die LEDs nicht aus:

#include <avr/io.h>

int main(void)
{
while(1)
{
  DDRB = 0xFF;
  PORTB= 0x03;
}
}

Ob mir der Watchdog dazwischen funkt muss ich mal prüfen.

Gruß der Basti
Gast #2423774
Lesenswert?

Ist das da erwünschte Verhalten? Falls ja, soweit ich das aus dem 
Datenblatt erkenne hat das Board einen externen Watchdog, dieser wird 
über PD3 getriggert, bleibt dieses Triggern aus dann führt er einen 
Reset durch, was das Blinken erklären würde.
Gast #2423795
Lesenswert?

> Hmm, zwischen Watchdog output und Reset ist ein Jumper, ziehe ich den ab
> (verbindung auf) hören die LEDs auf zu blicken. Setze ich den jumper
> wieder rein, fangen sie wieder an mit blinken.

Dann sollte man schauen, wie der Watchdog regelmäßig beruhigt werden 
kann oder man lässt den Jumper offen. Die erste Variante kann bedeuten, 
dass der µC oder der LIN Bus regelmäßig ein Signal liefern muss. Dafür 
sind u.U. Änderungen im Programmcode nötig. Wenn du auf deinem Board mit 
rel. unverändertem Tutorialcode arbeiten willst, lass einfach den Jumper 
offen.
Gast #2423832
Lesenswert?

Also danke erstmal für eure Mühe!!!

Der Watchdog gehört nicht zum Controller sondern zum LIN transceiver...
Ich habe mir immer den Kopf über den internen zerbrochen und dachte, 
dass es doch nicht sein kann das der resetet obwohl ich nicht mit ihm 
arbeite.

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