Seltsam - STM8S103F3 funktioniert, lässt sich nicht mehr flashen

OP #5191039
Lesenswert?

Nun habe ich ein seltsames Problem dem bekannten STM8S103F3P6 Board.

Es arbeitet das zuletzt aufgespielte Programm noch ab (sendet/empfängt 
über UART, TEST-LED blinkt) lässt jedoch keinen neuen Flashvorgang mehr 
zu.     stm8flash gibt "Tries exceeded", STVP die Fehlermeldung, dass 
keine Verbindung möglich ist.

Der STM8 bleibt aber offenbar stehen, wenn ich versuche eine Verbindung 
herzustellen.

Das Mysterium:
- Am ST-Link V2 bzw. der Software (stm8flash oder STVP) liegt es nicht, 
ein anderes baugleiches Board funktioniert einwandfrei.

- An der Problematik, dass der SWIM-Pin als Ausgang geschalten ist kann 
es nicht liegen, denn der STM8S103F3 hat einen eigenen NRST Pin und ich 
nutze in meinem Code keine GPIOs (bis auf die TEST-LED, und dieser Code 
ist seit Anfang der Entwicklung unverändert geblieben).   Die Gefahr 
sich auszusperren wie beim STM8S001J3 (reinster Murks, sorry ST) besteht 
meines Wissens nach nicht.

- Den STM8 habe ich mit Flussmittel nachgelötet und auch mit 
Durchgangstest verifiziert, dass die relevanten Pins (NRST und SWIM) 
verbunden sind und keine Kurzschlüsse auftreten.

- Den Onboard-Reset-Taster habe ich entfernt, falls dieser defekt sein 
sollte und auch manuell den NRST-Pin auf Masse gezogen.

- Ein Unlock-Kommando per stm8flash hat keinen Effekt:
1
$ ./stm8flash -cstlinkv2 -pstm8s103?3 -u
2
Determine OPT area
3
Unlocked device. Option bytes reset to default state.
4
Bytes written: 11

Der Programmcode bleibt unverändert, flashen lässt er sich weiterhin 
nicht.

Weiss jemand weiter?  Sind zwar nur 50 Cent, aber ich finde es einfach 
schade, einen funktionierenden STM8 wegzuwerfen.
OP #5191115
Lesenswert?

Klar.

Habe nun auch die Option Bytes ausgelesen mit:
1
$ ./stm8flash -c stlinkv2 -p stm8s103f3 -s opt -r test.bin

Resultat:
1
0000FF00FF00FF00FF00FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Also Factory Default, beschreiben lässt er sich trotzdem nicht.    Die 
Option Bytes lassen sich jedoch beschreiben, auch wenn ich da irgendwas 
anderes reinschreibe bleibt das erhalten.

Noch ein Phänomen:
Der "defekte" STM8 lässt sich mit STVP nicht auslesen (auch nicht die 
Option Bytes), jedoch lassen sich die Option Bytes mit stm8flash 
auslesen.

Interessanterweise lässt sich sogar der Program-Flash des "defekten" 
STM8 korrekt auslesen und hat den erwarteten Inhalt!
1
$ ./stm8flash -cstlinkv2 -pstm8s103f3 -sflash -r test.bin
2
Determine FLASH area
3
Reading 8192 bytes at 0x8000... OK
4
Bytes received: 8192

Der intakte STM8 lässt sich mit beidem (STM8Flash & STVP) 
auslesen/beschreiben.

WTF?!
OP #5191136
Lesenswert?

Das betrifft aber die STM8Flash-Software.   Das mysteriöse ist ja, dass 
ST's eigenes Tool STVP unter Windows sich überhaupt nicht mit dem Chip 
verbinden will und

Nachdem ich ihm jetzt ins erste Byte "AA" programmiert habe, wie im Link 
empfohlen bekomme ich beim zurücklesen der Option Bytes folgendes:
1
71717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171

Auf dem intakten Board bekomme ich die erwarteten Option Bytes.

Kann es sein, dass das ein Silicon Erratum ist?
OP #5191142
Lesenswert?

Der STM8 wurde gerettet!!!!!

Also...   Der Trick mit Factory Defaults funktioniert NICHT.

Was geklappt hat:   0xAA auf das erste Option Byte schreiben.
Danach kommen die Option Bytes mit 71717171... zurück.
Danach die Factory Defaults schreiben und der Chip lässt
sich wieder beschreiben.

Dummerweise habe ich jetzt den "Beweis" vernichtet, denn
eventuell hätte sich auch ST für dieses Exemplar interessiert.

Meiner Meinung nach ein definitiver Silicon Bug, denn wozu
soll man die "Readout Protection" erst aktivieren müssen,
um sie dann wieder zu deaktivieren um danach den Chip
beschreiben zu können.
OP #5191168
Lesenswert?

Der Chip macht jetzt was anderes "lustiges".   Das neue Programm 
arbeitet erfolgreich, aber die Option Bytes enthalten nur noch Müll.

Ich  kann nun weder Option Bytes noch Flash beschreiben, den Flash 
jedoch erfolgreich lesen.

Mit STVD zeigt sich das gleiche wie mit STVP:  "Defekter" Chip lässt 
sich nicht verbinden, intakter jedoch problemlos.

Für mich sieht das nach einem Silicon Bug aus - eventuell interessiert 
sich ja ST dafür?

Der Chip ist somit kein "OTP", sondern ein "STP"-Device: Sometimes 
programmable.

Ich schlage ST vor, folgendes Erratum zu veröffentlichen:
"Occasionally, the device cannot be programmed on weekends
or by hobbyists.  On rare occasions, it may inhibit all
further programming attempts."

Workaround: Ensure that the device is programmed only during
work days in a certified lab environment.  On rare occasions,
If programming still fails, use a male cat's claw to scratch
the top of the device.  This reorders the electrons and thereby
causes the device to stop malfunctioning.  The cat's claw may
then be removed for further programming."
OP #5191211
Lesenswert?

Das Board ist elektrisch in Ordnung.   Das Chip ein Clone/Fake sein 
halte ich für beinahe ausgeschlossen, der Chip kostet in China ca. 0.22 
EUR und bei Mouser 0.48 EUR.    Der fast gleiche STM8S003F3P6 kostet 
0.29 EUR bei Mouser, somit würden die theoretisch sogar Gewinn machen. 
Kann auch gut sein, dass die Chips bei enormen Mengen in etwa gleich 
viel kosten.

ST ist ja bekannt dafür, Chips "downzugraden" beim STM32 was man so 
liest und mit dem STM8S001J3 haben sie sich auch nicht mit Ruhm 
bekleckert:
https://hackaday.io/project/27250-mcu-how-tos-reviews-rants/log/66992-stm8s001j3-the-good-the-bad-and-the-ugly

Oder es ist tatsächlich Ausschussware die da verlötet wurde...
Gast #6058709
Lesenswert?

Hi,
for the benefit of other users with this problem, I read this and many 
other threads seeking a solution. What solved it for me was to connect a 
.1uF cap on VCAP to Vss and 10uF on Vdd to Vss. It then worked 
immediately.
The caps are actually recommended but I was hoping to get away without 
then, but "Nicht Mehr" !

John Jennings
Ireland

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren