STM32 Nucleo-F303K8 führt plötzlich kein Programm mehr aus

OP #5195811
Lesenswert?

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.
3
STM32 ST-LINK CLI v3.0.0.0
4
STM32 ST-LINK Command Line Interface
5

6
ST-LINK SN : 066FFF544956845187095523
7
ST-LINK Firmware version : V2J25M14
8
Connected via SWD.
9
SWD Frequency = 4000K.
10
Target voltage = 3.3 V.
11
Connection mode : Normal.
12
Device ID:0x438 
13
Device flash Size : 64 Kbytes
14
Device family :STM32F303x4-x6-x8/F328xx/F334xx
15

16
Loading file...
17
Flash Programming:
18
  File : C:\Users\user\AppData\Local\Temp\build9c9ef3bdfe2fccb480bc6e4bac749e41.tmp\Blink.ino.bin
19
  Address : 0x08000000
20
Memory programming...
21
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0%
22
 0%ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 90%ÛÛÛÛÛ 100%
23
Memory programmed in 0s and 672ms.
24
Programming Complete.
25

26
MCU Reset.
27

28
run application to exit
29
Application started.

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?
OP #5196457
Lesenswert?

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).
2
   creating: __sw4stm32_tmp/
3
  inflating: __sw4stm32_tmp/autorun.bat
4
  inflating: __sw4stm32_tmp/install_sw4stm32_win_64bits.exe
5
  inflating: __sw4stm32_tmp/msys-1.0.dll
6
  inflating: __sw4stm32_tmp/gzip.exe
7
  inflating: __sw4stm32_tmp/jre-8u131-windows-x64.tar.gz
8
  inflating: __sw4stm32_tmp/tar.exe
9
      0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
10
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x490000, State 0x10000
11
D:\Downloads\__sw4stm32_tmp\tar.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
12
"Failed to extract the bundled Java Runtime Environment"
13
"Trying to continue with some already installed..."
14

15
D:\Downloads\__sw4stm32_tmp>install_sw4stm32_win_64bits.exe

Fehlermeldungsbox:
1
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...
OP #5196575
Lesenswert?

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.
Angehängte Dateien:
Gast #5196594
Lesenswert?

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
OP #5196621
Lesenswert?

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?
Beitrag #5196660 wurde von einem Moderator gelöscht.
OP #5196681
Lesenswert?

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.
Angehängte Dateien:
OP #5196746
Lesenswert?

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
OP #5196801
Lesenswert?

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.
OP #5196981
Lesenswert?

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
Gast #5197016
Lesenswert?

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.
Gast #5197043
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren