AVR-Studio, Ponyprog und Hex-File

Mar 26, 2006 22 Replies

Hi Leute, ich habe mir gerade das aktuelle AVR-Studio und das aktuelle Ponyprog installiert. Früher auf meinem alten PC habe ich damit immer problemlos gearbeitet.



Nun habe ich ein kleines Programm für den tiny15 geschrieben und wollte es mit Ponyprog auf den Controller laden -> Fehler 21



Auslesen kann ich den Controller, da ist noch ne alte Software von mir drauf. Speichere ich das Ausgelesene in ein Hex-File und schreibe ich das wieder, kommt es zu keinem Fehler. Ich habe auch schon verschiedene anderen Hex-Files, die ich noch hatte, in den Tiny15 programmiert, es funktioniert. Nur mein neues Hex-File vom AVR-Studio will sich einfach nicht in den ACR flashen lassen -> Fehler 21



Hier der Inhalt des Files, das sich nicht flashen lässt: :020000020000FC :020000000FC02F :1000200023E027BB25E720BF2AEA2EBD22EA27B915 :1000300024E826B9369A40E034E6349BFECF25B159 :10004000321B12F441E031958894331F28F0331F9E :1000500018F0331F08F002C03FEF00C040FD08C099 :1000600026E3231718F068EC630F07C06EEF05C096 :0E00700068EC631B08F001C060E03EBDDBCF12 :00000001FF


Und hier ein File, welches keine Probleme bereitet: :1000000008C069C068C0FFFFFFFF49C0FFFFFFFFD6 :10001000FFFFB99AC19AC29AC39AC49AC59AA0E03E :1000200000EC01BF2ED0F2E0E0E461D0789480FFD4 :10003000FECFA03019F4F2E0E6E497E0A13019F425 :10004000F2E0E8E592E3A23009F49AE0A3955AD0F1 :10005000A33029F04CD002E009BF8827E8CFB29B3B :10006000FECFF8949AE04ED000E60ABFA0E000E28E :100070000BBF88279AE046D000E305BF78948895A7 :10008000D6CF00E20BBF02E105BF06EF0EBD02E8CE :1000900000BF3AE002E003BF02E009BF089502E9B1 :1000A00032BF40BF3013C19A07FE02C042E901C00F :1000B00042E8000C639508E060131895E39560E052 :1000C0007395C8950FEF0012189500E009BF02E87C :1000D00000BF8FEF1895F89400E00BBF00E60ABF51 :1000E00002E009BFF2E0E0E402D07894189561E004 :1000F00070E0C89507FE03C042E9000C089542E88D :10010000000C089500E0902E992E10E025EF239525 :100110002911FDCF13951911F9CF0A950911F5CFC2 :100120000895FFFFFFFFFFFFFFFFFFFFFFFFFFFF40 :10020000FFFF00A2AAA2888888A28A8A28A2288042 :10024000AD554B40FFFFB5554B40FFFFAD54D2C0FD :10025000FFFFB554D2C0FFFFB554AD40FFFFFE0015 :100260007FFF887E01FFAA01FFFFFFFFFFFFFFFF67 :00000001FF


Auffällig ist, dass bei ersterem File die Zeilen nicht voll sind. An was liegt das? Muss ich an AVR-Studio was umstellen, damit es mir gültige Hex-Files erzeugt?



... ein ratloser Michael


Moin!

Es gibt verschiedene Varianten von hex, auch avrdude hat sich da bei mir schonmal verschluckt. Kannst Du aus AVR-Studio zB mal in bin speichern und in PonyProg mit der hex vergleichen?

Gruß, Michael.

Michael Rübig schrieb:

Daran, dass der AVR Assembler keinen Output für nicht zu beschreibende Adressen produziert.

Das Hex-File ist gültig. Wenn PonyProg damit nicht klar kommt, ist es ein Fehler in PonyProg. "Fehler 21" ist ja leider nicht sehr aussagekräftig.

