www.mikrocontroller.net

Forum: Compiler & IDEs Programmierung von Butterfly per COM-Port klappt nicht


Autor: Daniel H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich sehe mich momentan mit dem Problem konfrontiert, dass sich mein AVR 
Butterfly nicht mehr programmieren lässt.

Wir haben von der Uni aus diverse Programmieraufgaben mit dem 
Butterfly-Board aufbekommen, die, an sich, auch kein Problem für mich 
darstellen.
Eine Aufgabe umfasste, mit Hilfe des Piezo-Lautsprechers einen Dauerton 
zu erzeugen, eine zweite, eine Funktion zu schreiben, die einfach eine 
50ms Pause erzeugt.

Soweit so gut. Den Dauerton habe ich programmiert, und (nach einigen 
Problem wegen korridierter Batteriekontakte) aufs Board laden können. 
Klappt auch super.

Nun habe ich die Funktion für die Pause programmiert, und lade sie 
genauso auf das Board.
Nachdem ich dann aber einen Reset durchgeführt habe, ist erneut der 
Piepton zu hören.
Ich bin so ziemlich mit meinem Latein am Ende und weiß nicht mehr 
weiter.

Die Programmierung mache ich mittels WinAVR (Programmiers Notepad) und 
avrdude in C. Die Verbindung erfolgt dabei mit Hilfe eines 
USB-Seriell-Adapters am UART.

Als Bootloader müsste der Standard-Bootloader von AVR drauf sein. Was 
mir noch aufgefallen ist ist, dass beim Versuch, den aktuellen 
Bootloader mit Hilfe von AVRStudio einzuspielen beim Verifizieren 
angezeigt wird:
Address 0x0000, Expected 0xFFFF, Received 0x0100
Dazu kommt, dass die Verbindung in AVRStudio per "Tools" -> "AVR 
Prog..." ein Glücksspiel ist. Mal klappt es, mal klappt es nicht, ich 
kann kein Muster erkennen, unter welchen Voraussetzungen sie zustande 
kommt.

Aufrufparameter von avrdude:
avrdude -p atmega169 -P com3 -c butterfly -V -v -v -v -v -U flash:w:teil1.hex

Ausgabe beim kompilieren des zweiten Programms:
> "make.exe" program

Creating load file for EEPROM: teil1.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex teil1.elf teil1.eep
c:\WinAVR\bin\avr-objcopy.exe: there are no sections to be copied!
c:\WinAVR\bin\avr-objcopy.exe: --change-section-lma .eeprom=0x00000000 never used
make.exe: [teil1.eep] Error 1 (ignored)
avrdude -p atmega169 -P com3 -c butterfly -V -v -v -v -v -U flash:w:teil1.hex 

avrdude: Version 5.3.1, compiled on Jan  1 2007 at 14:25:19
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "C:\WinAVR\bin\avrdude.conf"

         Using Port            : com3
         Using Programmer      : butterfly
         AVR Part              : ATMEGA169
         Chip Erase delay      : 9000 us
         PAGEL                 : P00
         BS2                   : P00
         RESET disposition     : dedicated
         RETRY pulse           : SCK
         serial program mode   : yes
         parallel program mode : yes
         Timeout               : 200
         StabDelay             : 100
         CmdexeDelay           : 25
         SyncLoops             : 32
         ByteDelay             : 0
         PollIndex             : 3
         PollValue             : 0x53
         Memory Detail         :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no        512    4      0  9000  9000 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

         Programmer Type : avr910
         Description     : Atmel Butterfly Development Board

Connecting to programmer: .avrdude: Send: . [1b] 
avrdude: Send: S [53] 
avrdude: Recv: 
.avrdude: Send: . [1b] 
avrdude: Send: S [53] 
avrdude: Recv: 

avrdude: Recv: 
avrdude: Send: V [56] 
avrdude: Recv: 
avrdude: Send: v [76] 
avrdude: Recv: 
avrdude: Send: p [70] 
avrdude: Recv: 
Found programmer: Id = "AVRBOOT"; type = S
    Software Version = 1.4; No Hardware Version given.
avrdude: Send: a [61] 
avrdude: Recv: 
Programmer supports auto addr increment.
avrdude: Send: b [62] 
avrdude: Recv: 
avrdude: Recv: 
avrdude: Recv: 
Programmer supports buffered memory access with buffersize=128 bytes.
avrdude: Send: t [74] 

Programmer supports the following devices:
avrdude: Recv: 
    Device code: 0x75
avrdude: Recv: 

