Lilypad USB Eigenkreation lässt sich nicht programmieren

Moin Arduino Fans :slight_smile:

Bei mir ergab sich folgendes Problem:

habe ne Lilypad USB Eigenkreation erschaffen. Schema gezeichnet, PCB gelayoutet, fabrizieren lassen und alles selber gelötet. Sieht richtig schick aus. Jedenfalls nach meinem Geschmack :smiley:

Das Teil hat folgende Eigenschaften:

  • Mikrocontroller ist ein Atmega32u4
  • Hat ne FTDI Schnittstellle
  • Eine SPI Schnittstelle
  • Einen 8 MHz Quartz
  • Ne USB Schnittstelle
  • Möglichkeit ein LiPo anzuschliessen und den auch angeschlossen via USB aufzuladen
  • Hat ein BH1750FVI Lichtsensor drauf der via I2C läuft
  • Hat ein BMP280 Temeperatur, Feuchtigkeit und Höhensensor. Läuft auch via I2C

Alles in allem bin ich stolz das Teil erschaffen zu haben. Bootloader konnte ich auch brennen. Das ging. Soweit so gut. Jetzt wollte ich ne Sketch via FTDI Schnittstelle hoch laden und bekam folgende Fehlermeldung:

Uploading using selected port: COM6
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM6 -b57600 -D -Uflash:w:C:\Users\fulls\AppData\Local\Temp\arduino_build_555708/ColorPalette.ino.hex:i 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM6
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = "F"; type = @
    Software Version = �.w; Hardware Version = �. 
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

Ich hänge euch mal noch das Schma dran. Vielleicht findet jemand auch da einen Fehler. Zur Erläuterung beim Schema habe ich beim Atmega32u4 beim PE2 Pin einen 10k Ohm Widerstand an 3V3 angeschlossen und ein 0 Ohm Widerstand an Ground. Verlötet ist jetzt nur der 10k Ohm Widerstand. Das habe ich so gemacht weil ich nicht wusste, ob ich 3V3 dort anschliessen muss oder Ground. Je nach Vorlage ist das anders. Selbiges ist beim MCP73831 LiPo Charger: auch dort ist ein 0 Ohm Widerstand der nach Möglichkeit an 3V3 angeschlossen ist. Man kann den drauf löten oder auch nicht. Ich habe ihn jetzt nicht angelötet.

Danke schon mal im Voraus für eure Hilfe :slight_smile:

Liebe Grüsse

Delf

Ich verstehe nicht so ganz, was du da machst.

Der Atmega32U4 hat doch eine eigene USB-Schnittstelle. Und wenn du da den Bootloader drauf geflasht hast, kannst du den doch auch über die USB-Schnittstelle den Sketch aufspielen.
Da brauchst du doch keinen FTDI.
Was wohl auch nicht funktioniert.

  • Mikrocontroller ist ein Atmega32u4
  • Hat ne FTDI Schnittstellle

Der ATmega32U4 braucht keinen USB Adapter weil er eine native USB Schnittstelle hat. Ich glaube nicht daß man den ATmega31U4 über die Serielle Schnittstelle Tx/Rx programmieren kann sondern der Bootloader erwartet das Upload über die USB Schnittstelle.
Grüße Uwe

Danke für euer Feedback!

Es ist so: komischerweise erkennt windoof die USB Schnittstelle nicht sauber. Kommt ne Fehlermeldung und manchmal auch keine. Im Arduino IDE wird dann kein Port angegeben. Als ob nichts angehängt wäre. Ich habe keine Ahnung warum. Das Laden des LiPo's und die Stromversorgung via USB Schnittstelle hingegen funktioniert einwandfrei.

Guckt euch bitte mal das Schema an. Findet ihr den Grund, wieso das nicht via USB funktioniert? Habe mir grosse Mühe gegeben das Schema so klar wie nur möglich zu zeichnen, damit es nicht ein Wimmelbild wie mein erstes Schema gibt, welches ich hier mal gepostet habe :wink:

