Hallo,
ich habe einen ST-Link V3 und möchte damit ab und zu fest eingebaute
Platinen über den SWD-Port flashen, die etwas weiter von meinem PC
entfernt sind. Leider habe ich keinen Laptop und das Hinschleppen von PC
und Bildschirm ist mir auf Dauer lästig. Ich habe folgende Teile
gefunden:
https://de.rs-online.com/web/p/usb-extender/8988393/
Verbindet man mit LAN-Kabel, aber hat nur USB1.1. Ob das für ST-Link
ausreicht?
https://de.rs-online.com/web/p/usb-extender/1448000/
Wären dann schon mal 12 m. Schon mal besser als die üblichen 5m, die
nach meinem Wissen als Maximalreichweite für USB spezifiziert sind.
Gehen die beiden? Gibt es Geräte, die definitiv die 20m in Verbindung
mit dem ST-Link V3 schaffen?
- Erich-
Erich schrieb:> https://de.rs-online.com/web/p/usb-extender/1448000/> Wären dann schon mal 12 m. Schon mal besser als die üblichen 5m, die> nach meinem Wissen als Maximalreichweite für USB spezifiziert sind.>> Gehen die beiden? Gibt es Geräte, die definitiv die 20m in Verbindung> mit dem ST-Link V3 schaffen?
Artikel Beschreibung gelesen?
"Erweiterung auf bis zu 36 m (das dritte aktive Repeaterkabel kann 200
mA bereitstellen)"
Alternative: Nimm ein Raspberry Pi. An das kannst du direkt den ST-Link
hängen. Strom wird es vermutlich dort geben? Falls es WLAN auch gibt hat
es sich bereits erledigt. Ansonsten brauchst du nur noch ein 20m
LAN-Kabel. Das ist deutlich billiger und zuverlässiger und vor allem
auch für 20+ Meter vorgesehen.
Preislich wird nicht so viel um sein...
Erich schrieb:> Gehen die beiden? Gibt es Geräte, die definitiv die 20m in Verbindung> mit dem ST-Link V3 schaffen?
Ich habe mit solchen Extendern mal die Telefonanlage zur Programmierung
an den PC angeschlossen, für solche kleinen Datenmengen ging das
einwandfrei. Für eine Festplatte in 20 m Entfernung ist das nicht
gedacht.
Es gibt auch USB over Ethernet, praktisch ohne Entfernungsbeschränkung,
aber das funktioniert nicht immer und ist auch viel teurer.
Georg
georg schrieb:> Für eine Festplatte in 20 m Entfernung ist das nicht> gedacht.
Es ist auch keine Festplatte, sondern ein Mikrocontroller in einem
selbst entwickelten Gerät.
Johannes O. schrieb:> Alternative: Nimm ein Raspberry Pi. An das kannst du direkt den ST-Link> hängen. Strom wird es vermutlich dort geben? Falls es WLAN auch gibt hat> es sich bereits erledigt. Ansonsten brauchst du nur noch ein 20m> LAN-Kabel. Das ist deutlich billiger und zuverlässiger und vor allem> auch für 20+ Meter vorgesehen.
Und wie soll das gehen? Habe mit Raspberry Pi bislang Null Erfahrung.
Verbindung PC zum Raspbery Pi per LAN oder WLAN ist auch noch klar, aber
das Programmierprogramm auf dem PC (STM32CubeProgrammer) will auf USB
zugreifen und nicht auf WLAN oder LAN. Das wird dann den ST-Link V3
nicht finden.
Oder gibt es einen Flasher/Debugger mit LAN oder WLAN bis 200 €? Von
Segger gibt es beides, aber halt deutlich teurer als 200 €. Für den
täglichen Gebrauch ist der Preis von Segger OK, aber nicht, wenn man das
Teil privat nur 1 Mal im Monat benötigt.
Ich verwende bei mir so etwas in Verbindung mit einem J-Link EDU V8:
https://www.amazon.de/LogiLink-Verl%C3%A4ngerungskabel-%C3%BCber-CAT5-Meter/dp/B001TOG6MM
Es sind sicher keine 20m, aber wenn die USB-Signale differenziell auf
die CAT 5 Adern gebracht werden sollten auch 20m keine Rolle spielen.
Ich denke ehr entweder es geht egal ob mit kurzem oder langen Kabel oder
es geht überhaupt nicht.
In wieweit die neueren j-Link Versionen auch gehen weiß ich nicht. Auf
alle Fälle ist so etwas einen Versuch wert. Wenn es nicht geht hat man
ja ein Widerrufsrecht. Versuch macht klug.
> sollten auch 20m keine Rolle spielen
So naheliegend die Ansicht wegen des Buzzwords "differenziell"
auch sein mag, so falsch ist sie auch.
Die 5 m ruehren von den Laufzeiten im Kabel her.
Das kann selbst ein Cat 7 Kabel aber auch nicht besser.
Billiger als ein RPi ist unter Umstaenden ein altes Notebook.
Das kann man dann per WLAN/LAN und RDP in Fernbedienung nehmen.
Das BIN/HEX-File muss man dann auf dieses Notebook kopieren
und kann es dann mit STM32 ST-LINK Utility auf das Zielsystem
flashen.
Mit einem Programmer über LAN habe ich mich die letzten Tage auch
beschäfftigt, ich habe das mit einem F407 Board + Eth LAN8720
hinbekommen, etwa 20 € HW Kosten. Mit modifizierter Black Magic Probe
Software in Mbed eingebaut. Das funktioniert sehr zuverlässig, nur der
H743 spielt nicht richtig mit.
Ich hatte da auch einen Thread aufgemacht weil ich erst RPi+STLink oder
BMP nehmen wollte, aber der µC kann das auch in einem.
Beitrag "Black Magic Probe für PC (hosted) in WSL kompilieren"
Noch billiger wird es wenn das hier funktioniert:
https://github.com/Ebiroll/esp32_blackmagic
Dann aber über WLAN.
georg schrieb:> Die Extender sind USB-konform und erheblich billiger:>> https://de.rs-online.com/web/p/usb-extender/1448000>> Die bekommt man auch in jedem Computerladen.
Aber nicht so universell verwendbar wie mit einem CAT5 Kabel. 3
hintereinander stecken ist doch wohl Mist. Da ist die Variante ein
beliebiges LAN-Kabel zu verwenden wesentlich angenehmer.
Larry schrieb:> So naheliegend die Ansicht wegen des Buzzwords "differenziell"> auch sein mag, so falsch ist sie auch.>> Die 5 m ruehren von den Laufzeiten im Kabel her.> Das kann selbst ein Cat 7 Kabel aber auch nicht besser.
bei 5ns/m beträgt die Laufzeit 100ns bei 20m. 10m habe ich auch
wenigstens und es geht zuverlässig. Die Laufzeit ist auch nicht das
alleinige Kriterium. Solange die Signale sauber sind spielt es nicht die
entscheidende Rolle ob sie 100ns früher oder später kommen. Sauber
bleiben sie aber nichr mit den normalen USB-Treibern bei langen
Leitungen.
Die Treiber für die USB-Leitungen sind nicht für lange Leitungen
ausgelegt und da hilft eine ordentliche Umsetzung und eine passendes
Kabel schon.
Bei Preisen von unter 20€ würde ich das ausprobieren bevor ich mir so
ein Geraffel wie einen Raspberry antun würde.
Man kann auch einfach eine Kette aus Hubs bauen, das ist so schnell wie
man will, und funktioniert zuverlässig.
Wenn der letzte einer mit Netzteil ist (und idealerweise jeder (zweite)
mittendrin auch), funzt das auch mit Festplatten ;)
Für Daueranwendung würde sich evtl. empfehlen, z.B. einen Rpi mit
VirtualHere dort zu parken, den kann man via LAN ansprechen und am PC
als normalen USB-Port nutzen.
Johannes S. schrieb:> Mit einem Programmer über LAN habe ich mich die letzten Tage auch> beschäfftigt, ich habe das mit einem F407 Board + Eth LAN8720> hinbekommen, etwa 20 € HW Kosten.
Ohne jetzt deine Arbeit bezüglich der BMP schlechtreden zu wollen, meine
ich, dass eine Lösung mit einem RPi sehr viel einfacher ist (wenn auch
vielleicht nicht unbedingt günstiger).
OpenOCD fungiert doch per se als GDB-Server und wenn man in seiner
GDB-Init "localhost" durch den "remote host" ersetzt, dann sollte das
ohne weiteres funktionieren. Man muss eben nur vorher OpenOCD auf dem
remote host (RPi, o.Ä.) starten.
OOCD muss man nur für jedes Target über die Konfiguration anpassen, BMP
erkennt das beim SWD scan und fertig. Geht natürlich nur mit denen die
in BMP eingebaut sind, aber das sind schon eine Menge wie die meisten
STM, NXP, Nordic, EFM und andere.
Für den RPi habe ich auch eine Portierung von BMP gefunden, ist aber
recht alt. Dann ist noch interessant das der RPi MIMO kann was die
meisten µC nicht können. Damit kann man SWD über SPI machen und ich habe
einen Blog gefunden wo das mit 30 MHz läuft, auch nicht schlecht (da
wurde auch OOCD benutzt).
Und die Variante mit dem ESP32 habe ich auch gebaut, man muss nur die
ganze ESP Umgebung mit esp-sdk, esp-idf und esp-rtos bauen. Dann will es
ein neues cmake haben was nicht in der distri ist und gesucht oder
selber gebaut werden muss. Aber es funktioniert, damit hat man für ein
paar € einen Programmer/Debugger per WLAN. Mit einem F103 hat es
funktioniert, nur mein H743 zickt rum, genau wie an meiner LAN Lösung.
Der macht irgenwas anders, aber das ist mein Einzelschicksal und soll
hier nicht das Thema sein.
Ja, gerne. Wenn möglich vorher mal über Discord quatschen, ist viel zu
erklären...
Aber solche Ausreißer sind nicht der Maßstab, BMP funktioniert mit den
meisten uC Top und einfacher als oocd.
Und auf dem F407 geht es auch nur mit Bitbanging, SPI Fullduplex mit
Tricks kann nur der RPi.
Im STM Forum gibts noch ein snippet für SPI senden/Bit Bang lesen. Aber
ist hier OT.
Der TO hat bestimmt schon eine USB Verlängerung bestellt.
Johannes S. schrieb:> Für den RPi habe ich auch eine Portierung von BMP gefunden, ist aber> recht alt. Dann ist noch interessant das der RPi MIMO kann was die> meisten µC nicht können.
grr - SPI MIMO kollidiert mit Funk MIMO. Hast du mal 'ne URL dazu?
georg schrieb:> Es gibt auch USB over Ethernet, praktisch ohne Entfernungsbeschränkung,> aber das funktioniert nicht immer und ist auch viel teurer.
ich programmiere meinen nano328p über Sharkoon USB Webserver 100/400
aber am Nano musste ich im Bootloader die Baudrate senken statt optiboot
mit mit 1M, 57k6 geht grad so auch für wUSB hama.
USB Extender sind so was wie Zufallsgeneratoren. Manchmal gibt es
Konfigurationen, in denen sie funktionieren.
Um das USB Signal anders zu verpacken und irgendwo hin zu tunneln,
bräuchte man eine Zeitmaschine, sonst kann man das Protokoll nicht
einhalten. Dementsprechend funktioniert das halt nur, wenn man Glück hat
eine Gerätekombination zu benutzen, die mit der Protokollverletzung klar
kommt.
Was funktioniert, sind die USB Server. Also Remote Host Controller. Der
hängt im Ethernet und der USB Host ist im USB Server drin, damit wird
das Timing eingehalten und fast alle Geräte funktionieren damit.