avrdude: Send: T [54] y [79] 
avrdude: Recv: 
avrdude: Send: P [50] 
avrdude: Recv: 
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: Send: s [73] 
avrdude: Recv: 
################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9405
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: Send: A [41] . [01] . [fc] 
avrdude: Recv: 
avrdude: Send: g [67] . [00] . [01] E [45] 
avrdude: Recv: 
avrdude: Send: A [41] . [01] . [fd] 
avrdude: Recv: 
avrdude: Send: g [67] . [00] . [01] E [45] 
avrdude: Recv: 
avrdude: Send: A [41] . [01] . [fe] 
avrdude: Recv: 
avrdude: Send: g [67] . [00] . [01] E [45] 
avrdude: Recv: 
avrdude: Send: A [41] . [01] . [ff] 
avrdude: Recv: 
avrdude: Send: g [67] . [00] . [01] E [45] 
avrdude: Recv: 
avrdude: erasing chip
avrdude: Send: e [65] 
avrdude: Recv: 
avrdude: reading input file "teil1.hex"
avrdude: input file teil1.hex auto detected as Intel Hex
avrdude: writing flash (166 bytes):

Writing | avrdude: Send: A [41] . [00] . [00] 
avrdude: Recv: 
avrdude: Send: B [42] . [00] . [80] F [46] . [0c] . [94] . [2e] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [0c] . [94] I [49] . [00] . [11] $ [24] . [1f] . [be] . [cf] . [ef] . [d4] . [e0] . [de] . [bf] . [cd] . [bf] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [e6] . [ea] . [f0] . [e0] . [02] . [c0] . [05] . [90] . [0d] . [92] . [a0] 0 [30] . [b1] . [07] . [d9] . [f7] . [11] . [e0] 
avrdude: Recv: 
######################################avrdude: Send: B [42] . [00] & [26] F [46] . [a0] . [e0] . [b1] . [e0] . [01] . [c0] . [1d] . [92] . [a0] 0 [30] . [b1] . [07] . [e1] . [f7] . [0c] . [94] K [4b] . [00] . [0c] . [94] . [00] . [00] . [0e] . [94] N [4e] . [00] . [fd] . [cf] . [88] . [ea] . [91] . [e6] . [01] . [97] . [f1] . [f7] . [08] . [95] 
avrdude: Recv: 
############ | 100% 0.13s

avrdude: 166 bytes of flash written
avrdude: Send: L [4c] 
avrdude: Recv: 
avrdude: Send: E [45] 
avrdude: Recv: 

avrdude done.  Thank you.


> Process Exit Code: 0

Das Makefile ist so vom Dozenten vorgegeben, einige Anpassung war 
Einstellung von COM3 (USB->Seriell-Adapter).

Es tut mir leid, wenn ich das etwas wirr ist und ich nicht so viel 
Ahnung habe, das sind meine ersten Schritte mit Mikrocontrollern, wenn 
ihr noch irgendwelche Angaben braucht, fragt ruhig, ich werde dann 
versuchen, nach bestem Gewissen zu antworten.

Autor: Daniel H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem ich nochmal ausführlich, auch nach dem Code (0x940c) von 
Avr-Prog gegooglet habe scheine ich eins der Butterflymodule erwischt zu 
haben, bei dem sich auch während der normalen Programmierung 
versehentlich die Lock-/Fuse-Bits setzen lassen. Genau dies ist nun wohl 
geschehen.
Habe mir nun den Atmel AVRISP mkII bestellt und werde dann versuchen, 
ihn über den ISP wieder hinzukriegen.

Gruß,
Daniel

Autor: Frank Jonischkies (frajo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Butterfly wir doch mit dem eingebauten Bootloader über die serielle 
Schnittstelle programmiert. Da braucht man gar keinen ISP Programmer. 
Ich habe den Bootloader von ATMEL gegen den von MEGALOAD ausgetauscht. 
Ist nur halb so groß. Nach dem Programmieren macht er selbst einen Reset 
und startet das Programm. Einzige Hardwareänderung ist ein mini 
Resettaster am ISP Anschluß vom Butterfly.

Autor: Daniel H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das ist schon richtig, es gibt aber wohl eine Charge Butterfly-Module, 
die einen fehlerhaften Bootloader haben, wodurch sich versehentlich bzw. 
sogar von alleine die Lock-Bits setzen lassen.
Sprich, man lädt nur ein Programm über die serielle Schnittstelle drauf, 
und danach ist das Teil unter Umständen gelocked und nicht mehr 
beschreibbar.
Einzige Möglichkeit, ihn dann wieder flott zu bekommen ist, per ISP den 
kompletten Chip zu löschen und dann den Bootloader wiederherzustellen.

Zumindest finde ich dazu hunderte Treffer bei Google, wenn ich die 
Meldung von AVR-Pro eingebe (Address 0x0000, Expected 0x940c, received 
0x0100).

Google mal nach 0x940c, da findest du das. Als einzige Lösung wird immer 
wieder angegeben, per ISP den Chip zu löschen und dann den Bootloader 
neu zu schreiben.

Gruß,
Daniel

Autor: Daniel H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Halo,

ich nochmal, das Problem wird auch hier erörtert:
Beitrag "Programmierung von AVR Butterfly - geht nicht"

Gruß,
Daniel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.