LED leuchtet nicht obwohl Flash erfolgreich

OP #3365671
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
#3365682
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;
OP #3365708
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...-.-

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