Hallo, wie im Titel schon beschrieben, lässt sich mein STM32F405 nach einmaligem Programmieren nicht erneut flashen. Dazu ist zu sagen, dass ich heute eine neue Platine bekommen habe und dafür ein bestehendes Programm, welches mit der alten Platinenversion und auf dem gleichen µC funktionert, aufgespielt habe. Es wurden nur Veränderungen in der Pinkonfiguration vorgenommen. Wie gesagt, konnte ich das Programm das erste Mal ohne Probleme flashen und jetzt bekomme ich über die SWD Pins keine Kommunikation zwischen µC und PC auf die Reihe. Ich programmiere mit der Coocox IDE und habe auch schon probiert mit ST-LINK Utility auf den µC zuzugreifen, jedoch ohne Erfolg. Meine Frage daher, kann es sein, dass durch die Softwareänderung der µC alle Dienste verweigert oder ist es eher ein Hardwareproblem.
Zeig mal layout und Programm. Vileicht hast du durch falsche pinnbelegung einen kurzschluss verursacht und den uc gegrillt.
Was hast Du verändert? Warum hast Du die Pinkonfiguration geändert? Wie genau äußert sich das Problem (kein Connect, kein Erase, Flashen wird verweigert)? Du könntest noch versuchen an den eingebauten UART Bootloader zu kommen. Wenn Du allerdings ausversehen die Sicherheitsfeatures aktiviert hast wird es schwierig. Ist aber im Moment eher Orakeln.
Hast du vielleicht die SWD Pins umkonfiguriert? Ich bin mir beim F4 nicht ganz sicher, aber du kannst doch sicher an den Boot Pins einstellen, dass er im RAM startet. Dann sollte auch SWD wieder funktionieren. LG Christopher
Das Layout und das Programm kann ich leider nicht veröffentlichen. Das Layout wurde extern von einer Firma entwickelt, daher sollte das eig. funktionieren. Ich habe jetzt nochmal einen Pin am µC gemessen, der definitiv HIGH sein sollte und kann dies bestätigen. Ich gehe also davon aus, dass der µC an sich funktioniert und das Programm abspielt. Ich habe im GPIO-Register mit den vorgefertigten Funktionen der stm32f4xx_gpio.c Lib, jeweils die Pins neu konfiguriert. Das war nötig, um andere Pins zu nutzen, die layout-technisch günstiger liegen. Die SWD-Pins habe ich nicht angerührt. Was sollen das für Sicherheitsfeatures sein? BOOT0 ist auf Masse gezogen und BOOT1 offen. ST-LINK zeigt einen Fehlermeldung "No Target Connected" also überhaupt keine Kommunikation. CooCox sagt mir "Error: Connect failed, check config and cable connection" Das gleiche Programm habe ich eben noch auf ein Discoveryboard mit dem gleichen µC geflasht und dort kann ich danach auf alles zugreifen.
Wenn es nur auf dem neuen Board auftritt und es beim ersten Mal ging, kann es auch ein Kurzschluß gegen einen anderen gpio sein: Vor dem ersten Programmieren ging alles, weil der gpio High-Z war. Jetzt ist er als Output konfiguriert und beeinflusst durch einen Kurzschluß den SWD-Pin ?! Mess mal nach, was sich auf dem SWD-Pin bewegt. Gruß, Stefan
Felix G. schrieb: > Was sollen das für Sicherheitsfeatures sein? Option bytes: 0xCC: Level 2, chip protection (debug and boot from RAM features disabled)
Ich habe mir jetzt das Flash Programming Manual angesehen. Um den Schreibschutz oder ähnliches zu aktivieren, müsste ich softwareseitig Einstellungen vornehmen. Das heißt, dass mein Programm auf jedem Mikrocontroller eine Sperrung hervorrufen würde. Da aber das gleiche Programm auf dem Discoveryboard geflasht wurde und ich immer noch auf den µC zugreifen kann, kann ich das Thema Schreibschutz meiner Meinung nach ausschließen. Mit dem Multimeter messe ich bei SWDIO 3,3V und bei SWDCLK 0V, wenn der Programmieradapter abgesteckt ist. Ist die 3,3V Spannung normal bei SWDIO? Ansonsten könnte dort evtl. ein Kurzschluss liegen.
Felix G. schrieb: > Das > Layout wurde extern von einer Firma entwickelt, daher sollte das eig. > funktionieren. Falsche Annahme :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.