Main /

HY-Mini STM 32 V

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

HY-Mini STM 32 V

/ HomePage / Computerthemen / Hardware / Microcontroller / HY-MiniSTM32V

Informationen zum HY-MiniSTM32V Board

Bei Watterott Elektronik gibt es für kleines Geld ein kleines Entwicklungsboard auf ARM-Basis mit integriertem (aber abnehmbaren) Touch-TFT-Bildschirm zu kaufen. (Link).

Da ich mich gerne nebenbei mit ARM-MCUs beschäftigen möchte, schlug ich zu. Das Board kommt nackt ohne irgendwelche Infos und Software. Leider gibt es auch kaum geballte Infos im Netz, ich musste mir alles mühsam zusammenklauben. Die Hardware ist mittlerweile auch nicht mehr auf dem neuesten Stand der Technik, interessante Download-Links in diversen Foren sind mittlerweile tot.

Aus diesem Grunde habe ich hier wertvolle Informationen zusammengetragen die den Einstieg und die Programmierung erleichtern.

Hardwareübersicht

So sieht das Teil aus:

Im Auslieferungzustand ist ein Grafikdemo vorinstalliert, das dem Foto entspricht.

CPU / Controller

Der Controller ist ein STM32F103 von ST Microelectronics mit folgenden Features:

  • ARM Cortex M3 Core 32Bit, 72 MHz
  • 48 KB SRAM (verdammt wenig, aber es lässt sich externes SRAM verdrahten, wenn man einige IO-Pins opfert)
  • 256 KB Flash ROM
  • Mehr steht im Datenblatt

Anschlüsse und Buttons des Boards

USB zu seriell (rechts oben)

  • Dient der Programmierung und Stromversorgung.
  • Realisiert über einen Prolific PL2303 Chip.
  • Wird unter Linux erkannt und funktioniert mit den Modulen ftdi_sio, pl2303 - das Device ist in Ubuntu-linux /dev/ttyUSB0 falls es nicht noch weitere USB zu seriell-Adapter im System gibt.
  • Für Windows gibt es nur Treiber bis Windows 7!
  • Für Mac OSX Sierra gibt es funktionierende Treiber
  • Standardeinstellung 115200 Baud 8N1
  • Um unter Linux mit Minicom irgend einen Output zu sehen muss in Minicom die "Hardware Flow Control" ausgeschaltet werden!

USB (links oben)

  • USB über die IO-Pins des Controllers
  • kann man programmieren.
  • Hat im Auslieferungszustand keine Funktion
  • Auch hierüber kann das Board mit Strom versorgt werden.

Buttons

  • Reset-Button (Unten rechts)
  • Boot0-Button (2. von rechts) - Wird diese Button beim PowerUp/Reset gedrückt gehalten, geht das Board in den Bootloader und kann über USB Programme in den Flash-Speicher laden.
  • Key A und Key B - Vermutlich Benutzerdefinierbare/Programmierbare Buttons. Wenn man einen oder beide beim Power-Up drückt bleibt der Schirm weiß und über die serielle USB-Schnittstelle kommen ein paar Infos und Müllzeichen (Chinesisch?)

LEDs

  • Power
  • linker USB-Port Empfang
  • 2 frei Programmierbare

Mikro-SD-Karten Slot

  • Bootfähig? Keine Ahnung!

Standardverdrahtung auf dem Board (Auszug)

STM32-PINFunktionI/O
PA9PL2303 TXO
PA10PL2303 RXI
PC13User-Key AI
PB2/BOOT1User-Key BI
PB0LED 1O
PB1LED 2O
PB7LED USBO

Vorinstallierte Demo-Software

Ich habe den vorinstallierten Inhalt des Flash-Roms ausgelesen (siehe unten) und einer genaueren Untersuchung unterzogen. Das Demo basiert auf einem Micriµm RTOS µC/OS-II Kernel.

Es finden sich keine Hinweise auf eine Shell, oder ein interaktives Monitorprogramm. Es dürften sich jedoch Infos über die Anzahl der Tasks und die Speicherbelegung über seriell abrufen lassen, wenn nicht sofort der Demo-Task gestartet werden würde.

Es gibt lediglich den Kernel, die Grafikbibliothek, das Demoprogramm selbst und die benötigten Grafiken. Ein Dateisystem ist für mich nicht erkennbar. Ich habe es nur grob disassembliert (alles THUMB-Code) und mir nicht die Mühe gemacht es in Tiefe zu verstehen.

Es handelt sich vermutlich um das Standard-Demo der Micriµm GUI Bibliothek

Jedoch findet sich auch der Text "HY-SmartSPI FlashDisk 1.0 #-STM" im ROM, ist das ein Hinweis dass Programme von einer SD-Karte nachgeladen werden können? Oder doch ein Dateisystem? Ich weiß es (noch) nicht.

Weitere Interessante bzw. kuriose Strings im ROM:

  • How are you?
  • PL2303HX and CN3 OK
  • Start Task
  • CPU ID
  • ?: Help (This Menu)
  • MSDOS5.0 ( happy smiley WTF?)

Flash-Programmierung

Zur Programmierung des Flash-Speichers habe ich bislang nur ein Programm gefunden. Es handelt sich um ein Python Script. Ich habe es nur unter Linux ausprobiert. Dort scheint es zu funktionieren.

Download unter stm32loader

Evtl. muss zusätzlich das Python-Paket pyserial installiert werden, das für die Kommunikation mit der seriellen Schnittstelle sorgt. Fehlt es meldet das script etwas wie "can't load module serial"

Generell muss das Board vor dem Flashen oder anderen Interaktionen mit dem Script in den Bootloader geschaltet werden. Dazu den Button Boot0 gedrückt halten und das USB-Kabel einstecken. Der Bildschirm bleibt weiß.

Flash Programmieren

So würde man ein selbst erzeugtes Programm in den Flash speicher programmieren.

./stm23loader.py -e -w -p /dev/ttyUSB0 -b 115200 -g 0x08000000 meinprogramm.bin

Nach einem Reset sollte das Programm starten.

Flash Auslesen

Mit dem Script lässt sich auch das bereits vorinstallierte Demo auslesen. Das folgende Kommando liest die kompletten 256 kb des Flosh-ROM aus und speicht sie in die datei demo.bin.

./stm23loader.py -r -l 18000 -p /dev/ttyUSB0 demo.bin

Softwareentwicklung für ARM

Folgt in Kürze, hier, auf einer anderen Seite, oder gar nicht winking smiley

Links

Frische Änderungen (All) | Edit SideBar Zuletzt geändert am 24.12.2016 14:35 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki