Elektronik_Header_3LŘftersteuerung mit ESP-01

 

Display auf Englisch

Das dem Battery Management System (BMS) f├╝r meinen Rasenm├Ąherakku beiliegende Display war leider die chinesische Version. Gro├če Teile der Darstellungen waren deshalb zwar sch├Ân anzusehen, teilweise fast k├╝nstlerisch wertvoll, aber der Informationsgewinn auf diesen Seiten f├╝r mich eher gering bis nicht vorhanden.

Bei meiner Suche nach Informationen, wie ich das Display eventuell auf Englisch umschalten kann, bin ich auf die Seiten des Herstellers des BMS gesto├čen. Ich habe mit dem Betreiber der Seite Kontakt aufgenommen und er hat mir freundlicherweise und vollkommen unkompliziert eine Datei mit der englischen Version der Display-Firmware geschickt.


Im Vorfeld hatte ich schon ermittelt, dass das Display von einem STM32F103C8 befeuert wird und dass ziemlich viele der in einem STM32 gemeinhin vorhandenen Schnittstellen bereits an den Rand der Platine gef├╝hrt und passend beschriftet sind.

In drei Dokumenten von ST (Datenblatt f├╝r den STM32F103C8, AN2606 und AN3155) habe ich nachgelesen, wie die Programmierung eines STM32 prinzipiell vonstatten geht, das passende Tool STMFlashLoader Demo kann man bei ST kostenfrei herunterladen (gegen Registrierung).

Der STM32F103C8 kann ausschlie├člich ├╝ber USART1 oder SWD programmiert werden. Da ich von fr├╝heren Arbeiten mit ESP-01 Boards einen FT232-Adapter mit 3,3 V Option besitze, habe ich mich spontan f├╝r den USART1 als Programmierzugang entschieden.

Auf dem Board des Display ist diese Schnittstelle bereits auf einen vierpoligen Stecker, im Bild unten mit P5 bezeichnet, herausgef├╝hrt, der lediglich noch best├╝ckt werden muss.

Programmierschnittstelle des STM32F103C8

Der Pinabstand ist 1 mm. Solch winzige Stecker hat man normalerweise nicht in der Schublade liegen, ich musste diese Winzlinge allerdings bereits bei einem ├Ąlteren Projekt einsetzen und hatte noch den einen oder anderen Streifen Buchsen und Stecker ├╝brig.

Programmierstecker

Zur Verbindung des USB-Seriell-Adapters mit dem Display habe ich ein kurzes Kabel mit 4 Adern gel├Âtet, VCC, GND, Rx und Tx. Rx und Tx des Display werden ├╝berkreuz mit den Signalen des Adapters verbunden - Rx an Tx, Tx an Rx.

Programmier-Umgebung

Damit sich der STM32 in den Bootloader begibt, muss der Pin Boot0 vor dem Anlegen der Betriebsspannung auf “1” (VCC, 3,3 V) gelegt werden. In den Unterlagen zur Programmierung per Bootloader ist noch erw├Ąhnt, dass Boot1 gleichzeitig auf “0” zu legen ist. Boot1 ist allerdings beim STM32F103 im vorliegenden 48-poligen LQFP-Geh├Ąuse nicht ausgewiesen, ich habe diese Angabe vorerst also einfach ignoriert. Als zus├Ątzliche Hardware├Ąnderung muss jeweils ein PullUp von 100 kÔäŽ an die Anschl├╝sse Tx und Rx des STM32 geschaltet werden.

Diese ├änderungen habe ich fest eingebaut, Boot0 kann dabei ├╝ber einen Jumper auf VCC gezogen werden. Ich habe zur Sicherheit einen 100 ÔäŽ Serienwiderstand vorgesehen, der kleine Klecks am linken Anschluss des Jumper-Steckers. Das Signal Boot0 liegt am rechten Ende von R9.

Beschaltung Boot0

Die beiden Kommunikations-Signale Rx und Tx des STM32 liegen jeweils auf R28 und R29. Hier habe ich die PullUps fliegend an einem Ende angel├Âtet, das andere Ende geht ├╝ber einen Draht nach VCC, das am linken Ende von C3 zu finden ist.

Kommunikations-Signale mit PullUps

F├╝r die Widerst├Ąnde habe ich SMD-Typen verwendet, das ist aber kein Muss, bedrahtete Varianten funktionieren genauso, Platz ist ausreichend vorhanden.

Die Versorgungsspannung VCC vom Stecker des UART1-Port wird im ├ťbrigen nicht an den STM32 weitergeleitet, das musste ich mit einem zus├Ątzlichen Draht - im Bild unten der mit den roten Micro-Klipsen - bewerkstelligen.

Zuf├╝hrung von VCC

Achtung, hier ist wichtig, einen USB-Seriell-Umsetzer zu verwenden, dessen Signalpegel  auf 3,3 V eingestellt werden kann. VCC ist in diesem Fall ebenfalls 3,3 V, kann also problemlos f├╝r die Versorgung des STM32 w├Ąhrend der Programmierung verwendet werden. Das restliche Board des Display wurde f├╝r den Programmiervorgang nicht mit Spannung versorgt.

Solche USB-Seriell-Adapter sind im Netz zu finden (z.B. bei einem bekannten Internet-Kaufhaus mit e suchen nach “usb ttl ftdi” - darauf achten, dass der  Adapter die M├Âglichkeit bietet, 3,3 V Pegel an den IOs einzustellen).

So vorbereitet wird der USB-Seriell-Konverter an den Rechner angeschlossen, auf dem bereits das Programmiertool STMFlashLoader Demo von ST installiert ist.

Die Bedienung des Tools ist ziemlich geradlinig, ich m├Âchte deshalb hier nicht n├Ąher darauf eingehen. Wer sich einlesen m├Âchte kann sich die ausf├╝hrliche Beschreibung von Oliver Kuhlemann auf Cool-Web.de anschauen.

Ich habe vor dem Aufspielen der englischen Firmware noch schnell die Original-Firmware gesichert. Das Tool speichert den Code defaultm├Ą├čig im Motorola Format mit der Dateiendung *.s19. Die englische Firmware liegt mir als *.hex Datei vor, dieser Typ kann im Tool ebenfalls ausgew├Ąhlt werden, der Download auf die Hardware funktionierte problemlos.

Mein Display stellt jetzt alle Seiten in englischer Sprache dar, wobei an einigen Stellen einzelne Zeichen falsch positioniert werden, der Sinn ist aber trotzdem leicht zu erkennen, kein Vergleich mit den chinesischen Zeichen vorher ;-)


Ich habe mit Shawn Xiao vereinbart, dass ich die Binary-Datei mit der englischen Firmware Interessenten zur Verf├╝gung stellen darf. Bei Bedarf also bitte einfach mit mir Kontakt aufnehmen.

 


Besucherzaehler

Besucher seit
25.11.2000

>