Problem mit ATmega32

Gast #3069854
Lesenswert?

Hallo zusammen. Ich habe ein Problem mit einem ATmega32 der bei mir 
schon länger rumliegt. Folgende Infos habe ich:

* Eigentlich würde ich gerne das Programm AVR_test.c (angehängt) laufen 
lassen, dieses funktioniert jedoch nur wenn ich solange Dinge 
auskommentiere bis es <= 88 Bytes gross ist.
* Wenn ich ein neues Programm rauflade (d.h. ein anderes als vorher im 
ROM war, ein anderes als AVR_test.c) läuft das neue Programm einmal 
durch, jedoch mit fehlern, und hängt sich dann auf. Ebenso läuft 
AVR_test.c einmal durch (auch mit fehlern) wenn ich es wieder 
zurückwechsle.
* Wenn ich dasselbe Programm nochmals rauflade, das schon im ROM ist, 
passiert und ändert sich rein gar nichts. LEDs bleiben schwarz. Nichts 
passiert.
* Die vom ROM zurückgelesene Datei AVR_test_read.hex ist byte-weise 
identisch mit AVR_test.hex, dem original file. Am Programm scheint es 
also irgendwie nicht zu liegen.

Hat irgendwer irgendwelche ideen Wo da ein problem liegen könnte. 
Vielleicht eher bei der Hardware? Dass eine Lötstelle nicht mehr stimmt 
oder so? Oder können ATmega intern so kaputt gehen - eher nicht, oder? 
Hoffe jemand hat ein paar Ideen.

Grüsse, Dennis
Angehängte Dateien:
Gast #3069915
Lesenswert?

Wenn auch Dein Programmierstiel preiswürdig in der Rubrik: "Mit großem 
Aufwand, maximal unlesbaren Code schreiben", ist, sollte er eigentlich 
laufen.

Keine Ahnung welcher Compiler.
Keine Ahnung welche Programmierumgebung.
Keine Ahnung welche Bratpfanne.
Keine Ahnung welche Fehlermeldungen.

Schätze aber mal, dass es an Punkt 2 oder 3 bzw. deren Einstellungen 
liegt.

Nur ein Tipp: Egal welcher Blödsinn in einem Hex-File steht. Hält es die 
Bedingungen an das Format ein und überschreitet der Code nicht den 
erlaubten Bereich, so muss es sich auch in den Prozessor schreiben 
lassen. Ob es auch funktioniert ist eine ganz andere Sache.

Es geht ja scheinbar keinen etwas an, aber wie kommst Du darauf dass 
dein Programm nicht im Flash landet? Manche Fehlermeldung ist 
interessanter als der gesamte Quellcode.
Gast #3070092
Lesenswert?

Spess53 schrieb:
> Hi
>
> 1. Löscht du den ATMega vor dem Programmieren?
> 2. Machst du nach dem Programmieren ein Verify?
>
> MfG Spess

1. Ich programmiere mit
1
 avrdude -p m32 -c usbasp -U flash:w:AVR_test.hex -P usb
Das macht vor dem programmieren einen automatischen Löschvorgang.
2. Ein verify macht es glaube ich auch automatisch

avrdude gibt keinen Fehler, scheint alles zu funktionieren, jedoch ein 
warning, dass ich jedoch als nicht relevant einschätze. Der ganze 
output:
1
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
2
avrdude: AVR device initialized and ready to accept instructions
3

4
Reading | ################################################## | 100% 0.02s
5

6
avrdude: Device signature = 0x1e9502
7
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
8
         To disable this feature, specify the -D option.
9
avrdude: erasing chip
10
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
11
avrdude: reading input file "AVR_test.hex"
12
avrdude: input file AVR_test.hex auto detected as Intel Hex
13
avrdude: writing flash (296 bytes):
14

15
Writing | ################################################## | 100% 0.92s
16

17

18

19
avrdude: 296 bytes of flash written
20
avrdude: verifying flash memory against AVR_test.hex:
21
avrdude: load data flash data from input file AVR_test.hex:
22
avrdude: input file AVR_test.hex auto detected as Intel Hex
23
avrdude: input file AVR_test.hex contains 296 bytes
24
avrdude: reading on-chip flash data:
25

26
Reading | ################################################## | 100% 0.86s
27

28

29

30
avrdude: verifying ...
31
avrdude: 296 bytes of flash verified
32

33
avrdude: safemode: Fuses OK
34

35
avrdude done.  Thank you.

amateur schrieb:
> Keine Ahnung welcher Compiler.
> Keine Ahnung welche Programmierumgebung.
> Keine Ahnung welche Bratpfanne.
> Keine Ahnung welche Fehlermeldungen.

* Compiler benutze ich avr-gcc
* Programmierumgebung keine / Linux
* Bratpfanne?
* Fehlermeldung keine / siehe oben. Probleme gibt es erst beim laufen 
des Programms auf dem Mikrokontroller selbst.

Pete K. schrieb:
> Willst Du sieben Segmente je 20mA mit dem µC treiben? Gibt mal bitte
> Infos über den Hardware-Aufbau.

Habe das Layout angehängt, daran sollte jedoch alles stimmen. Ist nicht 
von mir und wurde schon 100x benutzt.
Angehängte Dateien:
Gast #3070099
Lesenswert?

Magnus M. schrieb:
> Habe mir den Quellcode noch nicht angesehen, aber bist du dir sicher,
> dass du den Code auch für den Mega32 übersetzt hast?

Eigentlich schon, aber siehe selbst, ich habe noch das Makefile 
angehängt.

Es hat auch vorher schonmal funktioniert (vor ca. 1 Jahr), meine 
Vermutung ist daher je länger je mehr, dass einfach ein Detail an der 
Hardware (z.B. eine Lötstelle) kaputt ist, aber dann verstehe ich nicht 
was und auch nicht warum das so komische Auswirkungen hat und nicht nur 
einfach 1 LED spinnt z.B. sondern gleich das ganze zeug.
Angehängte Dateien:
#3070415
Lesenswert?

Dennis schrieb:
> Es hat auch vorher schonmal funktioniert (vor ca. 1 Jahr), meine
> Vermutung ist daher je länger je mehr, dass einfach ein Detail an der
> Hardware (z.B. eine Lötstelle) kaputt ist, aber dann verstehe ich nicht
> was und auch nicht warum das so komische Auswirkungen hat und nicht nur
> einfach 1 LED spinnt z.B. sondern gleich das ganze zeug.

Dann teste deine Hardware einzeln durch, LED für LED, dauert zwar, aber 
so suchst du dir den Wolf, wenn am Ende noch mehrere Fehler im gesamten 
System stecken, deswegen immer Einzelbausteine testen, niemals das 
gesamte!
(In ganz blöden Fällen können sich Fehler auch mehr oder weniger 
gegenseitig "aufheben", sodass man sie kaum bemerkt bzw. erst sehr 
spät).

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