Hi,
ich habe mal auf einer Messe ein "STM32F303 - Nucleo-32 - ST part
number: Nucleo-F303K8" Board geschenkt bekommen und wollte das jetzt
einfach mal ausprobieren.
Da ich das ganze mit Arduino machen wollte, habe ich gestern ewig
rumgegoogelt und ausprobiert, einen Thread hier aufmachen wollen, doch
nochmal gegoogelt, Thread wieder gecancelt,.. usw. usf....
Fündig wurde ich dann mit dem STM32duino Projekt, welches mein Board
angeblich unterstützt: https://github.com/stm32duino/Arduino_Core_STM32
.
Leider habe ich trotzdem in der Arduino IDE genau mein Board nicht
gefunden, aber trotzdem einfach mal eines ausprobiert, welches am
nächsten rankam: "Board Nucleo-64" - "Board part number: F303RE".
Das Beispielprojekt "blink.ino" lies sich dann mit dem STL-Link ohne
Probleme übertragen und lief. Also dann erstmal auf die Socken gemacht,
mehr Infos zusammengekramt und dann war der Tag auch schon zuende.
Heute wollte ich dann mal ein bisschen weitermachen, also Board
angeklemmt und... es blinkt nicht mehr?! Testweise nochmal die blink.ino
aufgespielt, es werden keine Fehler gemeldet, die entsprechende
ÜbertragungsLED-blinkt dabei:
1
Der Sketch verwendet 10.364 Bytes (1%) des Programmspeicherplatzes. Das Maximum sind 524.288 Bytes.
2
Globale Variablen verwenden 2.416 Bytes (3%) des dynamischen Speichers, 63.120 Bytes für lokale Variablen verbleiben. Das Maximum sind 65.536 Bytes.
Aber das Programm läuft nicht. Auch am Breadboard mit div. anderen Pins
und LEDs probiert, probiert ob ich ein Serialprogramm aufspielen kann
und mir dieses was meldet,.. nichts. Es ist, als hätte sich das Board in
einen WROM verwandelt.
Also: hat wer Erfahrung mit den Dingern? Kann mir hier wer weiterhelfen?
Hi,
danke für die Hex. Leider kann die Arduino IDE wohl nur hex-Files
exportieren, frisst aber keine zum Übertragen. St empfiehlt gefühlt
trölf Software development tools.
Ich wollte jetzt erstmal SW4STM32 probieren, aber sowohl bei der 32- wie
auch bei der 64-bit Variante beschwert sich der Installer über fehlendes
Java:
Console:
1
UnZipSFX 6.00 of 20 April 2009, by Info-ZIP (http://www.info-zip.org).
You have no JavaRE or have a JavaRE 32bits.This application requires a Java Runtime Environment 64bits. Please download and install the JavaSE JRE 64bits. Press [OK] to get redirected to the website. Min Version : JavaSE 1.7.0_45 (64bit)
Obwohl ich jetzt extra dafür "jre-9.0.1_windows-x64_bin" installiert
habe...
Ich habe jetzt noch das Atollic TureStudio for ARM Lite ausprobiert,
finde dort aber auf Anhieb nix, wo ich eine .hex-File hochladen
könnte...
Wie man sieht, führt die Methode des unbekümmerten Herumprobierens
nicht immer zum Ziel.
Für Mitmenschen die das eher systematisch angehen, eine beruhigende
Tatsache.
Matthias S. schrieb:> @pegel: du hast schon D13/PB_3 blinken lassen?
Hallo,
ja, habe ich. So wie der Schaltplan vom Board das vorgibt.
Wenn nichts mehr geht, mach mit ST Link Utility erst mal ein
vollständiges Löschen und sieh dir auch die Schutzbits an.
pegel schrieb:> Wenn nichts mehr geht, mach mit ST Link Utility erst mal ein> vollständiges Löschen und sieh dir auch die Schutzbits an.
Ein komplettes Löschen habe ich schon gemacht. Mit den Schutzbites
meinst du wohl die "Option Bytes"? Mit denen kann ich jetzt gar nix
anfangen, darum davon ein Screenshot im Anhang.
Wäre allerdings tatsächlich sehr komisch, wenn da was geändert wäre...
Ich habe jetzt übrigens nochmal alles um die Diode durchgemessen, schaut
alles super aus. Zudem mal über einen Widerstand den Pin D13 auf die
3,3V geklemmt => LED leuchtet. Von dieser Seite kann ich also schonmal
einen Hardwaredefekt ausschließen.
--- schrieb:> Für Mitmenschen die das eher systematisch angehen, eine beruhigende> Tatsache.
Dann verrat mir doch bitte deine Weisheit, wie ich systematisch weiter
vorgehen soll. Danke.
Ich würde ein erprobtes Programm mit einer erprobten Prozedur auf den
Chip laden. Wenn es dann immer noch nicht klappt, könnte der Chip defekt
sein.
Für deinen konkreten Chip kann ich Dir nichts bieten, aber für einen
anderen STM32 Controller. Mit etwas Glück passt diese Anleitung auch bei
Dir. Also wenn gar nichts geht, versuche das mal:
http://stefanfrings.de/stm32/index.html
Das Programmieren eines Forth systems könnte helfen. Flashe es und
versuche, Werte der einzelnen Register zu ermitteln (indem man sie
ausgibt). Falls kein Prompt am putty erscheint, ist der Chip wohl im
Eimer.
Robert
Stefan U. schrieb:> Ich würde ein erprobtes Programm mit einer erprobten Prozedur auf den> Chip laden. Wenn es dann immer noch nicht klappt, könnte der Chip defekt> sein.
Ich habe das Dingens zum ersten mal in den Händen, ich habe als
erprobtes Programm nur das von pegel. Wie geschrieben, anfangs lief
er,...
pegel schrieb:> Wie ist es zum setzen der Boot Bits gekommen? Audu-Sowieso?>> In Anhang meine OptionBytes für ein Nucleo144-F746.
Da kann ich ehrlich gesagt nur mit den Schultern zucken. Aktiv habe ich
nix gesetzt, die Arduino IDE bietet von sich aus, auch keine Option
dazu. Allerdings kann die, zumindest beim AVRs, beim aufspielen eines
Bootloades wohl Fuses setzen.
Du meinst, wenn ich nBoot1 rausnehme (an nBoot0 kann ich nix ändern, ist
ausgegraut), könnte es klappen?
pegel schrieb:> Versuch mal deine so einzustellen.
Das geht nicht ganz so. nBoot1 konnte ich rausnehmen, ändert aber nix.
IWDG_SW habe ich gar nicht. IWDG_STOP und WWDG_SW sind ausgegraut &
deaktiviert.
nBoot0_SW_Cfg und nBoot0 sind ausgegraut & aktiviert.
Wenn ich mir die Hilfsanzeige so ansehe (siehe Anhang), spielt da aber
auch nBoot0 mit...
Edit:
Weil ich auf der mbed-Seite von meinem Board im Forum einen Thread
gefunden habe, der darauf hinweist, habe ich mal mein Board sowohl mit
7V per Vin, und 5V per 5V versorgt. Hat aber auch nix geändert.
Hast du versucht meine hex zu flashen und dann zu vergleichen?
Dann geh auf Target -> MCU Core, da siehst du wo das Programm liegt und
kannst es starten.
Matthias S. schrieb:> Zudem mal über einen Widerstand den Pin D13 auf die> 3,3V geklemmt => LED leuchtet.
Hoffentlich hat der Pin das verziehen falls er Ausgang war.
pegel schrieb:> Hast du versucht meine hex zu flashen und dann zu vergleichen?> Dann geh auf Target -> MCU Core, da siehst du wo das Programm liegt und> kannst es starten.
Ich lade nur deine hex hoch ;-)
Target => compare hat keine Unterschiede gefunden
pegel schrieb:> Dann geh auf Target -> MCU Core, da siehst du wo das Programm liegt und> kannst es starten.
Ähm.. damit kann ich ehrlich gesagt nix anfangen. Als ich da
reingegangen bin, stand der CoreState auf "Halted". Hab mal auf "Run"
umgeschaltet, wieder auf "Halted", Resets durchgeführt, usw. usf., die
Registerwerte haben sich dabei aber nicht geändert.
pegel schrieb:> BOOT0 ist laut Schaltplan = 0.> Brücke SB12 ist geschlossen?
Ach, das bezieht sich auf BOOT0 und nicht auf nBoot0 kling.
Entsprechend macht es aber keinen Unterschied, ob nBoot1 gesetzt oder
nicht gesetzt ist.
pegel schrieb:> Hoffentlich hat der Pin das verziehen falls er Ausgang war.grmlzefu
Da aber anscheind kein Programm läuft, wird der auch nicht als Ausgang
gesetzt gewesen sein... hoff
Matthias S. schrieb:> Registerwerte haben sich dabei aber nicht geändert.
Wo steht der PC? 0x8....
Jetzt kann ich nur noch anbieten den internen Oszillator zu benutzen um
Taktprobleme auszuschliessen und noch einen anderen Pin zu benutzen.
Welcher soll es sein?
PC steht bei 0x80011f8 und bewegt sich weder bei Run noch bei Step.
Interner Osz. hört sich gut an. Nimm bitte einen zusätzlichen Pin,
welcher ist egal, Hauptsache herausgeführt. Sinnvoll könnte sein, einen
von nem anderen Port zu nehmen, Wie wärs mit PA_9/D1?
Die ST-Link Firmware habe ich bereits geupdated.
LED blinkt. DANKE pegel!
Hab natürlich vorhin übersehen, dass PA_9 gleichzeitig UART1_TX ist,
aber zumindest konnte ich damit jetzt mein Problem schonmal auf den Takt
eingrenzen (und D13 ist nicht abgeraucht!)
Entsprechend habe ich jetzt mal im Schaltplan nachgeguckt, und siehe da:
X1+Hühnerfutter ist gar nicht bestückt! Da käme auch nur ein 32,768kHz
Kristall rein.
Wie kriege ich jetzt meine Arduino-Programme dazu, mit internen Takt zu
laufen? Und kriege ich da auch die 72Mhz hin?
VG
Matthias
Matthias S. schrieb:> Wie kriege ich jetzt meine Arduino-Programme dazu
Da kann ich dir nicht helfen.
Du solltest aber nachsehen, ob der Takt von ST-Link auch am F303 Pin
ankommt.
Matthias S. schrieb:> welches am nächsten rankam: "Board Nucleo-64"
Das kann auf Grund der unterschiedlichen Pinzahl nicht passen.
Musst für dein A...... ein passendes Board erstellen bzw. finden.
Beim Nucleo32 sagt das User Manual (UM1956, Kapitel 6.8) auch noch, daß
per Default der Takt auf HSI läuft. Wenn man aber den MCO vom ST-Link
auf OSC_IN haben will, muß man auch noch die Lötbrücke SB6 öffnen und
SB4 schließen.
Da kann ich auch nochmal gucken.
Auf jeden Fall habe ich jetzt herausgefunden, dass sich die boards.txt
von Arduino_Core/stm32duino auf GitHub von der unterscheidet, die der
Arduino-Board-Manger heruntergeladen hat. Bei letzteren fehlt nämlich
das Nucleo-F303k8,.... hrmpf
Matthias S. schrieb:> Da kann ich auch nochmal gucken.
Guck Dir auch noch in Kapitel 7 die Abbildung 10 an. So wie ich das
lese, wäre mit MCO vom ST-Link dann der Pin D7 am externen Connector
nicht mehr nutzbar, weil der MCO auf PF0 geht, der ident mit PC14 ist,
welcher gerade D7 ausmacht. Durch das Öffnen von SB6 hängt dann D7 am
externen Connector in der Luft.