PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega8 tut garnichts



Janigut
24.11.2009, 22:02
Moin,
Also ich habe seit heute meinen USB-Programmer (STK500vII). Nun habe ich in C folgendes Programm geschrieben:

#include <avr/io.h>

main (void) {

DDRC |= (1<<PC0);
PORTC |= (1<<PC0);

while(1) {

}


return 0;
}


Es sollte eigentlich PortC Pin 0 auf High setzen. Doch er ist auf low. Beim Programmieren gibt es keine Errors und beim Build auch nicht.
Kommt mir alles sehr seltsam vor. Bitte helft mir :S

021aet04
24.11.2009, 22:19
Vor dem main ein int einfügen. Die geschwungene Klammer beim while(1) kannst du gegen einen ; tauschen. Ist zwar kein Fehler, ist aber besser.

Janigut
25.11.2009, 00:59
Soo habs nochmal getestet aber jetzt meint er zu mir: WARNING: FLASH byte address 0x0000 is 0xFF (should be 0x12).. FAILED!
Kanns sein, dass der Controller einfach kaputt ist? Denn gerade eben lies er sich ja noch programmieren.

Jaecko
25.11.2009, 08:17
Stimmt denn der im Programmer ausgewählte Controller mit dem zu programmierenden überein?

Janigut
25.11.2009, 15:05
Ja passt alles. Das hab ich als erstes überprüft...

Jaecko
25.11.2009, 16:06
Nen anderen (gleichen) Controller hast du nicht zufällig rumliegen?

Oder anders: Ist irgend ein Programm drauf, mit dem man erkennen kann, ob der Controller funktioniert? Wenn ja: Zieh mal den Reset-Pin manuell gegen Masse, ob dann ein Reset ausgeführt wird, oder ob der einfach weiterrennt.
Vor kurzem hab ich auch dieses "Kunststück" geschafft, dass ich unbeabsichtigt das RSTDISBL-Fuse gesetzt hab.

Valentin
25.11.2009, 17:12
Also ich hoffe, die Hardware ist korrekt.
Hast du auch RESET an + und die Spannung mit einem Kondensator entstört?
Hast du die Fuses für den internen Takt gesetzt oder stimmt die Konfiguration für Quarzoszi oder Quarz? Und sind diese (falls vorhanden) auch korrekt eingebaut? Stimmen vielleicht die Kondensatoren für den Quarz nicht oder hängt der Oszi am falschen XTAL-Pin?

Nun zum Controller selber:
Schonmal mit Rettungstakt versucht oder im Simulator getestet?
Und hast du den Controller schon mal verwendet?
Valentin

Janigut
25.11.2009, 20:29
Also ich hoffe, die Hardware ist korrekt.
Hast du auch RESET an + und die Spannung mit einem Kondensator entstört?
Hast du die Fuses für den internen Takt gesetzt oder stimmt die Konfiguration für Quarzoszi oder Quarz? Und sind diese (falls vorhanden) auch korrekt eingebaut? Stimmen vielleicht die Kondensatoren für den Quarz nicht oder hängt der Oszi am falschen XTAL-Pin?

Nun zum Controller selber:
Schonmal mit Rettungstakt versucht oder im Simulator getestet?
Und hast du den Controller schon mal verwendet?
Valentin

Also Hardwaremäßig hab ich alles x-mal auf Richtigkeit überprüft, stimmt alles.

Wenn ich Reset auf Masse zieh, leuchtet die LED einfach weiter. Entstörkondensator (100nF) ist auch verbaut.

Fuses und so hab ich nicht angefasst, da es meine ersten Versuche mit Controllern sind.

021aet04
25.11.2009, 20:37
Das Programm sollte funktionieren, habe es im Simulator getestet, das einzige, was nicht ganz gestimmt hat ist, wenn ich while(1) schreibe, setzt er den Pin nicht, ich vermute aber, dass das mit dem Simulator zusammenhängt. funktioniert der ISP Adapter? Ist der Port richtig eingestellt?