Andere Frage:

Kann ich theoretisch den Programmer Arduino as ISP auswählen und die Sketch via SPI/ICSP Schnittstelle hoch laden?

Übrigens: Als Board habe ich Lilypad USB ausgewählt um die Sketch hoch zu laden. Das ist korrekt oder? Der hat ja auch einen Atmega32u4 drauf. Habe es schon mal mit Arduino Micro probiert, was zur selben Fehlermeldung führte.

Liebe Grüsse

delf

Edit:

Habe jetzt woanders gelesen, dass es am Bootloader liegt, dass man per FTDI Schnittstelle keine Sketches hochladen kann. Mit dem Optiboot Bootlaoder sollte es aber angeblich gehen. Allerdings habe ich absolut keinen Schimmer wie ich das anstelle. Hat jemand ein gescheites Tutorial diesbezüglich? Also wie man einen anderen Bootloader installiert und vor allem womit. AVRDude wäre eine Möglichkeit, aber das ist ein Kommandozeilenprogramm das in meinen Augen sehr Benutzerunfreundlich ist und kompliziert. Angenommen ich weiss sämtliche Parameter die ich da angeben muss, gibts da auch die Option Arduino as ISP? Oder wie stellt man das an? Danke euch schon mal im Voraus :wink:

Zur Erläuterung beim Schema habe ich beim Atmega32u4 beim PE2 Pin einen 10k Ohm Widerstand an 3V3 angeschlossen und ein 0 Ohm Widerstand an Ground. Verlötet ist jetzt nur der 10k Ohm Widerstand. Das habe ich so gemacht weil ich nicht wusste, ob ich 3V3 dort anschliessen muss oder Ground. Je nach Vorlage ist das anders. Selbiges ist beim MCP73831 LiPo Charger: auch dort ist ein 0 Ohm Widerstand der nach Möglichkeit an 3V3 angeschlossen ist. Man kann den drauf löten oder auch nicht. Ich habe ihn jetzt nicht angelötet.

Das Datenblatt gibt gerne Auskunft!

Habe es schon mal mit Arduino Micro probiert,

Bootloader, Quarz, HWB Konfiguration und Arduino Board Eintrag müssen zueinander passen.

Einfach mal ein 8MHz Lilipad als 16MHz Micro anzusprechen muss ins Versagen führen.

combie:
Das Datenblatt gibt gerne Auskunft!

Bootloader, Quarz, HWB Konfiguration und Arduino Board Eintrag müssen zueinander passen.

Einfach mal ein 8MHz Lilipad als 16MHz Micro anzusprechen muss ins Versagen führen.

Hab das Datenblatt natürlich schon studiert als ich das Schema gezeichnet habe, aber dort steht nix ob jetzt Spannung oder Ground an PE2 angeschlossen werden soll. Oder ich bin zu blöd um es zu verstehen. Kann natürlich auch sein :smiley: Ne im Ernst. Ich habe keine entsprechende Referenz gefunden. Da steht nur was von internen Pull up's an PE2 und PE6

Aber danke trotzdem :wink:

Moin Leute

Habe die Fehler gefunden. Fairerhalber poste ich die jetzt noch und schildere euch woran es lag:

Das USB Problem waren vermutlich unzureichend angelötete PIN's des Mikrocontrollers. Obschon ich die PINs mit einer hochauflösenden Lupe mehrfach kontrolliert hatte, hatten einige keinen richtigen Kontakt. Habe SMD Lötpaste nochmal über alle PINs geschmiert und mit dem Heissluftföhn nochmal erhitzt. Dann gings und der Bootloader liess sich problemlos drauf spielen. Bei allen 5 Lilypads.

Ende gut, alles gut. Jetzt funktioniert auch der Upload der Sketch via USB Schnittstelle

Danke nochmal für eure Hilfe. Bin sehr erleichtert :slight_smile:

Liebe Grüsse, delf