Forum: Mikrocontroller und Digitale Elektronik STM8S-Testboard


von Oliver S. (phetty)


Lesenswert?

Hi,
ich konnte nicht wiederstehen und habe mir mal 2 solche Testboards 
bestellt: http://www.st.com/mcu/contentid-130-113-STM8S_DISCOVERY.html
Und bei dem Preis um 5 Euro kann man das verschmerzen.
Besonders interessant finde ich die Möglichkeit, direkt per USB auf das 
Board zuzugreifen.

Ein Nachteil (gibt sicher noch andere) ist, dass man wohl momentan nur 
mit C programmieren kann.

von M. G. (looking)


Lesenswert?

Oliver Stellebaum schrieb:
> Und bei dem Preis um 5 Euro kann man das verschmerzen.

Wo hast Du das bestellt?

von M. G. (looking)


Lesenswert?

Hab es jetzt bei Watterott gefunden für 7,59€:
http://www.watterott.com/STM8S-Discovery

von Bert (Gast)


Lesenswert?


von Oskar (Gast)


Lesenswert?

Habe das Board heute auf der Emmbedded World mitgenommen - schaut gut 
aus.
Ein Täfelchen Schokolade gab es auch dazu :-)

Es gibt eine Menge Beispiele auf der Webseite von ST und die 
Dokumenatation ist gut verständlich geschrieben - SDK werde ich die Tage 
mal installieren.

von Bastler (Gast)


Lesenswert?

Bekommt jemand die SPI zum laufen?
ISRs, Timer, UART, I2C, alles will nur die SPI nicht!

von Meike (Gast)


Lesenswert?

Hallo,

ich habe zwei der Boards auf der Embedded bekommen.
Ich habe gesehen, dass auf dem Programmierteil ein Cortex M3 
(STM32F103C8T6) steckt. Es wäre schön, wenn man den Cortex M3 mit dem 
anderen Programmer programmieren könnte.

Anscheindend handelt es sich bei dem Programiergerät um ST-Link. Wobei 
ST-Link eigentlich ein JTAG Programmer ist. Der Programmer auf dem STM8S 
Discovery Board hat aber nur Masse, Reset, SWIM und +5V auf der 
Steckerleiste.
Es gibt jedoch noch 7 Pins ohne Steckerleiste.

Weiß vielleicht jemand ob es eine Möglichkeit gibt damit doch diese 
Cortex M3 zu programmieren?


Viele Grüße
Meike

von micha-uhl (Gast)


Lesenswert?

Hallo,
laut Handbuch UM0817 ist das ein JTAG Connector
Micha

von Hansi (Gast)


Lesenswert?

Habe auch das Board von der Embedded World. Wollte es heute mal 
austesten und habs an USB angestöpselt. Laut Quick-Start sollte eine LED 
blinken und die Frequenz lässt sich mit dem Taster einstellen. Bei mir 
tut da aber gar nix. Der Programmer wird von Windows7 erkannt, aber das 
wars dann auch schon.
Habe versucht mit dem ST Visual Develop zu Debuggen aber da kann keine 
Verbindung aufgebaut werden. Hab ich was übersehen?

von micha-uhl (Gast)


Lesenswert?

Hallo,
da scheint was kaputt zu sein. Liegt Spannung an? Am Jumper sollten 3,3 
und 5 Volt anliegen. Beim Anstecken wird außerdem ein Wechseldatentäger 
mit Links zu ST angezeigt.
Micha

von Luky (Gast)


Lesenswert?

Ich habe mal ausprobiert, ob man den ST-Link Teil auch zum debuggen 
eines STM32 verwenden kann.
Der nichtbestückte JTAG-Connector auf dem Board ist nur für das 
Programmieren des STM32 auf dem ST-Link. Also uninteressant.
Im Schaltplan hat der verbaute STM32F103C8T6 allerdings Pins 
eingetragen, welche auf einen JTAG-Adapter hindeuten (T_JTDO, T_JTDI, 
T_NRST, T_JRST, T_JTMS und merkwürdigerweise 2x T_JTCK)
Ich hab die mal mit dünnem Draht kontaktiert, die Aktion war aber nicht 
erfolgreich, der JTAG-Adapter findet keine angeschlossenen Controller.
Ich hab mit den STM32 ST-Link Utility getestet. Auch mit dem Oszi konnte 
ich keine Aktivitäten an diesen Pins feststellen.