Janigut
25.11.2009, 21:11
Es tut sich nichts. Es kommt jedes Mal der Error "WARNING: FLASH byte address 0x0000 is 0xFF (should be 0x12).. FAILED!". Ich habs mit Stromversorgung durch den Programmer und über die Batterie (6V an 7805) versucht. Kein Unterschied. Der Reset mit dem Programmer funktioniert, aber nicht der manuelle.

Ceos
26.11.2009, 09:20
um nochmal auf das programm zurückzukommen

wie genau meinst du dass mit "der ausgang ist auf low" ?
leuchtet die LED oder leuchtet sie nicht ?
wenn sie nicht leuchtet ist der ausgang auf high, denn die LEDs sind low active beschaltet

um nochmal auf das problem mit dem programmieren zu kommen, versuchs mal wie valentin schon sagte mit externem takt vom onboard quarz, trenne alle AREF, verbinde VTARGET

versucsh mal mit "High Voltage Programming" wenn alles nichts hilft, DAS hilft auf jeden fall, findest in der AVR Hilfe gleich nach ISP Programming

BurningWave
26.11.2009, 14:10
Wird dein Programmer überhaupt korrekt erkannt? Leuchten da beim Flashen irgendwelche LEDs (oder lässt sich sonst erkennen, dass er arbeitet)? Welchen Programmer benutzt du? Welches Programm zum Flashen?
Am Besten ist, wenn du es mal mit einem anderen µC probierst, wenn das funktioniert, weißt du dass der Prozessor kaputt ist und es nicht an der Schaltung liegt.
Dein Programm stimmt, bis auf dass int vor main() fehlt. Hast du die Leuchtdiode an die richtige Pin angeschlossen? Ist sie richtig herum eingebaut (in deinem Fall Anode an µC Pin)? Stromversorgung stimmt auch? Poste am besten mal deinen Schaltplan.

mfg

Janigut
28.11.2009, 15:17
Ich benutze einen STK500v2-kompatiblen USB-Programmer mit AVR-Studio. Diode ist richtig angeschlossen, leuchtet aber auch, wenn der Pin auf high stehen sollte.
Anderer Controller dauert noch, bis ich wieder bei Reichelt bestell...
Zum High-Voltage-Programming hab ich im Wiki nichts gefunden.

Hubert.G
28.11.2009, 15:47
Mit einem STK500 kompatiblen Programmer geht kein High-Voltage-Programming.
Was bekommst du für eine Meldung wenn du im Programmiermodus im Fenster Main auf Read Signatur klickst?
Wie hoch ist die ISP-Frequenz?

Janigut
01.12.2009, 22:59
Als Signatur meldet er: 0x1E 0x93 0x07.
Meine ISP-Frequenz steht auf 155,2kHz.
Wenn ich auf "Program" klicke bekomm ich folgenden Log:


Getting isp parameter.. SD=0x02 .. OK
Validating ELF input file.. OK!
Reading FLASH input..OK!
No EEPROM contents in ELF file.
No FUSE contents in ELF file.
No LOCKBITS contents in ELF file.
No SIGNATURE contents in ELF file.
Entering programming mode.. OK!
Erasing device.. OK!
Programming FLASH .. OK!
Reading FLASH .. OK!
WARNING: FLASH byte address 0x0002 is 0xFF (should be 0x19).. FAILED!
Leaving programming mode.. OK!

Hubert.G
02.12.2009, 11:43
Nach dem Signature lesen müsst auch darunter stehen:
Signature matches selected device

Ist das ein STK500 oder ein kompatibler Programmer?
Schon einen anderen Kontroller probiert?

Ceos
02.12.2009, 12:02
die signatur ist schonmal korrekt, die ISP verbindung ist also SCHEINBAR nciht das problem, klingt langsam als ob der controller ne macke hat, default für speicherzellen (auch kaputte) ist nämlich 0xff oder wenn er gesperrt ist!

0x00 wäre es wenn die verbindung zum kontroller nicht hinhaut

versuchs mal mit nem chip erase (zu finden auf der fuse-seite wenn ich nicht irre) dann isser wieder im auslieferungszustand hast du eventuell irgendwas am PortB angeschlossen ? machs mal ab, vll. gehts dann