Allerdings kann ich mir bei der Verbreitung dieses Programms nicht vorstellen, dass es vom AVR-Studio erzeugte Dateien nicht lesen könnte und das bisher noch niemandem aufgefallen wäre.

Vielleicht solltest Du mal eine besserer Programmiersoftware ausprobieren, avrdude zum Beispiel.

CU Christian

Christian Zietz - CHZ-Soft - czietz (at) gmx.net WWW: http://www.chzsoft.com.ar/ PGP-Key-ID: 0x6DA025CA

Christian Zietz schrieb:

Eben, schon komisch

Kannst Du mir ne passende Syntax sagen? Ich benutze: Attiny15 Einfachstprogrammer mit mit 74HCT244 an LPT1

ich habe folgendes probiert: avrdude -pt15 -cstk200 -e LED_Treiber.hex

Ausgabe:

-------------------------------------------- avr\bin\avrdude -pt15 -cstk200 -e LED_Treiber.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x000102 avrdude: current erase-rewrite cycle count is -122045191 (if being tracked) avrdude: erasing chip

avrdude: safemode: fuse changed! Was 80, and is now 50 Would you like this fuse to be changed back? [y/n] y avrdude: safemode: and is now rescued avrdude: safemode: Fuses OK

avrdude done. Thank you.

---------------------------------------------------------------- Die Frage nach den fuses habe ich mir y beantwortet. Aber irgendwie ist die Ausgabe komisch. Tip?

Grüße Michael

Michael Eggert schrieb:

Man kann im AVR-Studio Intel-Hex, Motorola und Generic Files erzeugen Mit Intel-Hex und Motorola bekomme ich bei Ponyprog die gleiche Fehlermeldung. Mit .gen kann Ponyprog nichts anfangen

Michael

Hi,

diese beiden Zeilen sind doch verdächtig, oder? Wenn ich das richtig verstehe, stehen dort riesige Zieladressen drin.

Michael

2 Byte auf Offset 0 als 'extended segment address record' mit Inhalt 0 und (richtiger) Pruefsumme...
2 Byte auf Offset 0 mit Datum '0fc0' und (wieder richtiger) Pruefsumme...

Ja.

Nein.

Aber wozu braucht das Ding 'nen "extended segment address record"?

Aus der 'ponyprog2000'-Doc (findet man z.B. via Google):

| Q: I can't program ATmega, I always got "Write failed message". | Q: I can't program AVR AT90Sxxx, I receive error -21 and the program | fails. What is the problem? | | A: Increase the following parameters in the ponyprog.ini file (all | times are in milliseconds)

| AVRByteWriteDelay=30 'Delay to complete the write of a single | word | AVREraseDelay=100 'Delay to complete the erase of all the | memory | | In case of ATmega increase also the following parameter: | ATMegaPageWriteDelay=50 'Delay to complete the write of a page of | flash memory

Offensichtlich kann also irgendwo nicht geschrieben werden (error 21).

Falls es eine 8051-Architektur ist: Selber wundern (sowas tue ich mir nicht an...).

Grüße, Bodo

Michael Rübig schrieb:

Und der hat eine STK200-kompatible Pinbelegung am Parallelport?

Wenn Du LED_Treiber.hex in den Flash schreiben möchtest, wäre die korrekte Option -U flash:w:LED_Treiber.hex

Die Signatur ist nicht korrekt. Das deutet - vorausgesetzt der richtige Programmer ist ausgewählt - auf ein Hardware- oder Timingproblem hin, wie übrigens auch der "Fehler -21" lt. Bodos Posting bei PonyProg. Kabel zu lang?

Etwas seltsam ist es dann aber schon, dass sich andere Files problemlos flashen lassen.

CU Christian

Christian Zietz - CHZ-Soft - czietz (at) gmx.net WWW: http://www.chzsoft.com.ar/ PGP-Key-ID: 0x6DA025CA

Hi,

