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
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".
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
Hallo, noch so eine Idee, ist der RESET-Pin korrekt beschaltet?
Ah, vergiss es, grad nochmal gelesen und gesehen, dass du ein Eval-Board nutzt, da sollte das natürlich der Fall sein.
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.
Was passiert wenn du den Jumper setzt und in deinem Hauptprogramm PD3 in jedem Schleifendurchlauf umschalten lässt?
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.
> 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.
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.
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.