Programmer und Developmenttool für Xmega-A1-USB Mikrocontrollermodul

Hallo Peter,

ich habe da bereits Silabs kontaktiert. Die haben leider in der aktuellen Treibersoftware eine Änderung gemacht, was mit den von uns verwendeten DLLs nicht mehr richtig zusammenarbeitet.

Es ist nun wahrscheinlich folgendes passiert:
Du hast einmal das Mikrocontrollermodul von USBxpress auf VCP umgestellt und kannst es nicht mehr zurück auf USBxpress stellen, da das Umstelltool das Modul nicht im VCP Modus erkennt. Das Programmiertool erkennt das Modul natürlich dann auch nicht mehr, da es sich nicht im USBxpress Mode befindet.

Schnelle Lösung:
Du kannst das Modul über die aktuelle Version vom Silabs Tool
C:\SiLabs\MCU\USBXpress\Utilities\CP210x Set IDs\AN144SW\CP210xSetIDs.exe
auf USBxpress umstellen.
Das Tool wird installiert, wenn du USBXpress installiert hast.
Hiezu musst du im Feld PID (ProductID) folgenden Wert eingeben: EA61, den Haken bei dem Feld setzen (nur diesen!) und auf "Programmieren" drücken.
Auf VCP stellst du mit dem Wert PID=EA60 um. Achtung: Auf keinen Fall andere Werte eingeben, sonst wird der CP2102 nicht mehr erkannt.

Mittelfristige Lösung:
Ich werde mich am Wochenende mit dem Problem befassen und dann hoffentlich schnell eine Lösung liefern können, so dass man wie gewohnt einfach zwischen VCP und USBxpress umstellen kann. Wenn du vorher schon mit CP210xSetIDs.exe umstellen möchtest, musst du sehr vorsichtig sein, keine falschen Werte Programmieren.

Grüße,
Dirk
 
Hallo Dirk,

danke für die schnelle Antwort. Ich habe die EA61 programmiert.
Das Tool erkennt die Platine nach wie vor nicht.
Im Gerätemanager habe ich unter COM12 "Silicon Labs CP210x USB to UART Bridge" stehen.

Gruss Peter
 
Hallo Peter,

du hast geschrieben, dass du
CP210x USB to UART Bridge VCP Driver in der Version 6.1
installiert hast, installiere auch mal die aktuelle Version von USBxpress.

(Die haben da anscheinend einiges geändert, wir sind nicht die einzigsten, die damit Probleme haben :rolleyes:)

Wie gesagt, ich werde mich am Wochenende damit beschäftigen, ich hoffe, ich brauche nur die DLLs austauschen und nicht zusätzlich noch unsere Tools anpassen.

Gruß,
Dirk
 
Hallo Dirk,

USBxpress ist die V.3.2.2. Eine neuere Version habe ich nicht gefunden.

Gruss Peter
 
Hallo Peter,

anscheinend ist der CP2102 immer noch auf VCP eingestellt, da du im Gerätemanager ja fogendes siehst:

COM12 "Silicon Labs CP210x USB to UART Bridge"

Wenn der CP2102 auf USBxpress steht, sihst du im Gerätemanager einen Eintrag unter USB-Controller: "USBxpress Device".

Unser Programmiertool arbeitet mit USBxpress, nicht mit VCP. Es zeigt somit ein VCP-Device nicht als "connected" an.


Hast du in dem Tool CP210xSetIDs.exe von Silabs auch den Haken vor PID gesetzt und auch Programmieren gedrückt? Die PID muss sich ja umstellen lassen. In der oberen Zeile von CP210xSetIDs wird ja der Device-Link angezeigt, wenn du das Mikrocontrollermodul angeschlossen hast. Sind andere Geräte mit PID=EA60 oder PID=EA61 (und VID=10C4=Silabs) vorhanden, musst du das richtige Device auswählen. Sicherheitshalber das Tool zum Umstellen der PID und die Programmiersoftware von uns schließen, da ich nicht weiß, ob durch die DLL der älteren Version das Silabs Tool beeinflusst wird.

Wenn du bei CP210xSetIDs dann auf Programm Device drückst, gibt es ein DeviceChange (dauert ca. 1-4 Sekunden), danach müsstest du auch mit dem Silabs Tool sehen, dass PID umgestellt wurde.

Ich werde mir die aktuellen Versionen von VCP und USBxpress am Wochenende installieren, testen und dann berichten.

Gruß,
Dirk
 
PID Xmega.jpg


So sieht es aus. Ob das programmieren Erfolgreich verläuft, kann ich nicht sehen. Es kommt für ca. 2 sec. die Eieruhr - sonst nichts.

Mit dem Tool kann ich die ID aber nicht sehen. Es ist auch nur dieses Device vorhanden.

Gruss Peter
 
Hallo Dirk,

jetzt klappt es.
Die Version von CP210xSetIDs.exe aus dem aktuellen USBxpress war wohl zu alt, schon komisch.
Ich habe jetzt eine aus An144sw genommen.

Vielen Dank schon mal.

Gruss Peter
 
Hallo Peter,

es ist mir auch gerade aufgefallen, dass die installierte Version der An144sw nicht die aktuellste ist.

In der An144sw (hier zum downloaden) ist eine aktuellere CP210xManufacturing.dll mit der Version 4.1.0.0 enthalten, diese nutzt du ja schon. Die DLL kannst du in das Verzeichnis kopieren, in der das Tool ChangeMCModulePID ist, also einfach die alte DLL überschreiben. Dann funktioniert das Tool auch wieder.

Gruß,
Dirk
 
Hallo Dirk,

ja funktioniert wieder. Dann haben wir ja alle Probleme gelöst.
Vielen Dank für die Hilfe.