von Meike (Gast)


Lesenswert?

Hallo,

 Luky danke für's ausprobieren.

Ich habe jetzt mal mit ST Kontakt aufgenommen. Anscheinend ist es die 
gleiche Hardware wie das richtige ST-Link. Aber nicht die gleiche 
Firmware. Die JTAG-Funktion wurde zu Gunsten der "USB-Stick" Funktion, 
auf der die Links zur ST-Seite gespeichert sind, rausgenommen.

Ich habe mal nachgefragt ob ich evtl. die richtige Firmware zugeschickt 
bekomme. (Die Frage wäre dann nur, wie bekomme ich die drauf)


Viele Grüße
Meike

von Luky (Gast)


Lesenswert?

Boot0 ist mit 100k auf GND gehängt. Legt man diesen Pin beim einschalten 
auf HIGH, startet der interne Bootloader. Diesen kann man dann das neue 
Programm über UART1 (Pins müssen kontaktiert werden) schicken, z.B. mit 
dem Programm "Flash Loader Demo" von der ST Seite.

von Jörg W. (styrofred)


Lesenswert?

Hallo zusammen

Da ja anscheinend einige auf der Embedded World waren und
nun die STM8S Boards liegen haben, kommt hier ein link
für den Cosmic C Compiler 32k Embedded World Edition.
Normal sind es nur 16k .

http://www.cosmicsoftware.com/ge/

Einfach Registrieren und downloaden.

Jörg

von 900ss (900ss)


Lesenswert?

Jörg W. schrieb:
> kommt hier ein link
> für den Cosmic C Compiler 32k Embedded World Edition.

Das Kleingedruckte nicht vergessen: "license valid for one year".

von Bernhard M. (bernhard84)


Lesenswert?

Ich hab auch so ein teil mitgenommen, hab aber bis jetzt noch nix damit 
gemacht.
Es wäre halt schön, wenns dafür auch einen komplett freien Compiler 
geben würde, so wie avr-gcc. Ohne sowas hat der uC wohl eher schlechte 
chancen bei den Bastlern.

von Pause (Gast)


Lesenswert?

Es gibt ja freie Versionen von sogar 2 Compilern. Die Codegrösse ist 
zwar auf 16 kB begrenzt, aber ich bin mir sicher dass das für die 
meisten Basterprojekte völlig ausreicht. Da muss man schon 'ne Weile 
programmieren.

von Thomas R. (tinman) Benutzerseite


Angehängte Dateien:

Lesenswert?

Meike schrieb:
> Hallo,
>
>  Luky danke für's ausprobieren.
>
> Ich habe jetzt mal mit ST Kontakt aufgenommen. Anscheinend ist es die
> gleiche Hardware wie das richtige ST-Link. Aber nicht die gleiche
> Firmware. Die JTAG-Funktion wurde zu Gunsten der "USB-Stick" Funktion,
> auf der die Links zur ST-Seite gespeichert sind, rausgenommen.
>
> Ich habe mal nachgefragt ob ich evtl. die richtige Firmware zugeschickt
> bekomme. (Die Frage wäre dann nur, wie bekomme ich die drauf)
>

Die firmware für alle drei ST-Link geräte kann man auch downloaden

http://www.st.com/mcu/familiesdocs-110.html
http://www.st.com//stonline/products/support/micro/files/stlinkupgrade.zip

Die prüft natürlich welche hardware version angeschlossen ist:
4Dh - ist ST-Link JTAG+SWIM
4Ah - ist ST-Link JTAG only
53h - ist ST-Link SWIM only
FFh - ist "empty ST-Link"

Diese werte werden von dem st-link bootloader geliefert - eine änderung 
in der software selber (ST-LinkUpgrade.exe) bringt auch nicht viel da 
der bootloader prüft was reinprogrammiert wird. Er meldet zwar update 
ok, allerdings wird die version nicht upgedated (der bootloader erlabt 
es nicht intern).
Die software kann auch ein "empty ST-Link" programmieren - dann 
erscheint auch ein auswahl dialog wo man die hardware version wählen 
kann (siehe screenshot). Danach geht natürlich einen "empty ST-Link" in 
eine von den drei genannten produkt versionen zu programmieren.

