Schönen guten Tag,
ich habe mir ein kleines Thermostat gekauft, und aus Neugierde mal
aufgemacht.
In drinnen arbeitet ein kleiner 8-Bit stm8l052c6t6.
http://www.mouser.com/ds/2/389/DM00057687-492223.pdf
Laut Datenblatt habe ich jetzt auch schon herausgefunden, dass er sich
per USART Programmieren lassen müsste, und dass die Pins
USARTT1_CK,V+,USART_TX,GND rausgeführt sind. (Leider nicht USART_RX:()
Um das ganze jetzt zum rollen zu bringen, welche Software bräuchte ich
denn um für den Mikrocontroller zu entwickeln?
LG. Coco
Hier gibt's auch ein paar Tutorials:
http://colecovision.eu/stm8/
Zwar für Entwicklungsboards, aber möglicherweise auch für Deinen Fall
besser als nichts.
Philipp
Ich bezweifle aber, dass Dir die software hilft. Als nächstes wirst Du
nach einem disassembler schreien oder nach der Firmware, die Du
zerschossen hast. Irgendwann fliegt es in die Ecke.
Grund: Reverse Engineering funktioniert nur, wenn man Ahnung von der
verwendeten Technik hat. Du kennst nicht mal den Schaltplan, noch weißt
Du, wie der Proz funktioniert. Es ist nicht mal sicher, ob die
"serielle", die Du gefunden hast, nicht eher das SWIM-Interface ist.
Coco J. schrieb:> Danke für die vielen nützlichen Antworten (bis auf die eine da)
Zeig doch bitte Deine Fortschritte in diesem thread hier ... und strafe
mich so Lügen ... ;-)
Andreas R. schrieb:> Geht der st-link v2 nicht für die Programmierung des stm8?
Doch, sogar für source-level-debugging.
Coco J. schrieb:> einen ftdi habe ich
Warum so kompliziert? Kommst Du nicht an die SWIM-Pins?
Philipp Klaus K. schrieb:> Welcher Thermostat ist es eigentlich?
Das würde mich auch interessieren.
Das STM8L-Discovery war auch meine erste STM8-Hardware. Aber mich
interessiert auch, wo man die STM8 außerhalb von Enticklungsboards so
findet. Und ob da geeignetes Spielzeug dabei ist.
Philipp
STM schrieb:> Beitrag "EQ 3N Heizkörperthermostat Schaltplan"
Bei dem Thermostat in diesem Schaltplan sind aber Reset (PA1) und SWIM
(PA0) auf den Programmieranschluß herausgeführt. Das ergibt auch viel
mehr Sinn als die Belegung des TE (die er vermutlich einfach nur falsch
ermittelt hat). Und dann braucht er keinen seriellen Adapter, sondern
einen SWIM Adapter. Entweder so ein ST-Link in USB-Stick Form vom
Chinamann (ebay) oder den SWIM-Adapter von einem STM8 Discovery.
es ist dieses Thermostat hier.
https://www.reichelt.de/Regler-Thermostate/EHT-CLASSIC-N/3/index.html?&ACTION=3&LA=5000&GROUP=X3512&GROUPID=4388&ARTICLE=144068&START=0&SORT=artnr&OFFSET=16
Ich finde es schön, dass, egal welchen Thread man hier durchließt, immer
die Antwort bekommt "Ist doch nutzlos" oder "du hast ehh keine Ahnung"
"das ist zu schwer für dich" blablablabla. Tut mir leid. Bei solchen
Antworten sehe ich Rot. Also entweder ignoriere den Thread, wenn du
meinst, dass ich zu dumm dafür bin, oder geb konstruktive Antworten.
Manchmal ist der Weg das Ziel.
*****
Im Datenblatt steht was von Uart-Bootloader, daher hoffte ich, ein FTDI
reicht.
*****
Wenn am Ende des Tages nichts funktioniert, reiß ich die Schaltung
einfach raus, hänge meinen ESP8266 dran und bin auch glücklich, aber ich
möchte halt mal die elegantere Lösung ausprobieren.
****
Ja wie es scheint, habe ich mich in dem Pin geirrt. Die rausgeführten
Pins sind SWIM Pins (RST und SWIM). Ich werd mir mal einen günstigen
SWIM Adapter vom Chinamann besorgen.
Coco J. schrieb:> Ja wie es scheint, habe ich mich in dem Pin geirrt. Die rausgeführten> Pins sind SWIM Pins (RST und SWIM). Ich werd mir mal einen günstigen> SWIM Adapter vom Chinamann besorgen.
Ja, lohnt sich weil man prima debugen + visualisieren kann.
Kein Vergleich zum extrem beschränktem Uart debugging.
Die STM Software finde ich ziemlich scheußlich.
Die IAR Kickstart Edition ist bis 8K frei und wirklich empfehlenswert.
Ich habe noch keinen Weg gesehen das mit freien Tools zu erreichen.
Der STlink ist voll eingebunden, auch die billigen China Clone.
> "das ist zu schwer für dich" blablablabla.
Vergiss das, einfach.
Coco J. schrieb:> finde es schön, dass, egal welchen Thread man hier durchließt, immer> die Antwort bekommt "Ist doch nutzlos" oder "du hast ehh keine Ahnung"> "das ist zu schwer für dich" blablablabla. Tut mir leid. Bei solchen> Antworten sehe ich Rot. Also entweder ignoriere den Thread, wenn du> meinst, dass ich zu dumm dafür bin, oder geb konstruktive Antworten.> Manchmal ist der Weg das Ziel.
Deine Fortschrittsmeldungen sind hier (sicher nicht nur von mir) gern
gesehen, da offensichtlich Interesse an den Thermostaten besteht und
Infos zum STM8 nicht so reichlich zu finden sind.
Ich hab' mir nun auch 'mal so ein Thermostat bestellt. Wenn ich nächstes
Jahr Zeit finde, kann ich dann ja ein Tutorial "Getting started with
STM8 development using free tools and the Model N Thermostat" oder so
schreiben.
Philipp
Philipp Klaus K. schrieb:> STM8 development using free tools
Interessant wäre wie man sich mit freien Tools eine Entwicklungsumgebung
zusammenstellt die an z.B. die IAR Kickstart Edtion herankommt.
D.H. Debugger Support, Option Byte setzen, Visualisierung von Variablen
zur Laufzeit etc. pp.
Dieses unsägliche STM Tool zum flashen zu verwenden und unter Linux auf
den Debugger ganz verzichten zu müssen bringt es irgendwie nicht.
Michael K. schrieb:> Philipp Klaus K. schrieb:>> STM8 development using free tools>> Interessant wäre wie man sich mit freien Tools eine Entwicklungsumgebung> zusammenstellt die an z.B. die IAR Kickstart Edtion herankommt.> D.H. Debugger Support, Option Byte setzen, Visualisierung von Variablen> zur Laufzeit etc. pp.
Was hier fehlt, ist der Debug Adapter. Die Hardware hat man zwar mit dem
ST-Link, aber es gibt von ST keine Linux-Software. Und Dritte haben sich
bis jetzt nicht gefunden. Der erste Ansprechpartner für dich als Kunde
wäre ST. Als zweites könntest du ein Projekt starten, das einen
gdbserver für STM8 zum Ziel hat. Mit stlink (das Funktionsäquivalent für
STM32) hätte man ja schon mal etwas zum abkupfern. Alternativ könnte man
openocd für STM8 aufbohren.
> Dieses unsägliche STM Tool zum flashen zu verwenden und unter Linux auf> den Debugger ganz verzichten zu müssen bringt es irgendwie nicht.
Was hast du an stm8flash auszusetzen? Für mich funktioniert das prima.
Es kann Flash, EEPROM und Option-Byte lesen und (vermutlich, bis jetzt
habe ich nur Flash gebraucht) auch schreiben.
Den ST-Link kann man mit Wine betreiben, wenn man eine Uebersetztungs
DLL hat, die die stlinkusbdriver.dll Aufrufe entweder nach libusb
uebersetzt:https://github.com/UweBonnes/wine/tree/stlink.
Axel S. schrieb:> Der erste Ansprechpartner für dich als Kunde> wäre ST.
Die Antwort kennen wir doch.
Es gibt keine entsprechende Linux Software.
> Was hast du an stm8flash auszusetzen? Für mich funktioniert das prima.> Es kann Flash, EEPROM und Option-Byte lesen und (vermutlich, bis jetzt> habe ich nur Flash gebraucht) auch schreiben.
Ja es kann das alles, auch Option Byte + EEPROM schreiben.
Ich bin aber vom IAR sehr verwöhnt bei dem ich das alles innerhalb der
IDE machen kann inkl. Debuggen.
> Als zweites könntest du ein Projekt starten, das einen> gdbserver für STM8 zum Ziel hat. Mit stlink (das Funktionsäquivalent für> STM32) hätte man ja schon mal etwas zum abkupfern. Alternativ könnte man> openocd für STM8 aufbohren.
Das könnte man alles tun, aber dazu habe ich weder Zeit, Lust noch
Befähigung.
Ich wollte auch nur auf den Umstand hinweisen das die Verwendung freier
Tools nicht bei Eclipse und SDCC aufhört.
Das Hex File in einem extra Tool in den STM zu flashen und zum Debuggen
wieder was anderes machen zu müssen ist extrem lästig.
Ich persönlich bin ohnehin ein Freund von Windows und gut gemachter
Software auch wenn die nicht frei ist.
Für recht viele andere ist aber Linux das einzig wahre und da ist für
den STM8 noch wenig benutzbar ohne massiv Hand anlegen zu müssen.
Da Philip sich angeboten hat ein Tutorial zu schreiben wäre es doch toll
nicht da aufzuhören wo alle anderen aufhören.
SDCC -> Hex -> Windows stm8flash.
Debugger = Fehlanzeige.
Axel S. schrieb:> Michael K. schrieb:>> Philipp Klaus K. schrieb:>>> STM8 development using free tools>>>> Interessant wäre wie man sich mit freien Tools eine Entwicklungsumgebung>> zusammenstellt die an z.B. die IAR Kickstart Edtion herankommt.>> D.H. Debugger Support, Option Byte setzen, Visualisierung von Variablen>> zur Laufzeit etc. pp.>> Was hier fehlt, ist der Debug Adapter. Die Hardware hat man zwar mit dem> ST-Link, aber es gibt von ST keine Linux-Software. Und Dritte haben sich> bis jetzt nicht gefunden. Der erste Ansprechpartner für dich als Kunde> wäre ST. Als zweites könntest du ein Projekt starten, das einen> gdbserver für STM8 zum Ziel hat. Mit stlink (das Funktionsäquivalent für> STM32) hätte man ja schon mal etwas zum abkupfern. Alternativ könnte man> openocd für STM8 aufbohren.
Es gibt auch einen offene feature requst für STM8-Unterstützung:
https://github.com/texane/stlink/issues/154
Philipp
Philipp Klaus K. schrieb:> Manche verwenden SDCC zusammen mit Code::Blocks, Eclipse oder Anjuta
Und flashen ausserhalb der IDE wieder mit dem ST kram und können unter
Linux den Debugger nicht benutzen.
Wir drehen uns im Kreis.
Michael K. schrieb:> Philipp Klaus K. schrieb:>> Manche verwenden SDCC zusammen mit Code::Blocks, Eclipse oder Anjuta>> Und flashen ausserhalb der IDE wieder mit dem ST kram
Warum müssen sie das außerhalb der IDE tun? Die meisten IDE erlauben
es, eigene Tools zu definieren. Ich persönlich mag es ja noch viel
lieber, auf der Kommandozeile "make flash" zu sagen. Oder im Editor F9
zu drücken, in der aufpoppenden Kommandozeile das "make" noch mit
" flash" zu ergänzen und auf Return zu drücken.
> und können unter Linux den Debugger nicht benutzen.
"Haben keinen Debugger" wolltest du wohl sagen. Und? Ein Debugger ist
Luxus. Gute Programmierer kommen auch ohne aus.
Axel S. schrieb:> Ein Debugger ist> Luxus. Gute Programmierer kommen auch ohne aus.
Hoho, dann hat sich eine ganze Industrie wohl in die falsche Richtung
entwickelt.
Klar kommt man ohne aus.
Uart oder Pin-Debugging nennt sich das.
Wer aber mal mit Debuger gearbeitet hat möchte darauf nicht verzichten
weil es einfach schneller und effizienter geht als sich Werte
rauszupulen und auf den Uart zu schicken.
Breakpoints zu setzen oder jederzeit bis in die register Ram EEprom
zellen schauen zu knne ist wirklich schick.
Das ist nicht nur für 'schlechte' Programmierer hilfreich.
Michael K. schrieb:> Für recht viele andere ist aber Linux das einzig wahre und da ist für> den STM8 noch wenig benutzbar ohne massiv Hand anlegen zu müssen.
Doch. Möglicherweise nicht für Deinen Workflow und Deine Präferenzen.
Andere ziehen Texteditoren und Makefiles vor. Und mehrere Tools die
jeweils Ihre Aufgabe erledigen statt einer IDE.
Philipp
Meine Güte, warum muß eigentlich immer gleich alles zum Glaubenskrieg
werden?
Darf doch jeder machen wie er will.
Von mir aus unter Linux mit Wine und Handgefriggel ohne Debugger.
Sei es drum wenn es euch glücklich macht.
Meine ursprüngliche Frage war wie sich die Annehmlichkeiten einer IDE
und die Verwendung des Debuggers auch mit freien Tools erreichen lassen,
möglichst auch unter Linux, obwohl ich das selber kaum benutze.
Wenn das gleich als Angriff auf Eure Grundwerte verstanden wird und das
nur schlechte programmierer einen Debugger zu schätzen wissen, dann weiß
ich hier auch nicht weiter und verbleibe mit freundlichen Grüßen.
Michael K. schrieb:> Meine Güte, warum muß eigentlich immer gleich alles zum Glaubenskrieg> werden?
Ich frage mich vor allem, worum es dir eigentlich geht? Nach deinen
eigenen Worten bist du ohnehin lieber auf Windows und mit IDE a'la Keil
unterwegs. Und zahlst gern für Software. Dann bist du doch versorgt.
Was soll das Gejaule darüber, daß es für Linux keinen Debugger für STM8
gibt? Und daß dir da keiner eine fertig konfigurierte IDE auf die Platte
kippt sondern du dir das in Eclipse oder Code::Blocks oder ... selber
zusammenklicken mußt?
> Meine ursprüngliche Frage war wie sich die Annehmlichkeiten einer IDE> und die Verwendung des Debuggers auch mit freien Tools erreichen lassen,> möglichst auch unter Linux
Und die Antwort hast du bekommen. IDE ja, Debugger nein.
Vo zwei Jahren gab es keine freien tools für STM8. Jetzt haben wir SDCC,
stm8flash für den ST-Link, und tools für den bootloader im ROM, um ohne
ST-Link zu arbeiten. Und Tutorials die zeige , wie man das auf
verschiedenen Boards oder mit verschiedenen IDEs nutzt.
Aber es gibt halt auch noch viel zu tun.
Philipp
Michael K. schrieb:> Die IAR Kickstart Edition ist bis 8K frei und wirklich empfehlenswert.
Kostenlos, nicht frei.
Philipp
P.S.: SDCC unterstützt zur Zeit für STM8 noch kein __far und __banked,
und ist damit noch auf die unteren 64K des Adressraums beschränkt.
Allerdings haben die meisten STM8 eh nicht mehr Speicher.
Michael K. schrieb:> Ich bin aber vom IAR sehr verwöhnt […]
Der IAR ist schon recht gut im Vergleich mit allen anderen Toolchains
für STM8.
Auf Anhieb fallen mir nur 3 bedeutende Vorteile der freien tools
gegenüber IAR ein.
Philipp
Axel S. schrieb:> Was soll das Gejaule darüber, daß es für Linux keinen Debugger für STM8> gibt? Und daß dir da keiner eine fertig konfigurierte IDE auf die Platte> kippt sondern du dir das in Eclipse oder Code::Blocks oder ... selber> zusammenklicken mußt?
Jetzt komm mal wieder runter mein Freund.
Ich habe nicht gejault, ich habe die ehrlich gemeinte Frage gestellt ob
das was mir der IAR liefert so mit freien Tools auch geht.
Ich habe nur angemerkt das momentan noch viel Handarbeit nötig ist um
das unter Linux zum laufen zu bringen, etwas das mich z.B. abgeschreckt
hat weil ich in Linux auch nicht wirklich fit bin.
Ich bin auch nicht freudig erregt Geld für Software bezahlen zu dürfen,
aber ich bin dazu bereit bevor ich mir das schönreden muß das es keinen
Debugger gibt nur um irgendwelchen Grundsätzen treu zu bleiben die alles
verteufeln was kommerziell ist.
Wenn es denn ein vernünftiges Tutorial gibt wie man das alles zum Laufen
bekommt ohne viele Stunden in der klein, klein Problemlösung zu
verbringen hätte ein Link gereicht. Ich habe sowas nämlich nicht
gefunden bei meinen Recherchen, sondern viele halbe Ansätze die mich
irgendwo auf GIT abladen und mir sagen, steht doch alles im code mach
mal.
Du kannst Dein Kriegsbeil also wieder eingraben, denn auf diesen
Penälerquatsch und diesen anmaßenden Ton habe ich absolut keine Lust.
Michael K. schrieb:> Die IAR Kickstart Edition ist bis 8K frei und wirklich empfehlenswert.Michael K. schrieb:> Ich bin aber vom IAR sehr verwöhnt bei dem ich das alles innerhalb der> IDE machen kann inkl. Debuggen.Michael K. schrieb:> Ich persönlich bin ohnehin ein Freund von Windows und gut gemachter> Software auch wenn die nicht frei ist.
Das klingt alles so, als ob du dir einfach den IAR unter Windows zulegen
und dann den STM8 damit genießen solltest. Wenn du so sehr mit einer
komfortablen all-in-one-Umgebung zufrieden bist, dann nutze doch einfach
die, die es bereits für solche wie dich gibt. Ich sehe dein Problem an
der Stelle nicht.
Michael K. schrieb:> Für recht viele andere ist aber Linux das einzig wahre und da ist für> den STM8 noch wenig benutzbar ohne massiv Hand anlegen zu müssen.
Das mag sein, aber diese Leute können auch gut für sich selbst sprechen.
Michael K. schrieb:> möglichst auch unter Linux, obwohl ich das selber kaum benutze.
Wenn es für deinen Workflow uninteressant ist, ob es freie Tools gibt
und in welchem Zustand die sind, dann brauchst du dafür nicht trommeln.
Die Leute, die sich dafür interessieren, kümmern sich darum, dass ihr
Workflow funktioniert - nicht deiner.
Philipp Klaus K. schrieb:> Vo zwei Jahren gab es keine freien tools für STM8. Jetzt haben wir> SDCC, stm8flash für den ST-Link, und tools für den bootloader im ROM,> um ohne ST-Link zu arbeiten.
Yep, es geht vorwärts. Für kleine Sachen (was man halt typisch auf einem
8-Bitter mit wenigen KB Code macht) reicht das schon.
Was den Debug-Teil angeht: ich habe mir das mal angeschaut und es ist
leider ein Haufen Arbeit. Das SWIM Interface ist gut dokumentiert
(UM0470), das Protokoll hin zum ST-Link leider nicht. Neben dem
Debug-Server muß auch der gdb selber angefaßt werden. Mindestens das
Register-Mapping und ein Disassembler sind Teil des gdb.
Michael K. schrieb:> Wenn es denn ein vernünftiges Tutorial gibt wie man das alles zum Laufen> bekommt ohne viele Stunden in der klein, klein Problemlösung zu> verbringen hätte ein Link gereicht.http://blog.podstuff.de/setup-codeblocks-for-stm8s-discovery/
Ist zwar für Windows. Aber da es Code::Blocks auch für Linux gibt,
sollte das dort äquivalent umsetzbar sein.
Und hier: http://blog.podstuff.de/stm8s-discovery-first-program/ ist
beschrieben, wie man das Kommandozeilen-Flashtool von ST automatisch von
Code::Blocks aufrufen läßt. Das sollte sich dann ganz ähnlich mit
stm8flash machen lassen.
Philipp Klaus K. schrieb:> Ich hab' mir nun auch 'mal so ein Thermostat bestellt. Wenn ich nächstes> Jahr Zeit finde, kann ich dann ja ein Tutorial "Getting started with> STM8 development using free tools and the Model N Thermostat" oder so> schreiben.>> Philipp
Für das Thermostat reichte die Zeit zwar noch nicht, aber die Tutorials
auf http://www.colecovision.eu/stm8/ wurden aktualisiert und ergänzt
(nun 24 Tutorials für 13 Entwicklungsboards).
Wenn ich wieder Zeit und Lust für Tutorials finde, soll es noch 5
weitere für die dortigen Boards geben; danach kämen dann weitere Boards
oder das Thermostat dran.
Daneben unterstützt stm8flash nun alle zur Zeit bei ST gelisteten
STM8-Varianten (bisher nur im Fork auf
https://github.com/spth/stm8flash, aber ich gehe davon aus, das Valentin
das auch bald upstream nach https://github.com/vdudouyt/stm8flash
übernimmt).
SDCC kann nun für STM8 statt Intel Hex auf ELF ausgeben, wobei dann
DWARF-Debuginformationen enthalten sein können, was das Debuggen mit
SDCC kompilierter Programme in STVD ermöglichen sollte.
Philipp
Heute ist mein Thermostat gekommen, anbei ein Bild von der Platine.
Pin 1 des STM8L052C6T6 ist SWIM, Pin 2 ist NRST, demzufolge liegen an
PRG1 auf dem Bild von unten nach oben SWIM, Vcc, NRST, GND.