Ich bin noch sehr neu im Bereich STM32 und versuche gerade einen STM32F103C8T6 auf einem dieser blauen Boards aus China zum Laufen zu bekommen. Programmer ist ein ST-LinkV2 auf einem STM32F4Disco, gebaut wird mit einem Makefile. Das Programm ist momentan einfach ein Blinky das zum größten Teil aus Cube kommt und nur den LED-Pin initialisiert. Das Flashen mit Texane ST-Link hat das erste Mal einwandfrei funktioniert, danach nicht mehr. Die LED blinkte fröhlich vor sich hin, aber jeden weiteren Versuch zu flashen quittierte der Programmer mit "Unknown Chip ID". Habe auf der Github-Seite von Texane den Tipp gefunden, Boot0 auf HIGH zu legen, um den internen Bootloader zu verwenden. Damit kann ich mich nun wieder verbinden, aber auch ein vollständiges Erasen macht den Chip nicht wieder kooperativ. Flashen und Erasen geht also immer noch nur, wenn BOOT0 auf VCC liegt. Habe die Firmware von ST-Link auf die neueste Version gebracht, und auch OpenOCD und das ST-Link Utility probiert. Beide connecten nicht. Ich vermute einen groben Anfängerfehler. Muss an 0x8000000 vielleicht sowas wie ein Bootloader stehen, den ich beim ersten Versuch überschrieben habe? und: Wie bekomme ich den wieder drauf? (Das normale Startup.s-Script wird mit kompiliert)
Bei mir war das Problem, dass die Read-Out Protection gesetzt war (hab auch so ein China-Board), das konnte man aber mit der ST Utility wieder entsperren (über Option Bytes), danach hat das Flashen funktioniert. Aber wenn das Verbinden zur Utility bei dir nicht klappt, schwierig... Hast du die von hier heruntergeladen? http://www.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link004.html
Vielleicht hilft es, im Augenblick des Connects den Rest Knopf gedrückt zu halten. Möglicherweise deaktiviert Deine geflashte Firmware den SWD/JTAG Port und der Connect geht deshalb nicht.
Fantastisch, genau das war es! Jetzt muss ich nur noch die Stelle finden, wo das schief geht... SWD ist in Cube eigentlich aktiviert. Hmm.
Benajmin Buxbaum schrieb: > Ich bin noch sehr neu im Bereich STM32 und versuche gerade einen > STM32F103C8T6 auf einem dieser blauen Boards aus China zum Laufen zu > bekommen. Programmer ist ein ST-LinkV2 auf einem STM32F4Disco, gebaut > wird mit einem Makefile. Solange du ein passables Hexfile oder Binärfile zuwege bekommst, ist es egal, was für eine Toolchain du benutzt. Tippe ich richtig, daß du ein STLink-2 Nachbau-Board programmieren willst? Die Schreib- und Auslesesperren werden nicht beim Flashen gemacht, sondern beim allerersten Lauf der geflashten Firmware. Guck, ob du auf dem Board die Signale RxD1, TxD1, BOOT und RESET kontaktieren kannst. Wenn ja, dann lade dir das STM32Prog hier aus dem Forum herunter und brenne dir den Chip par Bootlader. Keine Sorge, der Bootlader im STM32 ist resident im ROM. Normalerweise reicht einmal Bulkerase aus, um den Chip wieder kooperativ zu machen. Manche Chips (insbes. F4xx) kriegen davon aber einen Latchup und brauchen dann für ne Millisekunde oder so einfach mal die VCC weggenommen. Falls das mit den Pins nicht geht, lege dir lieber einen Seggerschen J-Link zu und benutze deren Software. Jaja, ich referiere hier über Windows-Software. Falls jemand ERNSTHAFT die Lazarus-Version des STM32Prog nach Linux portieren will, sollte er das mal deutlich sagen. W.S.
Hab den Fehler gefunden. Cube hat den neu erzeugeten Code in ein anderes Verzeichnis gelegt, als ich dachte. Ich kann nun wieder flashen! Danke fuer die schnelle Hilfe!
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.