Das ganze geht natürlich über USB DFU.

Der STM32F103C8 auf dem STM8S-Discovery ist protected, also kein 
auslesen möglich. Natürlich kann man den internen bootloader aktivieren, 
es bringt aber auch nix.

Der ST-Link bootloader ist im prinzip 2* mass storage device, wenn man 
es richtig gecoded hat akzeptiert der ST-LinkUpgrade.exe es als "empty 
ST-link" und erlaubt programmierung. Man kann natürlich die firmware 
direkt aus der ST-LinkUpgrade.exe rauslesen (sind allerdings alle 3 
versionen zusammen "gepackt" und encrypted, wobei das kann jeder 
informatik student wieder decrypten in 2-3 stunden).

Ob sinn macht ist eine andere sache, der preisunterscheid zwischen den 
STM8S_DISCOVERY und ST-Link ist nciht so gross, ist auch nur "fumelei" 
die nicht geroutete jtag pins irgendwo zu verbinden.

Man kann den st-link SWIM (auf dem STM8S_DISCOVERY board, denke die 
anderen versionen sind genasu so robust) nicht kaputt machen (ausser 
über jtag löschen) - der einprogrammierte bootloader achtet schon drauf 
das kein mist einprogrammiert wird, daher wird ST auch den bootloader 
nicht zu download stellen, aber wie gesagt, den kann man auch selber 
coden.

von Иван S. (ivan)


Angehängte Dateien:

Lesenswert?

Ich hab' mich mal ein bisschen mit einem Resource-Editor gespielt und 
habe entdeckt, das es wohl unsichtbare Checkboxen gibt, wo man sowohl 
SWIM als auch JTAG auswählen kann. Ich habe die 'mal sichtbar gemacht, 
aber arbeiten tut es deswegen auch nicht wie gewünscht.

Vielleicht kann sich ja mal ein Profi das ansehen, ich bin 
zuversichtlich, daß einer, der sich halbwegs mit Windowsprogrammierung 
auskennt, das Teil serwohl "unlocken" kann.

Leider verschwinden die Radio-Buttons, wenn ich auf Connect gehe. Aber 
ich bin eben auch kein Windowsprogrammierer.

Anbei ein Sreenshot. Links nach dem Start, rechts nach Klick auf 
"Connect".
Der Update meines Discovery funktioniert, jedoch nur SWIM only. 
Natuerlich hätte ich gerne das JTAG for free dabei :-)

Iwan

von Иван S. (ivan)


Lesenswert?

Nachtrag @ Thomas R.: Bei Dir scheinen die Radiobuttons ja schon von 
selbst da zu sein, ich habe die Software bei der von Dir angegebenen URL 
heruntergeladen, die Buttons waren aber nicht sichtbar. Erst nach 
Manipulation mit dem Resource Editor konnte ich sie zum Vorschein 
bringen. Seltsam!

iwan

von noobuntu (Gast)


Lesenswert?

Was kann man den mit ST Link auf dem STM8s Discovery eigentlich alles 
programmieren? Ich dachte STM32 etc funktionieren damit auch? Oder habe 
ich mich da im Datenblatt verlesen?

Gibt es eigentlich Interesse für eine STM8s Discovery Einleitung? Im 
Vergleich zu anderen Plattformen ist sich doch recht günstig und biete 
ein Debugger onboard. Leider ist für Änfänger die Doku/Tutorials recht 
dürftig.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Иван S. schrieb:
> Nachtrag @ Thomas R.: Bei Dir scheinen die Radiobuttons ja schon von
> selbst da zu sein, ich habe die Software bei der von Dir angegebenen URL
> heruntergeladen, die Buttons waren aber nicht sichtbar. Erst nach
> Manipulation mit dem Resource Editor konnte ich sie zum Vorschein
> bringen. Seltsam!
>
> iwan

ja siehe :

