mikrocontroller.net

Forum: Projekte & Code Basic im STM8S103


Autor: Ralph S. (jjflash)
Datum:
Angehängte Dateien:

Bewertung
4 lesenswert
nicht lesenswert
Im Rahmen eines Spaßwettbewerbes um den "billigsten BASIC-Computer"
aller Zeiten entstanden:

"Für die einen ist es ein Microcontroller, für die anderen der
wahrscheinlich billigste BASIC-Computer der Welt"

Mein Basiccomputer läuft in einem STM8S103 Minimumboard aus China (2
Stück für 1,53):

Ebay-Artikel Nr. 272151798778

und ist an eine CH340G USB2RS232 angebunden:

Ebay-Artikel Nr. 272258438888

Wenn man den "Mengenrabatt" aus China mitnimmt, kostet ein
"BASIC-Computer" 1,65@ (siehe README.TXT).

Das Projekt ist als reines Editor / Make Projekt unter Linux entstanden
und wird mit dem SDCC 3.50 übersetzt.

Im Zip-Archiv sind sämtliche Dateien enthalten, um die Firmware zu
erstellen.

Im Ordner basict das Makefile aufrufen mit:

make all

(Um die Firmware zu erstellen)

make flash

(Um die Firmware mittels eines ST-Link v2 zu übertragen).

Vllt. mache ich auch nur so aus Gag auch noch eine Miniplatine für
diesen Zwerg.

Einen Schaltplan habe ich "nur" im Ascii-Format erstellt (ist auch in
der readme.txt enthalten):
             +---------------------------------------+----------------+
             |                                       |                |
+--------+   |       +---------------------+         |     +----------------------+ 3,3V
| U  +5V | --+       |                     | +3,3V         |         5V           |---------
| S   D+ | ----------|  6               16 |---------------| 3,3V                 | SWIM
| B   D- | ----------|  5    CH340G        | TxD           |                      |---------
|    GND |           |                   2 |---------------| D6   STM8S103F3P6    | GND        ==> ST-Link v2
+--------+ --+   +---|  4                3 |---------------| D5     Board         |---------
             |   |   |    7       8        | RxD           |                      | NRST
             |  ===  +---------------------+         |     |         GND          |---------
             |   |100n    |       |    |             |     +----------------------+
            --- ---       +--|#|--+    |          +------+           |
                          |       |    |     100n |     +| 47uF      |
                          | 12MHz |    |         ===    ===          |
                         ===     ===   |          |      |           |
                          |       |    |          |      |           |
                         ---     ---  ---        ---    ---         ---

Außerdem vllt. ganz praktisch für manche: Es sind Libraries zur
Initialisierung des STM8 sowie für GPIO Behandlung und serielle
Schnittstelle im "Paket" enthalten.

Vielleicht hat ja jemand Spaß damit!

Gruß Ralph

PS: :-) die Anführungszeichen nicht übersehen, das ganze war ein
Spaßprojekt aber irgendwie wars lustig und nun versuche ich etwas in der
Art für einen STM32F103 zu machen (nur in etwas besser und mit mehr
Möglichkeiten)

Autor: Ralph S. (jjflash)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Im Schaltplan ist mir leider ein Fehler unterlaufen, ich habe D+ und D- 
vertauscht.

Der hier ist richtig !
            +---------------------------------------+----------------+
             |                                       |                |
+--------+   |       +---------------------+         |     +----------------------+ 3,3V
| U  +5V | --+       |                     | +3,3V         |         5V           |---------
| S   D+ | ----------|  5               16 |---------------| 3,3V                 | SWIM
| B   D- | ----------|  6    CH340G        | TxD           |                      |---------
|    GND |           |                   2 |---------------| D6   STM8S103F3P6    | GND        ==> ST-Link v2
+--------+ --+   +---|  4                3 |---------------| D5     Board         |---------
             |   |   |    7       8        | RxD           |                      | NRST
             |  ===  +---------------------+         |     |         GND          |---------
             |   |100n    |       |    |             |     +----------------------+
            --- ---       +--|#|--+    |          +------+           |
                          |       |    |     100n |     +| 47uF      |
                          | 12MHz |    |         ===    ===          |
                         ===     ===   |          |      |           |
                          |       |    |          |      |           |
                         ---     ---  ---        ---    ---         ---

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tolles Projekt!
Wenn jetzt noch der Funktionsumfang von Micromite [1] auf dem STM32 
erreicht wird, dann finden sich sicherlich auch einige ernsthafte 
Nutzer.

