Forum: Mikrocontroller und Digitale Elektronik LED leuchtet nicht obwohl Flash erfolgreich


von Nils H. (nils_h72)


Lesenswert?

Hallo!

ich habe ein hartnäckiges Problem mit einem ATmega88A-PU.
Die äußere Beschaltung ist die Grundbeschaltung + LED samt 1kOhm 
Vorwiderstand gegen VCC an PB1. Als  Spannungsversorgung kommt ein 
Multifunktionsnetzteil auf 5V zum Einsatz. Als Programmer benutze ich 
den DIAMEX AVR-ISP 
(http://avr-programmer.com/downloads/usb-isp/usb-isp_installation_de.pdf). 
Ich habe mit AVR-Studio ein kleines Testprogramm geschrieben um zu 
überprüfen ob die LED leuchtet:
1
#include <avr/io.h>
2
int main(void)
3
{
4
    DDRB = 0xFF;
5
    PORTB = 0x03;
6
    while(1)
7
    {
8
        //TODO:: Please write your application code 
9
    }
10
  return 0;
11
}
Danach die .hex mit AVR8 Burn-O-Mat v2 auf den Controller geflasht. 
Burn-O-Mat bestätigte mir das Ganze auch mit "Success". Trotzdem 
leuchtet die LED nicht. Auch ein anderer Mikrocontroller löst das 
Problem nicht. Die Fuses habe ich nicht verändert, habe sie nur mal zu 
Testzwecken gelesen, was auch geklappt hat. Offenbar kann der Programmer 
also auf den Controller zugreifen. Auch der Versuch die LED an einen 
anderen Pin anzuschließen (inklusive entsprechnder Abänderung des 
Programms) brachte keinen Erfolg. Aus Ratlosigkeit habe ich mal die 
Targetspannung am Programmer aktiviert, mit dem Ergebnis, dass ich jetzt 
nur noch mit angeschalteter Target-Spannung flashen kann. Die LED 
leuchtet zwar immer noch nicht, aber zusätlich wird das flashen nun mit 
einer Fehlermeldung quittiert, sobald ich die Target-Spannung am 
Programmer abschalte.
Sämtliche Steckbrücken (ich arbeite auf einem Steckbrett) und die LED 
habe ich bereits auf Funktionstüchtigkeit überprüft.
Mein Betriebssystem ist Windows 8, falls das was zur Sache tut.

Hier noch die Fehlermeldung wenn ich versuche ohne Targetspannung zu 
flashen:

C:\WinAVR-20100110\bin\avrdude.exe -C 
C:\WinAVR-20100110\bin\avrdude.conf -p m88 -P com3 -c stk500v2  -U 
flash:w:C:\Users\Nils\Documents\Atmel Studio\6.1\Test LED\Test 
LED\Debug\Test LED.hex:a

avrdude.exe: stk500v2_command(): command failed
avrdude.exe: stk500v2_command(): unknown status 0xc9
avrdude.exe: stk500v2_program_enable(): cannot get connection status
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to 
override
             this check.


avrdude.exe done.  Thank you.


Danke schonmal für eure Bemühungen!
Gruß, Nils

: Bearbeitet durch User
von Olga (Gast)


Lesenswert?

Frage: Wenn du uC den Pin auf 1 setzt, welche Spannung hat dann der Pin? 
Welche Spannung die andere Seite der LED? Wie groß ist dann die Spannung 
die über der LED abfällt?

von Markus (Gast)


Lesenswert?

Nils H. schrieb:
> Grundbeschaltung + LED samt 1kOhm
> Vorwiderstand gegen VCC an PB1

Dann leuchtet sie, wenn PB1 auf 0 ist.
Also umgekehrt als im Code.

von Karl H. (kbuchegg)


Lesenswert?

Nils H. schrieb:

> Die äußere Beschaltung ist die Grundbeschaltung + LED samt 1kOhm
> Vorwiderstand gegen VCC an PB1.

>     PORTB = 0x03;

Die wird da auch nicht leuchten.
Du musst den Pin auf 0 schalten, damit die LED leuchtet.

Deiner Beschreibung nach liegen ja an der LED über den Vorwiderstand die 
+5V schon an. Alles was noch fehlt um den Stromkreis zu schliessen ist 
die Verbindung nach Masse, die der µC-Pin herstellen muss. Daher 0 
ausgeben.

  PORTB = 0x00;

von der alte Hanns (Gast)


Lesenswert?

Schalten Sie

- die LED gegen GND

oder schreiben Sie

- PORTB = 0x00

.

von Nils H. (nils_h72)


Lesenswert?

Mein Fehler, selbstverständlich ist die LED gegen GND und nciht gegen 
VCC geschaltet.

von Karl H. (kbuchegg)


Lesenswert?

OK.
Und was sagt das Voltmeter an diesem Pin?

von Nils H. (nils_h72)


Lesenswert?

Problem hat sich erledigt. Habe ein neues Programm geschrieben und 
geflasht und siehe da, die LED leuchtet. Es kann sein das ich zuvor in 
AVR Studio den ATmega 88 und nicht den ATmega 88A ausgewählt habe, wobei 
das ja eigentlich keinen Unterschied machen dürfte. Jedenfalls 
funktioniert nun alles mit der neuen .hex.

Das Problem mit der Target-Spannung hat sich übrigens auch gelöst, 
unterm Schreibtisch hatte sich die Verbindung zum Netzteil gelöst...-.-

: Bearbeitet durch User
von der alte Hanns (Gast)


Lesenswert?

Wie ging nochmal der Spruch in chicken run? -

Ich bilde mir das alles nur ein, ich bilde mir das alles nur ein.

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.