Forum: Mikrocontroller und Digitale Elektronik STM32 download aus Arduino IDE sehr unzuverlässig


von Ulf L. (ulf_l)


Lesenswert?

Hallo

Ich mache gerade meine ersten Schritte mit dem STM32, genauer gesagt mit 
der bluepill mit dem STM32F103C8T6 und der Arduino IDE. (über Sinn und 
Unsinn der Arduino Welt soll es jetzt hier nicht gehen) Hierbei habe ich 
rechte Schwierigkeiten das Programm in den Controller zu laden.
Fehlerausgaben sind einmal
1
Error probing interface "serial_w32"
2
stm32flash 0.4
3
Cannot handle device "COM6"
4
5
Failed to open port: COM6
6
http://stm32flash.googlecode.com/
7
8
Using Parser : Raw BINARY
9
10
processing.app.SerialException: Fehler beim Öffnen des seriellen Ports "COM6".
11
  at processing.app.Serial.<init>(Serial.java:147)
12
  at processing.app.Serial.<init>(Serial.java:82)
13
  at processing.app.SerialMonitor$4.<init>(SerialMonitor.java:101)
14
  at processing.app.SerialMonitor.open(SerialMonitor.java:101)
15
  at processing.app.AbstractMonitor.resume(AbstractMonitor.java:104)
16
  at processing.app.Editor.resumeOrCloseSerialMonitor(Editor.java:2126)
17
  at processing.app.Editor.access$1300(Editor.java:115)
18
  at processing.app.Editor$UploadHandler.run(Editor.java:2104)
19
  at java.lang.Thread.run(Thread.java:748)
20
Caused by: jssc.SerialPortException: Port name - COM6; Method name - openPort(); Exception type - Port busy.
21
  at jssc.SerialPort.openPort(SerialPort.java:164)
22
  at processing.app.Serial.<init>(Serial.java:136)
23
  ... 8 more
24
Fehler beim Öffnen des seriellen Ports "COM6".
Wenn ich dann das Ser. terminal schließe kommt
1
stm32flash 0.4
2
Error probing interface "serial_w32"
3
4
Cannot handle device "COM6"
5
http://stm32flash.googlecode.com/
6
Failed to open port: COM6
7
8
Using Parser : Raw BINARY
letztendlich hilft meistens nur die IDE ganz zu schließen, wieder 
aufmachen und dann den Hochladen Button drücken. Manchmal geht's aber 
auch zwei mal hintereinander und mit offenem Ser. Monitorfenster.
Gibt es da ser. USB-Adapter, die die Arduinio IDE besonder stressen oder 
dei da besonders verträglich sind? Aktuell ist das so ein NoName Teil 
vom Chinamann. Wenn ich z.B. das Dowloadertool von ST benutze (FLASH 
LOADER DEMONSTRATOR) mit dem gleichen USB-ser-Adapter  gibt es nie 
Probleme mit dem download. Der STM ist natürlich immer richtig gejumpert 
und der Reset gedrückt.

Für Tips, wie das aus der Arduino IDE besser ginge, wäre ich sehr 
dankbar.

Gruß Ulf

von Jim M. (turboj)


Lesenswert?

Ulf L. schrieb:
> Caused by: jssc.SerialPortException: Port name - COM6; Method name -
> openPort(); Exception type - Port busy.

Übersetzung: Jemand anderes hat den COM6 bereits geöffnet. Überprüfe mal 
ob da noch was anderes läuft oder ob da der Flasher manuell geschlossen 
werden muss.

von Ulf L. (ulf_l)


Lesenswert?

Hallo

Das dachte ich auch zu erst. Der andere Programmer war aber schon 
geschlossen. Es reicht immer nur die Arduino-IDE einmal zu schließen und 
dann neu zu starten.
Das würde ja eigentlich auf einen Bug in der IDE schließen lassen, daß 
die den USB-Adapter nicht richtig handelt, oder so.

Wenn ich aber einen Arduino UNO dran habe gibt es diese Probleme auch 
nicht.
[edit] dann ist der Adapter ja auch nicht mehr in Spiel, weil der UNO ja 
seinen eigenen Adapter mit bringt[/edit]

Der aktuelle USB-Adapter gibt sich als FTDI-Adapter aus.

Gruß Ulf

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Win und auch Arduino können mit FTDI Adaptern prächtig umgehen.

Ulf L. schrieb:
> Port busy.
Die Meldung solltest du ernst nehmen.

Und mit irgendeinem Hilfsprogramm prüfen, welche Software den Port 
belegt.

Ulf L. schrieb:
> bluepill mit dem STM32F103C8T6
Habe für diese Boards bisher nur den ST-Link verwendet, oder einen 
Bootloader aufgespielt.

von Jan L. (ranzcopter)


Lesenswert?

Arduino Fanboy D. schrieb:
> Und mit irgendeinem Hilfsprogramm prüfen, welche Software den Port
> belegt.

...hatte er ja schon geschrieben:
"Wenn ich dann das Ser. terminal schließe kommt..." :)