Scheint wohl doch nicht so zu sein. Wenn ich genau das gleiche File drüberflashe, klappts. Hab leider nur ein weiteres Hex-File von damals. Das geht einwandfrei weil wahrscheinlich schon genau dieses Hex-File drauf war. Wenn ich ein anderes File nehme, klappts nicht.

Michael

Michael Eggert schrieb:

Bitte schreib' nen Bugreport.

-- cheers, J"org .-.-. --... ...-- -.. . DL8DTL

formatting link
NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)

Christian Zietz schrieb:

Oder auch auf gesetzte Lockbits, aber diese wiederum sollten sich mit dem chip erase beseitigen lassen.

cheers, J"org .-.-. --... ...-- -.. . DL8DTL http://www.sax.de/~joerg/ NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)

Michael Rübig schrieb:

Argh, ich hatte Ponyprog 2.06f installiert, zusätzlich die deutsche Version runtergeladen, die nur aus einer EXE bestand. Also die EXE ersetzt und los gings. Die EXE war allerdings 2.05.

Ich habe nun die EXEs zurückgetauscht und nun gehts.

Einen von den beiden Tinys habe ich allerdings mit AVRDude durch falsche Bedienung gehimmelt, die Fuses stehen wohl jetzt auf irgendwelchen Werten, dass man per ISP nicht mehr rankommt :-( Eigentlich ist Ponyprog für solche Aktionen berüchtigt :-)

Michael

Hi!

Oh, das ist lange her... Wollte ein .hex in den Mega8 schreiben und plötzlich waren die Fuses platt. Hats glaub ich zweimal gemacht, dann hab ichs mit .bin probiert und da gings einwandfrei, drum hatte ichs auf avrdude geschoben da sonst nix geändert. Ich glaub, die .hex hatte Zeilen zu 32 Byte, also irgendwie wars schon ein wenig ungewöhnlich. Fürn Report wohl zu vage, wenns mal wieder passiert dokumentier ichs genauer.

Gruß, Michael.

Michael Rübig schrieb:

Hast du jemanden mit einem STK500 in Reichweite?

cheers, J"org .-.-. --... ...-- -.. . DL8DTL http://www.sax.de/~joerg/ NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)

Da darf man eben nicht sparen, und deswegen empfehle ich jedem das STK500. Damit ist das noch nie jemandem in meiner Umgebung passiert. Im Ernstfall kann das STK500 auch High Voltage Programmierung, das geht immer, egal was die Fuses sagen. 12V auf /RESET sind halt für einen AVR ein ziemlich starkes Argument, um in den Programmiermodus zu gehen.

Ein GUTER EPrommer (wie z.B. mein XELTEK SP280U, der etwa 14000 Bausteine programmieren kann) hilft auch.

Mit freundlichen Grüßen

Frank-Christian Krügel

Hi,

Da kann ich einige Tinys himmeln, bis sich das lohnt. Für die 3 Projekte, die ich im Jahr mache brauche ich sowas nicht.

Hast Du einen zu verschenken?

Grüße Michael

Hi,

Nö, ist aber nicht so wild, wegen den paar Cent für einen neuen Tiny mache ich jetzt keinen Aufstand.

Michael

Nö. Vor allem keine Zeit. Für gute Arbeit braucht man vernünftiges Werkzeug, vor allem wenn man damit Geld verdient.

Mit freundlichen Grüßen

Frank-Christian Krügel

Hallo Michael,

Michael Rübig schrieb:

sorry für die vielleicht naive Frage (me:AVR-Neuling), aber warum installiert man sich ein "externes" Brennprogramm, wenn dem AVR-Studio doch schon eins beiliegt? Welche Vorteile bringt PonyProg?

Gruß Markus

Weil das beiliegende nur mit den ISP- und JTAG-Interfaces von Atmel arbeitet, die vielen Hobbybastlern zu teuer sind.

Außerdem kann Ponyprog auch mehr Bausteine als nur die AVRs programmieren.

Mit freundlichen Grüßen

Frank-Christian Krügel

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required