4Dh - ist ST-Link JTAG+SWIM
4Ah - ist ST-Link JTAG only
53h - ist ST-Link SWIM only
FFh - ist "empty ST-Link"

> Die software kann auch ein "empty ST-Link" programmieren - dann
> erscheint auch ein auswahl dialog wo man die hardware version wählen
> kann (siehe screenshot). Danach geht natürlich einen "empty ST-Link" in
> eine von den drei genannten produkt versionen zu programmieren.

von Иван S. (ivan)


Lesenswert?

noobuntu schrieb:
> Was kann man den mit ST Link auf dem STM8s Discovery eigentlich alles
> programmieren?

Prinzipiell alle STM8, egal ob A-, L- oder S-Version.

> Ich dachte STM32 etc funktionieren damit auch? Oder habe ich mich da im
> Datenblatt verlesen?

Das Board hat zumindest einen (unbestückten) JTAG-Header, wie Meike in 
diesem Fred schon geschrieben hat, ist es ein abgespecktes ST-Link, da 
der Programmier-Cortex eine andere Firmware hat, die den JTAG-Modus 
nicht unterstützt. Aber ich bin zuversichtlich, bzw. hoffe, daß sich 
doch noch ein Windowsprogrammierer erbarmt und das Update-Tool 
entsperrt, sodass auch der JTAG-Header benutzt werden kann.

> Gibt es eigentlich Interesse für eine STM8s Discovery Einleitung?