Gruss Peter
 
Hi Dirk,

ich habe doch noch zwei Fragen:
Bei den Fuses steht bei mir alles auf default.
Fusebit BOOTRST steht also auf Boot Loader Reset.

Ich muss ca. 20 bis 30m Versuche mit PQ2 machen um ein eigenes Programnm zu flashen.

Mache ich etwas falsch?

Und wie löscht man den Flashbereich UserSignature?

Gruss Peter
 
Hallo Peter,

Bootloader aktivieren

du schließt das Mikrocontrollermodul an USB an, dann legst du Betriebsspannung an (min. 2,7V, da der aktuelle Bootloader mit 32MHz läuft).

Dann drüchst du die Taste PQ2 (gedrückt halten), dann drückst du kurz die Reset-Taste. Die LED beim PQ2-Taster blinkt nun ein paarmal (der Bootloader ist nun aktiv). Jetzt kannst du über PC/USB programmieren. Nach erfolgreicher Programmierung startet der Bootloader die Applikation.
Hinweis: Wenn du auf "Read Module Info" drückst werden Informationan vom Modul angezeigt, falls eine Applikation vorhanden ist, wir diese gestartet, dann musst du wieder mit PQ2 und RESET-Taste den Bootloader aktivieren.

Den Bootloader über PQ2-Taste aktivieren muss immer funktionieren (der Bootloader muss natürlich programmiert sein). Was mir aber gerade einfällt, wir sollten auch die SiUSBXP.dll für das Programmiertool aktualisieren, hier gibt es nämlich auch eine neuere Version. Die DLL findest du in folgendem Verzeichnis:
C:\SiLabs\MCU\USBXpress\Examples\CP210x
Ich habe sie aber auch nochmal angehängt (ZIP). Diese DLL kopiertst du in das Verzeichnis, in dem sich Xmega-A1-USB-Programmer.exe befindet.


UserSignature

Um die UserSignature löschen zu können, benötigst du einen Programmer, zum Beispiel den AVRISPmkII, den du an PDI anschließt. Im Benutzerdialog des Programmers findest du einen Punkt, dort kannst du auswählen, welche Bereiche du löschen möchtest, zB.
  • Application Section
  • BootloaderSection
  • UserSignature
Die UserSignature wird auch teilweise vom Bootloader genutzt, unter anderem verwemkt er sich dort, ob eine Applikation erfolgreich programmiert wurde und ob er diese nach RESET starten darf. Ist die Usersignature gelöscht (0xFF), dann startet der Bootloader die Applikation nicht, auch wenn eine vorhanden ist, erst nach nochmaligem Programmieren der Applikation, wird diese wieder gestartet.


Bootloader über Applikation aktivieren

Es gibt noch die Möglichkeit, alles zu "automatisieren", so dass du nicht mehr Tasten drücken musst, um über PC/USB zu programmieren. Du musst dann in deiner Applikation den USARTF0 richtig initialisieren und auf das Kommando "StartBootloader" reagieren, sprich diesen starten. Dies ist im Supportbereich erklärt, ein Beispielprogramm in C ist auch vorhanden. Aber mach das erst mal über die PQ2 Taste, das muss ja erst mal gehen.

Gruß,
Dirk
 

Anhänge

  • SiUSBXp.zip
    38,6 KB · Aufrufe: 21
Hallo Dirk,

prima, danke für die Info.
Jetzt klappt es perfekt.
Ich hatte wohl erst das PC-Programm ausgelöst und dann die Tasten gedrückt.
Dann ging es wohl mal zufällig.

Gruss Peter
 
Hallo,

das Thema ist zwar schon ein bisschen älter aber ich habe eine Frgae dazu.

Und zwaar Funktioniert das nur mit dem XMEGA-A1-USB Board?

Oder wäre es auch möglich den Bootloader auf einem anderen Board zu initialisieren?

Ich habe mir nämlich ein eigenes Kleines Board entwickelt und würde diese gerne ohne Programmer Programmierbar machen.
 
Hi,

Ich habe mir nämlich ein eigenes Kleines Board entwickelt und würde diese gerne ohne Programmer Programmierbar machen.
die Henne und das Ei ... Wenn du den Bootloader mit einem Programmer in den Controller programmierst, dann kannst du ab dem Zeitpunkt auch ohne Programmer über den Bootloader deinen Code hineinladen. Zu welchen Controllern oder Boards der Bootloader paßt, kann aber wohl Dirk besser beurteilen.

Gruß
Dino
 
Hallo,
Hallo,

das Thema ist zwar schon ein bisschen älter aber ich habe eine Frgae dazu.

Und zwaar Funktioniert das nur mit dem XMEGA-A1-USB Board?

Oder wäre es auch möglich den Bootloader auf einem anderen Board zu initialisieren?

Ich habe mir nämlich ein eigenes Kleines Board entwickelt und würde diese gerne ohne Programmer Programmierbar machen.

leider wird es nicht so einfach funktionieren, zumindest nicht, ohne weitere Arbeit reinzustecken. Die Windows-Software nutzt die USBxpress DLL von Silabs zur CP2102 USB-UART-Bridge, was du sicher nicht einsetzt. Da Bootloader und Windows-Programm inzwischen schon älter sind und es hier nicht so viel Feedback gab, unterstütze ich das System leider nicht weiter.

Inzwischen habe ich ja eine völlig überarbeitete Version in Verbindung mit dem Nano Developmentmanager erstellt, Infos findest du hier. Die Hexfiles der Bootloader werde ich noch veröffentlichen. Wenn du einen Xmega128A1, den selben Usart verwendest und einen 16MHz Quarz an XTAL1/2 angeschlossen hast, könntest du den Bootloader sicherlich nutzen.

Dirk :ciao:
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)