Forum: Mikrocontroller und Digitale Elektronik STM32 Bootloader RS485


von Fabian (Gast)


Lesenswert?

Hallo Zusammen,

ich würde gerne die Firmware über RS485 auf einen STM32F103C8T6 laden. 
Da die Controller nachher im Haus verteilt sind will ich nicht überall 
mit dem Laptop hin laufen..
Leider komm ich mit meiner Idee nicht wirklich weiter. Ich hab versucht 
die Firmware über den Internen Bootloader und UART (FTDI Adapter) auf 
den Stm zu laden und das hat Problem los funktioniert. Genutzt habe ich 
die "Flash Loader Demonstrator" Software von ST.

Jetzt hab ich einen MAX485 an den STM32 gepackt und ein RS485-USB 
Adapter an den PC. Die Kommunikation über RS485 funktioniert auch, die 
habe ich schon getestet. Wenn ich aber jetzt versuche die Firmware mit 
der Software auf den ST zu übertragen kommt beim Verbindungsaufbau 
direkt der Fehler:
No Response from the target, the Bootloader can not be started. Please
verify the boot mode configuration and the flash protection status.
Reset your device then try again.

Mir ist auch irgendwo klar das es am umschalten zwischen Senden um 
Empfangen am Max485 liegt. Aber wie kann ich das Problem lösen?

Geht das überhaupt mit dem internen Bootloader was ich da vorhabe? Oder 
muss ich einen eigenen Bootloader schreiben? Und wenn ja könnte mir da 
jemand bei helfen?

Verwendet wird die HAL Library von CubeMX.


Vielen Dank schonmal
Fabian

von Jim M. (turboj)


Lesenswert?

Fabian schrieb:
> Geht das überhaupt mit dem internen Bootloader was ich da vorhabe?

Schaltplan? Aber vermutlich nein, denn der kann nicht wissen dass er den 
MAX485 Senden/Empfangen umschalten muss.

Mitunter wollen die auch während des Empfangs senden, das geht bei RS485 
natürlich nicht da halbduplex.

von eagle user (Gast)


Lesenswert?

Wenn du sowieso CAT-Kabel verwendest, hast du ja zuviele Adern ;) Dann 
könntest du Full Duplex Treiber verwenden, damit funktioniert der 
Bootloader wie mit RS232. Die Treiber brauchen zwar immer noch einen 
Enable (für den normalen Betrieb), aber er kann ja statisch mit 
BOOT-Signal eingeschaltet werden.

von Fabian (Gast)


Lesenswert?

Vielen Dank für die Antworen

Jim M. schrieb:
> Schaltplan? Aber vermutlich nein, denn der kann nicht wissen dass er den
> MAX485 Senden/Empfangen umschalten muss.

Schaltplan gibt es da nicht großartig einen. Ich hab TX an PA9, RX an 
PA10 und RE/DE an PA8 und der Rest ist alles auf dem Dev Board 
"BluePill".

eagle user schrieb:
> Wenn du sowieso CAT-Kabel verwendest, hast du ja zuviele Adern ;) Dann
> könntest du Full Duplex Treiber verwenden, damit funktioniert der
> Bootloader wie mit RS232. Die Treiber brauchen zwar immer noch einen
> Enable (für den normalen Betrieb), aber er kann ja statisch mit
> BOOT-Signal eingeschaltet werden.

CAT-Kabel hab ich  tatsächlich verlegt (passt ja schön wegen der 
Verdrillung für RS485).
Die Full Dupelx Treiber sind auch eine gute Idee, woran ich auch noch 
nicht gedacht hatte. Da müsste ich nur mal schaue wie ich das mache. Auf 
der Slave Seite (Mikrocontroller) wäre es kein Problem. Allerdings habe 
ich als Master ein Industriellen RS485 Wandler der leider nur Halfduplex 
kann.

von Icke ®. (49636b65)


Lesenswert?

Fabian schrieb:
> Die Full Dupelx Treiber sind auch eine gute Idee

Und die einzig mögliche, ohne den Bootloader umzuprogrammieren. Das 
Timing der Sende-/Empfangsumschaltung bei Halbduplex ist auch nicht 
gerade unkritisch. Bei 4-Draht hast du die Probleme nicht, das verhält 
sich transparent.

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.