Ist jedenfalls unter Win10 exakt das gleiche Problembild wie z.B. mit 
Pro-Minis, einem USB-TTL-Adapter und der Arduino IDE - der geöffnete 
serielle Monitor blockiert den Port - aber eben nicht immer. Und wenn, 
dann braucht's einen IDE-Neustart.

von Einer K. (Gast)


Lesenswert?

Von einem IDE Neustart, weiß ich nichts, bzw. bei mir nicht nötig.

Aber dennoch muss man ein bisschen Vorsichtig sein....

Öffnet man eine Arduino Instanz.
Kann man mit datei->öffnen oder Beispiele usw. ein zweites Fenster 
öffnen.
Diese Fenster teilen sich einen Seriellen Monitor.
Dieser wird auch beim Upload korrekt deaktiviert.


Öffnet man allerdings eine zweite Arduino Instanz über das Win 
Menuesystem, dann lässt sich ein zweiter serieller Monitor öffnen. Was 
dann bei Port Überschneidungen Probleme(Port busy) macht!


Die beiden Arduino Instanzen sehen sich nicht.
Können sich nicht gegenseitig die seriellen Monitore deaktivieren.


Also:
Nur eine Arduino Instanz starten, und darin ruhig viele Fenster öffnen.
Dann kommts sich nicht ins Gehege.

------------

Jan L. schrieb:
> Arduino Fanboy D. schrieb:
>> Und mit irgendeinem Hilfsprogramm prüfen, welche Software den Port
>> belegt.
>
> ...hatte er ja schon geschrieben:
> "Wenn ich dann das Ser. terminal schließe kommt..." :)

Es gibt durchaus noch weitere Programme/Dienste, welche auf der 
seriellen Schnittstelle reiten.
Solange man nicht schaut, welches das "wirklich" ist, kann man tagelang 
auf der falschen Baustelle buddeln.

von Ulf (Gast)


Lesenswert?

Hallo

Es ist immer nur eine Instanz offen. Mit ser. Terminal habe ich den ser. 
Monitor der Arduino IDE gemeint. Ich hab mal noch einen zweiten FTDI 
Adapter bestellt. Vielleicht hat ja der einen Treffer.

Besten Dank schon mal für Euren Input.

Mit welchem Tool kann man denn ermitteln welches Programm den COMport 
nutzt?

Gruß Ulf

von Jan L. (ranzcopter)


Lesenswert?

Ulf schrieb:
> Hallo
>
> Es ist immer nur eine Instanz offen. Mit ser. Terminal habe ich den ser.

so hatte ich das auch verstanden - ist halt auch eine Art "Programm", 
das den selben Port benutzt.
Ob das nur relevant ist, wenn genau eine IDE-Instanz läuft, kann ich 
nicht sagen, ich habe mir vor langer Zeit angewöhnt, vor dem Upload der 
ser. Monitor halt zu schliessen.

> Monitor der Arduino IDE gemeint. Ich hab mal noch einen zweiten FTDI
> Adapter bestellt. Vielleicht hat ja der einen Treffer.

imo ziemlich unwahrscheinlich. Falls du statt FTDI (den du ja aktuell 
wohl benutzt) einen CH340 o.ä. benutzt, und damit einen anderen 
Treiber - dann wäre ein "geändertes" Verhalten wohl eher denkbar.

>
> Besten Dank schon mal für Euren Input.
>
> Mit welchem Tool kann man denn ermitteln welches Programm den COMport
> nutzt?

Process Explorer (sysinternals) sollte das können.

>
> Gruß Ulf

von Ulf L. (ulf_l)


Lesenswert?

Hallo

Erwartungsgemäß habe die anderen FTDI Adapter auch nichts gebracht. Die 
diversen Monitore Process Explorer und Co haben auch keine weitern 
Programme zu Tage geführt, die auf die gleiche ser. Schnittstelle 
zugreifen wollen.

Merkwürdige ist auch, wenn ich das "FLASH Loader Demonstrator" Tool von 
ST verwende, gibt es beim download über die ser. Schnitstelle nie ein 
Problem.

Dann habe ich einfach mal eine ST-Link Adapter besorgt. Hier klappt zwar 
der Download immer, aber das Programm im STM32 funktioniert nicht. Da 
wird zu Kontrolle immer die LED an PC13 eingeschaltet und bei der 
späteren CAN-Datenübertragung toggelt die mit jeder Übertragung fleißig 
vor sich hin. Wenn ich das Programm dann mit dem ST-Link 
compiliere/übertrage sagt das Konsolen-Fenster der Arduino-IDE das alle 
OK ist, aber die LED am STM32 rührt sich nicht und am CAN sind auch 
keinderlei Übertragungen zu sehen.
BTW, Warum wird da eigentlich, wenn ich in der IDE die "Upload methode" 
nur von seriell auf ST-Link umstelle ein völlig anderes Binary für den 
STM32 erzeugt ?

Für die downloaderei habe ich auch schon unterschiedliche Bluepills 
ausprobiert, was aber leider auch keine Besserung gebracht hat.

Gruß Ulf

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
Noch kein Account? Hier anmelden.