[1] http://geoffg.net/MicromiteMX170.html

Autor: Ralph S. (jjflash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Wenn jetzt noch der Funktionsumfang von Micromite [1] auf dem STM32
> erreicht wird

... den gibts schon für einen STM32F746

Allerdings ist mir dieser Controller dann für meinen Gebrauch eine 
Nummer zu groß, zur Verfügung hab ich hier nur

-F030 (16k)
-L050 (64k)
-F103 (mit 64k und 128k)
-F401
-F429

Ich versuch mich gerade am F030, aber der ist mit seinen 16k schon sehr 
dünn bestückt, mal sehen ob das mit dem L050 oder F103 was wird. Das 
soll ja ein Spaßprojekt sein und außerdem soll das noch von Hand auf 
eine Platine gelötet werden können, bei den Cortex M4 kann ich das nicht 
und bin immer auf Boards angewiesen (und deswegen mag ich sie im 
Normalgebrauch nicht, auch wenn das, was die Dinger können absolut irre 
ist)

Autor: Axel Schwenke (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

nett!

Ralph S. schrieb:
> Im Zip-Archiv sind sämtliche Dateien enthalten, um die Firmware zu

Fast. st8readihx ist nur als 32-bit Linux-Binary enthalten. Das mag 
nicht auf meinem 64-bittigen Linux. Kannst du davon noch den Quelltext 
dazutun? Ich nehme an, das macht nicht viel.

Auch sonst hättest du IMHO die Binaries von picocom und stm8flash aus 
dem ZIP-Archiv weglassen können. Das sind ja Standard-Tools.

Ich spiele gerade mit einem STM32F103 Mini-Board herum. Das würde sich 
vermutlich auch gut für das BASIC eignen. Es hat mehr Pins und der µC 
kann direkt USB. Wenn ich mal ein bißchen Muße hab, gehe ich das 
vielleicht an :)

Autor: David Sawatzke (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein kleiner unschöner Port auf den stm32f030f4.
load und save hab ich rauskommentiert und sonst einfach nur gpio und 
usart geändert. Scheint zu tun, hat aber noch viel optimierungspotential

Autor: David Sawatzke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Schöne ist, dadurch dass die stm32's einen integrierten Bootloader 
haben, kann man sich den ST-Link sparen.
Wenn man jetzt noch sich noch statt tssop16 breakout boards für den 
ch430g, tssop20 breakout boards für beide kaufen, beim ch430g einfach 
absägt, kann man jetzt 10 breakout boards und 10 stm32f030f4 kaufen und 
man hat 9 Basiccomputer für nahzu den selben Preis wie die zwei auf dem 
stm8 basierten.
Man hat leider eben nicht so ein schönes Board.

(Quarz wird auch nicht mehr benötigt)

Autor: nach BASIC fängt das Leben an (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
> "Für die einen ist es ein Microcontroller, für die anderen der
> wahrscheinlich billigste BASIC-Computer der Welt"
>
> Mein Basiccomputer läuft in einem STM8S103 Minimumboard aus China (2
> Stück für 1,53):


Nett und ich Gratuliere zum Erfolg!

Jedoch: genau so billig kam mir BASIC schon vor über 3X Jahre vor, das 
war am Anfang meiner Pubertät...

Autor: Ralph S. (jjflash)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Axel S. schrieb:
> Fast. st8readihx ist nur als 32-bit Linux-Binary enthalten. Das mag
> nicht auf meinem 64-bittigen Linux. Kannst du davon noch den Quelltext
> dazutun? Ich nehme an, das macht nicht viel.

... ist hier angehängt, aber das Programm hätte dennoch übersetzt werden 
können, nur die "Statusanzeige" wieviel Speicher im Flash belegt wird, 
wird dann durch eine "Fehlermeldung" ersetzt.

Übersetzen von st8readihx.c mit:
gcc st8readihx.c -Os -o st8readihx

Axel S. schrieb:
> Auch sonst hättest du IMHO die Binaries von picocom und stm8flash aus
> dem ZIP-Archiv weglassen können.

... dem PicoCom hab ich halt mein "Retrogrün" gegeben wie das bei 
uralten Terminals der Fall war... und eine Anzeige dafür mit welchen 
Parametern das gestartet ist.

Axel S. schrieb:
> Das mag
> nicht auf meinem 64-bittigen Linux.

Ich sollte es mir zur Gewohnheit machen, Dinge entweder nur als Source 
oder in beiden Varianten , 32 und 64 Bit, zugänglich zu machen.

David Sawatzke schrieb:
> Hier ein kleiner unschöner Port auf den stm32f030f4.

Schmunzeln muss, auf dem f030 hatte ich das schon und habe das für den 
STM8 abgespeckt.
Mir gefällt es grundsätzlich nicht so recht, weil ich etwas mit 
Stringvariablen und und Gleitkommazahlen haben mag.

Auf dem F030 hatte ich zuerst den Speicherbereich von 14k bis 16k 
reserviert und dann im eigenen Flash das Programm abgelegt. Aber erstens 
ist der Flash nicht sooooo oft beschreibbar (lt. Datenblatt nur 1000 
mal) und zweitens hab ich dann weitere SCALL Funktionen hinzugefügt 
gehabt. Dafür hab ich dem Dingelchen ein 24C128 EEProm, Anschluss für 
N5510 84x48 oder SSD1306 Display und einen PCF8574 I/O Baustein 
spendiert.

Und muss feststellen, ich hätte das ganze gerne besser in einem größeren 
STM32 (bin ich am Überlegen ob ich so viel Zeit opfern mag, das hier war 
ja ein kleiner Wettbewerb)

David Sawatzke schrieb:
> man hat 9 Basiccomputer für nahzu den selben Preis wie die zwei auf dem
> stm8 basierten.

... die Sachen hab ich ja nicht extra gekauft, die hab ich eh hier (STM8 
und STM32f030 auch als blanke Chips). Ich versuch mich mal just for fun 
an einer Platine (die über Toner-Transfer gemacht sein soll). Werde ich 
sehen ob das mit TSSOP20 noch machbar ist.

nach BASIC fängt das Leben an schrieb:
> Jedoch: genau so billig kam mir BASIC schon vor über 3X Jahre vor, das
> war am Anfang meiner Pubertät...

Ich auch ... aber nostalgische Dinge ohne wirklichen Nutzen sind 
manchmal einfach herrlich.

Autor: icelon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde gerne wissen, ob es notwendig ist, einen Bootloader zu 
installieren, obwohl ich denke, dass das Kompilieren nicht die Option 
-flto enthält, da es den glücklichen Fehler gibt ....

Autor: Ralph S. (jjflash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... ich verstehe die Frage nicht so wirklich! Ich habe zwar einen 
Bootloader für den STM8S103 geschrieben, aber das "Basic-Projekt" darf 
diesen explizit nicht installiert haben, da der Flash-Speicher extrem 
knapp ist.

Was man machen könnte wäre, einen I/O Pin beim Start abzufragen und je 
nach dem welcher Pegel dieser führt, das abgelegte Basic-Programm 
automatisch zu starten.

Autor: icelon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verzeih mir mein Deutsch ist nicht gut :)

- Das Projekt stm8 und stm32 brauchen Loader?
- Muss Glas verwendet werden?
Vielen Dank im Voraus ist meine erste Inkunition in der Welt von STM, 
ich komme von Arduino und ich möchte diesen Code migrieren


https://github.com/monsonite/SIMPL/blob/master/SIM...

Autor: Ralph S. (jjflash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
The linked project has nothing to do with the basic-interpreter here. If 
you want to migrate the linked project you should have to learn how to 
work with microcontrollers and how to flash the devices.

STM8 have nothing to do with STM32 (8-Bit vs. 32-Bit). For a short 
reading of the linked project, the sources would compile to STM32 MCU'S 
so you have to learn how to flash the device.

Perhaps you've get a STM32F103 Bluepill: search the internet how to 
flash it !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.