Klar, immer nur her damit. Einen Artikel zum STM8 (grober Überblick) 
gibt es hier im Wiki, initiiert von mir, unter 
http://www.mikrocontroller.net/articles/STM8 schon, nur das ist halt 
ziemlich dürftig und ausbaufähig. Falls Dich der STM8 generell 
interessiert, könnte auch der Fred 
Beitrag "Empfehlung 8-Bit-Controller: STM8" interessant für dich sein, 
zumindest ist er meiner persönlichen Meinung nach ziemlich kurzweilig. 
Leider ebenfalls eingeschlafen :-(

> Leider ist für Änfänger die Doku/Tutorials recht dürftig.

Naja, es gibt schon ein bisschen was im Netz, aber nicht für den 
absoluten Beginner, da hast Du recht!

Lieber Gruß, Iwan

von Иван S. (ivan)


Lesenswert?

Thomas R. schrieb:
> 4Dh - ist ST-Link JTAG+SWIM
> 4Ah - ist ST-Link JTAG only
> 53h - ist ST-Link SWIM only
> FFh - ist "empty ST-Link"

Wo genau muss ich das eingeben? Das ist mir nicht ganz klar! Und wo kann 
ich die Firmwares herunterladen, oder sind die im Updatedabei in der exe 
inkludiert? Muss ich gar einen USB::Man-in-the-Middle aufbauen?

>> Die software kann auch ein "empty ST-Link" programmieren - dann
>> erscheint auch ein auswahl dialog wo man die hardware version wählen
>> kann (siehe screenshot). Danach geht natürlich einen "empty ST-Link" in
>> eine von den drei genannten produkt versionen zu programmieren.

Cool, also braucht man die Exe gar nicht zu hacken, sehe ich das 
richtig? Das wäre ja fein. Verzeihe meine dummen Fragen, aber mit USB 
(jenseits von virtuellen seriellen Schnittstellen) bin ich nicht sehr 
bewandert.

Gruß, Iwan

von Sebastian M. (noobuntu)


Lesenswert?

> Beitrag "Empfehlung 8-Bit-Controller: STM8" interessant für dich sein,
> zumindest ist er meiner persönlichen Meinung nach ziemlich kurzweilig.
> Leider ebenfalls eingeschlafen :-(

Also aufgrund dieses Threads habe ich mir mal ein STM8s bei Farnell 
mitbestellt. Und war vom dem Tool doch sehr positiv überrascht. Dabei 
würd ich mich nicht als absoluten Beginner bezeichnen. Komme eigentlich 
aus der Javaecke und habe dann mit dem AVR Tutorial mir beigebracht 
Atmegas in C zu proggen und bewege mich jetzt auf die höheren Weihen zu.

Aber ich finde für absolute Beginner ist das Discovery äußerst 
Interessant. Da man nur ein paar Euros ausgeben muss und man kann 
praktisch loslegen ohne 40 Euro für einen ISP oder mehrere Hundert für 
ein JTAG auszugeben! Außerdem gibt es eine recht große Lib, sodass man 
relativ schnell mit dem UART etc arbeiten kann und nicht jedes mal das 
Rad neu erfinden muss. Da doch viele den Einstieg die uC nicht wagen, da 
sie nicht so viel Geld für eine Sache ausgeben wollen, von der sie nicht 
wissen ob es ihnen Spass macht oder auch nicht?

mfg noobuntu

von M. G. (looking)


Lesenswert?

Basiert der STVD auf dem GDB?
Im Verzeichnis C:\Programme\STMicroelectronics\st_toolset\stvd gibt es 
eine gdb7.exe, vermutlich wird diese beim Debuggen im STVD verwendet.

Könnte man mit dem gdb7 auch ohne den STVD debuggen? Evtl. auch in einem 
Batchfile eine Reihe von Debug-Kommandos automatisiert ablaufen lassen? 
Wenn ja, wie würde das genau funktionieren? Habe leider mit dem gdb noch 
überhaupt keine Erfahrung.

von M. G. (looking)


Angehängte Dateien:

Lesenswert?

Im Verzeichnis C:\Programme\STMicroelectronics\st_toolset\stvd\swim gibt 
es eine gdbswim_stlink.ini
Wenn man dort am Ende jeder Zeile, die mit "target" beginnt,folgendes 
einträgt, wird bei einer Debugsession im STVD eine Log-Datei erstellt:
-SPY3 filename.txt

Im Anhang ist eine Beispiel-Logdatei drin, nur kann ich damit leider 
noch nicht allzuviel anfangen.

Was ich gerne machen will:
Befehle über USB mittels SWIM-Interface an den STM8 senden, um 
RAM-Bereiche on-the-fly, also ohne das Programm anzuhalten, 
schreiben/lesen zu können. Im STVD kann man im Watchwindow "on-the-fly" 
auswählen. Im Logfile sieht man dann z.B. während das Programm läuft 
immer folgende Ausgaben:

DiExecGetStatus
Emulator returned status RUNNING (stopReason = 0xffb0 (), ICD cell ID = 
0)
DiMemoryRead
gdiMemoryRead : 32 bytes at address 0x000011

Hat jemand eine Idee, wie man per Batchfile über den GDB7 solche Befehle 
senden kann?

von M. G. (looking)


Lesenswert?

Falls jemand Interesse an den Sources von STVD basierend auf GDB hat, 
hier der Link zum Download:
http://www.st.com/mcu/files/mcdt/1151586968.zip

von Jörg W. (styrofred)


Angehängte Dateien:

Lesenswert?

Hallo Iwan

Hier kommt mal eine Innenansicht vom ST-link.
Bis auf den Quarz und einigen Schutzdioden scheint er ja mit
dem STM8 Prommer identisch zu sein.

Jörg

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Jörg W. schrieb:
> Bis auf den Quarz und einigen Schutzdioden scheint er ja mit
>
> dem STM8 Prommer identisch zu sein.

nicht ganz, mich würde die rückseite interessieren. PA0 scheint schon 
anders zu sein (wofür auch immer der ADC beim jtag benutzt wird)

von Jörg W. (styrofred)


Angehängte Dateien:

Lesenswert?

Hallo  Thomas

Du hast recht, sie sind nicht 100 % identisch.
Hier kommt die leere Unterseite.
Und hier gibt es die Beschreibung dazu.

http://www.st.com/stonline/products/literature/um/15285.pdf

Für 20-30 Euro bekommt mann meiner Meinung nach einen reellen Gegenwert.

Gruß Jörg

von Jörg W. (styrofred)


Angehängte Dateien:

Lesenswert?

Weil es so schön ist ... noch ein Bild.

Jörg

von Thomas R. (tinman) Benutzerseite


Lesenswert?

wunderbar danke !

PA0 macht auf dem st-link durchaus sinn - vtarget erkennung. Auf dem 
Discovery ist fest an VCC - dachte schon es hat was mit DFU zu tun.

Allerding recht hast du, die 20eur lohnt auf jeden fall.

Ups, wo ist der STM32 geblieben  :)

von noobuntu (Gast)


Lesenswert?

hi,

ich habe mal eine ganz Blöde Frage. Was hat das "->" beim Code für den 
Stm8 zu bedeuten? Zum Vergleich habe ich noch den Code mit der selben 
Funktion bei einem Atmega hingeschrieben! Ist das so ne Art 
Schiebeoperation??? Für den GPIOD ist in der Header Datei ein Register 
hinterlegt (0x500F)
1
//Bei nem Atmega
2
DDRD = 0x01; //PD0 als Ausgang schalten
3
4
//Beim stm8s
5
GPIOD -> DDR = 0x01; //PD0 als Ausgang schalten

mfg noobuntu

von Sebastian M. (noobuntu)


Lesenswert?

Also ich habe mal angefangen ein Wikieintrag zum stm8s discovery zu 
verfassen (Es ist mein erster Wikibeitrag). Der Beitrag soll sich 
eigentlich in erster Linie an Anfänger wenden. Leider bin ich noch nicht 
so weit. Aber das wird. Das Wochenende ist lang ;).

