Hallo Besucher, der Thread wurde 6k mal aufgerufen und enthält 23 Antworten

letzter Beitrag von whodan am

Programmierung eines Pro Micro

  • Hallo Spezialisten !


    bräuchte bitte eure Hilfe. Müßte einen Pro Micro (Atmel 32u4) mit einem .hex file flashen.

    Das Device wird als USB to serial erkannt, aber nicht als USB.


    Atmel auf COM-Port.jpg


    Habe das mit dem Programm Atmel Flip probiert, bekomme aber bei der Auswahl des USB Devices immer folgende Fehlermeldung:


    Atmel Flip_USB-Device Error.jpg


    Wäre sehr nett, wenn mir da jemand ein paar Tips geben könnte.


    Im voraus herzlichen Dank.

  • Die Pro Micros haben üblicherweise eine Variante des Arduino "Caterina" Bootloaders. Alle brauchen einen externen Reset, damit sie in den Programmiermodus gehen. Praktischerweise liegen bei den Boards Reset und Masse nebeneinander, so dass man das einfach mit einem Schraubenzieher oder kurzen Draht bewerkstelligen kann.


    Dem Original reicht ein Reset, dann wartet er 8 Sekunden im Programmiermodus und startet normal, falls keine Programmierung erfolgt. Das Verhalten der anderen Varianten ist hier beschrieben. Die brauchen innerhalb relativ kurzer Zeit (< 1s) zwei Resets, damit sie in den Programmiermodus gehen.


    Welche Version du hast, wirst du durch Ausprobieren rausfinden müssen.


    Programmieren geht dann mit avrdude, als Programmieradapter "avr109" angeben. Mit Windows habe ich wenig Erfahrung; keine Ahnung, ob es da auch eine klickbare Lösung gibt...

  • Schau mal nach ob du einen CH340G als USB to Serial Konverter auf dem Micro hast. Wenn ja brauchst du vermutlich einen passenden USB Treiber.

  • Also ich benutze auch Windows. Und der CH340G ist ein IC auf der Unterseite des Pro Micro. Die meisten Arduino Klone verwenden dieses IC für die USB Schnittstelle. Das Problem ist dass die Windows Standard Treiber damit nicht zurecht kommen und dadurch die USB Schnittstelle vom Micro nicht richtig erkennen. Wenn du den passenden Treiber in Windows installierst sollten die Klone funktionieren.

    (Siehe Anhang)

  • Vielen Dank, aber das ist mit meinen Kenntnissen etwas zu kompliziert.

    Welcher Teil ist genau zu kompliziert? Die mit "GND" und "RST" bezeichneten Pins vor dem Programmieren kurzzuschließen ja wohl nicht. Eine andere Sache ist das mit dem Programmieren, wenn du dir das Arbeiten auf der Kommandozeile nicht zutraust wird es vermutlich in der Tat schwierig. Die Arduino Entwicklungsumgebung wird das Board mit den richtigen Support-Files vermutlich programmieren können, aber ob man da fertige, externe hex-Files zum Programmieren einschleusen kann weiß ich mangels Erfahrung damit aber auch nicht. Dazu können vielleicht andere was sagen.


    Und der CH340G ist ein IC auf der Unterseite des Pro Micro. Die meisten Arduino Klone verwenden dieses IC für die USB Schnittstelle.

    Der 32u4 des Pro Micro hat USB Unterstützung integriert (das ist der Witz des Boards), deshalb hat und braucht das keinen separaten USB/Seriell Baustein.

  • der CH340G ist ein IC auf der Unterseite des Pro Micro. Die meisten Arduino Klone verwenden dieses IC für die USB Schnittstelle.

    Der Pro Micro ist normalerweise auf der Unterseite nackend. Der 32u4 hat USB integriert, deshalb ist weder eine CH340, noch ein FTDI nötig. Pro Micro ist auch kein Arduino. Der 32u4 wird normalerweise per Windows-Standard-Treiber installiert, Windows 10 vorausgesetzt.

    das verstehe ich nicht ganz. Was meinst du damit ?

    Mit "arduino" meint er die Arduino IDE, also die Arduino Entwicklungsumgebung bzw. Software.

  • Ja, aber man kann auch mit dem Programm ATMEL Flip, das ich im thread #1 als Foto mit der Fehlermeldung dargestellt habe,

    diesen mittels .hex File programmieren.


    Atmel Flip.jpg


    Nur bei Auswahl der USB Schnittstelle gibt es diese Fehlermeldung.Mir geht es darum, warum bei Verbindung mit den jeweiligen USB-Buchsen

    im Gerätemanager die Verbindung USB to serial als COM erscheint und keine direkte USB Verbindung.


    Scheint aber auch so, dass mir das wichtige Grundwissen der Programmierung dabei fehlt.


    Ist eben doch nicht so einfach, wie das normale EEprom Flashen.

  • Ja, aber man kann auch mit dem Programm ATMEL Flip, das ich im thread #1 als Foto mit der Fehlermeldung dargestellt habe,

    diesen mittels .hex File programmieren.

    Theoretisch ja, aber ich glaube das Programm kann nur mit dem Original Atmel Bootloader umgehen, der wie Diddl schon geschrieben hat, normalerweise auf den MCUs vorinstalliert kommt. Wie ich geschrieben habe ist der aber bei der Pro Micro Boards üblicherweise durch einen anderen Bootloader ersetzt. Man könnte zwar auch wieder den originalen Bootloader flashen (mit dem Flip dann zusammenspielen würde), das ist aber eher komplizierter als ein Programm zu finden, das mit dem "Caterina" Bootloader zurechtkommt und außerdem könnte man das Hex-File dann auch gleich mit dem dafür notwendigen Programmieradapter + -programm flashen :)

  • Mir geht es darum, warum bei Verbindung mit den jeweiligen USB-Buchsen

    im Gerätemanager die Verbindung USB to serial als COM erscheint und keine direkte USB Verbindung.

    Hattest du das denn schonmal? Z.B. mit einem anderen?


    Programmierung geht gewöhnlich auf zwei Art und Weisen:


    1. per Bootloader - du versetzt den Microcontroller in den Programmiermodus (i.d.R. per Reset) und eine Software (z.B. Arduino IDE, Atmel Flip) können dann darauf zugreifen und den Code "hochladen". Meist kann die Software auch selbst den Programmiermodus auslösen.


    2. per Programmer - du programmierst den Microcontroller direkt (ohne USB) per ICSP. Hat der Pro Micro eingebaut.


    Es geht auch eine Kombination aus ICSP mit Bootloader. Aber das war mir immer zu kompliziert, obwohl es bestimmt einfacher ist. :)


    Aber normalerweise zeigt sich der 32u4 bzw. der Bootloader immer als COM-Schnittstelle, dächte ich. Als USB-Gerät nur, wenn ein entsprechendes Programm drauf ist. Die Identifikation als USB-Geräte (z.B. als Tastatur bzw. HID) ist ja nur abhängig von der Kommunikation, also rein softwaretechnisch.


    Kannst du in Flip nichts an COM7 öffnen? (Ich hab Flip noch nie benutzt.)

  • Mir geht es darum, warum bei Verbindung mit den jeweiligen USB-Buchsen

    im Gerätemanager die Verbindung USB to serial als COM erscheint und keine direkte USB Verbindung.

    Das wird daran liegen, dass auf dem Board ein Programm läuft, das eine serielle Schnittstelle über USB implementiert. Ich könnte mir gut vorstellen, dass die Arduino Laufzeitumgebung für den Pro Micro das automatisch macht, damit sie darüber ihre Ein- und Ausgabe abwickeln kann, wenn USB nicht für etwas anderes verwendet wird. Darüber könnte man dann vermutlich auch einen Reset auslösen. Damit sind wir aber nicht weiter, weil 1. du mit diesem Reset ggfs. auch nur in den gleichen Bootloader kommst, den du mit deinen Mitteln offenbar nicht so einfach programmieren kannst und 2. ob das was hilft auch von der Antwort auf meine oben geäußerte Frage abhängt, ob man mit der Arduino IDE überhaupt externe erzeugte hex-Files programmieren kann (gut möglich, ich weiß aber nicht ob und falls ja wie).

  • Du brauchst Vcc und GND für die Stromversorgung. Da muss man nur drauf achten, nicht 5V an ein 3.3V-Gerät zu packen. Dann noch Reset (RST), MISO, MOSI und SCK. MISO müsste Pin 14 sein, MOSI Pin 16 und SCK Pin 15. Der Pro Micro ist ja beschriftet.


    Wie es aus dem TL866 rauskommt, müsstest du rausfinden. Hab ich auch nicht. :)

  • Hätte einen MiniPro mit ISCP Schnittstelle ( TL866A ), aber wo könnte man diese Schnittstelle am Pro Micro anschließen.

    Das sagst du jetzt, damit lässt sich doch arbeiten :thumbsup: Du musst MOSI, MISO und SCK verbinden, außerdem braucht der Pro Micro natürlich noch von irgendwo Strom. Wie der Stecker des Mini Pro belegt ist musst du selber rausfinden, wo sie die Leitungen beim Pro Micro liegen siehst du in dieser Übersicht. (Aber Vorsicht, ich glaube bei manchen Clones sind die Pins falsch beschriftet. Die Lage wird aber vermutlich stimmen).

    Übrigens der Reset hatte auch keine Auswirkung.

    Na, zumindest die Auswirkung, dass der Pro Micro neu gestartet hat, wird es schon gehabt haben... :D

  • Für die Programmierung fand ich dieses Reset Tool recht nützlich:

    https://www.mikrocontroller.net/topic/388790#4452747


    Du musst aber den Geräte-Manager offen haben, um zu sehen auf welchen COM Port danach gewechselt wird.

    Die Zeit die der Micro Pro dann im Programmiermodus ist, ist nicht besonders lang.

  • Die Signale vom TL866 weiß ich:


    Pin 1 - RES

    Pin 2 - VCC (+5V)

    Pin 3 - GND

    Pin 4 - MOSI

    Pin 5 - MISD

    Pin 6 - SCK


    Pro Micro Pinout.jpg


    Pro Micro: TL866A

    VCC - Pin 25 - Pin 2

    GND - Pin 27 - Pin 3

    RST - Pin 26 - Pin 1

    MISO (Pin 14 / 15) - Pin 5

    SCLK (Pin 15 / 16 ) - Pin 6

    MOSI (Pin 16 / 14 ) - Pin 4


    Wäre eine Möglichkeit die entsprechenden Pins miteinander zu verbinden und am TL866 dann über ISCP mit dessen Software das .hex-File zu flashen.


    Dann bräuchte ich das Atmel Flip natürlich nicht mehr.


    Vielen Dank euch allen für die zahlreichen Tips.