Der Link: http://www.mikrocontroller.net/articles/STM8S-Discovery

Wer Rechschreibt/Formatierungs/Inhaltsfehler etc... findet oder soagr 
Lust hat mitzuschreiben darf gerne mithelfen/verbessern.

mfg noobuntu

von Sebastian M. (noobuntu)


Lesenswert?

Kleines Update des Artikels. Ich hoffe ich hab nicht zuviele Typos 
drinnen :P

von st-link (Gast)


Lesenswert?

@Sebastian

> Auf der Platine befindet sich ein kompletter USB-Programmer/Debugger
> basierend auf dem STM8S105C6T6

ehm sicher ?

von Sebastian M. (Gast)


Lesenswert?

Sry, das war wohl ungeschickt formuliert. Gemeint war das auf dem 
Discovery neben dem Programmer Debugger ein Stm8s... zum Ausführen von 
Progs ist. Der St Link basiert natürlich auf einem stm32.

von Sebi (Gast)


Lesenswert?

hallo,
ich hätte mal ne frage und hoffe mir kann jemand helfe,
undzwar möchte ich den TS1 einlesen.
die erste schritte habe ich mir auf dieser seite angeeignet:
http://benryves.com/tutorials/stm8s-discovery/

nun habe ich ein problem beim einfügen der interrupts.
wie ist das gemeint mit den stm8s_it.c und stm8s_it.h
<<stm8s_it.c

#include "stm8s.h"
#include "stm8s_it.h"

void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void) {
    // TODO: Implement TIM1 update interrupt handler.
}
stm8s_it.h

#ifndef __STM8S_IT_H
#define __STM8S_IT_H

@far @interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void);

#endif>>
die stm8s_it.h datei kann ich in meinem cosimc gar nicht ändern oder wo 
ist diese passage einzufügen?

zusätzlich würde mich noch interessieren ob jemand den taster schonmal 
selbst eingelesen hat, also ohne die fertige library.
schönen gruß sebi

von Peter (Gast)


Lesenswert?

Hallo,

ich würde gerne das STM8S Discovery Board testen, aber STVD und STVP 
stürzen ständig ab in der neusten Version 4.2.1.
Hat jemand von euch noch eine ältere Version von STVD (STVP), welches 
unter Vista fehlerfrei läuft??? Da wäre ich echt dankbar!

Gruß
Peter

von Konrad (Gast)


Lesenswert?

Hallo Leute,

ich habe 2 von diesen STM8S Boards und möchte beide mittels I²C 
verbinden, doch leider bekomme ich die Schnittstelle (programmtechnisch) 
nicht hin.
Ich weiß zwar wie das Protokol aussieht, aber ich kann es nicht richtig 
umsetzen.
Könnt ihr mir ein paar Tips oder Anregungen geben, auch evtl. Code 
Beispiele?
Ich möchte zunächts, dass der Master eine Anfrage stellt und der Slave 
die geförderten Daten dann übermittelt.

Grüße
Konrad

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.