STM8S103F3 lässt sich nicht mehr flashen - IAR - STLink

OP #4866409
Lesenswert?

Guten Abend,

mein STM8S103F3 lässt sich nicht mehr flashen (verbaut auf dem 
günstigen, blauen China-Board). Der letzte Code, den ich flashen konnte, 
war dieser hier:
1
#include "iostm8s103f3.h"
2

3
#pragma vector = TIM4_OVR_UIF_vector
4
__interrupt void TIM4_UPD_OVF_IRQHandler(void){
5
  PC_ODR ^= (1<<4);     //Toggle Pin
6
  TIM4_SR &=~(1<<0);     //Clear Update interrupt flag
7
}
8

9
void initTimer(){
10
  CLK_PCKENR1 |= (1<<4); //Enable Clock for Timer 4
11
  TIM4_PSCR = (0x0F);    //Prescaler, Divide Clock by Max
12
  TIM4_IER = 1;          //Enable Update Interrupt
13
  TIM4_CR1 |= 1;         //Enable Timer
14
  asm("rim");            //Enable Interrupts     
15
}
16

17
void initGPIO(){
18
  PC_DDR |= (1<<4);     //Set Pin as Output
19
  PC_CR1 |= (1<<4);     //Set Pin as PushPull
20
  PC_ODR |= (1<<4);     //Set to High
21
}
22

23
void main()
24
{
25
  initTimer();
26
  initGPIO();
27
  CLK_CKDIVR = 0x08; //nur das hier wurde hinzugefügt
28
  while(1){
29
    ;
30
  }
31
}

Nach dem ich die kommentierte Zeile hinzugefügt hatte, kam das erste mal 
diese Fehlermeldung:
1
Mon Jan 16, 2017 20:06:24: C-SPY Processor Descriptor V2.20.1.176 for STM8 
2
Mon Jan 16, 2017 20:06:24: C-SPY Debugger Driver, ST-LINK V2.20.1.176 for STM8 
3
Mon Jan 16, 2017 20:06:24: Errors while setting configuration with MCU name STM8S103F3P: gdi-error [40409]: No answer from the SWIM: check chip connections and power supply; try a power on reset

Wenn ich eine STM8S003F3 flashen will, klappt das wunderbar. Damit kann 
man den ST-Link als Fehlerquelle wohl schon mal ausschließen. Kann es 
sein, dass ich den Takt so weit runtergeteilt habe, dass das Flashen 
nicht mehr funktioniert? Ich hatte das früher schon mal gemacht und hab 
damals gemerkt, dass das Flashen noch ging, aber Debuggen funktionierte 
erst wieder, als ich den Prescaler verringert habe.

Hat jemand eine Idee?

P.S. Wenn ich die CLK und SWIM Leitungen bewusst trenne (so das es gar 
nicht funktionieren kann), erhalte ich diese Fehlermeldung:
1
Mon Jan 16, 2017 20:10:22: C-SPY Processor Descriptor V2.20.1.176 for STM8 
2
Mon Jan 16, 2017 20:10:22: C-SPY Debugger Driver, ST-LINK V2.20.1.176 for STM8 
3
Mon Jan 16, 2017 20:10:22: Failed to set configuration with MCU name STM8S103F3P: SWIM error [30006]: Comm init error: chip does not answer

Anscheinend wird der Chip noch erkannt aber er antwortet nicht mehr?
OP #4866453
Lesenswert?

In STVP bekomme ich folgende Fehlermeldung:
1
Error : Cannot communicate with the device !
2
Check the SWIM cable connection and check all the needed pin connections on the SWIM connector.
3

4
If the application code uses Swim Disable and Reset pin as Output or has disabled SWIM Clock Divider:
5
Try Now to SWITCH OFF and ON the application Power Supply while NRST Reset pin is forced low.
6

7
Error : < PROGRAM MEMORY programming failed.

Kann es sein, dass der Flash hinüber ist? Das zuletzt geflashte Programm 
wird noch ausgeführt.

Ich hab den NRST-Pin auf GND gelegt und dann Power aus / an, hat nichts 
bewirkt.
OP #4866598
Lesenswert?

hp-freund schrieb:
> Vermutlich musst Du zur richtigen Zeit Reset auf L legen.

Und wann ist diese richtige Zeit? Ich vermute, dass macht der ST-Link 
schon korrekt, korrekter als ich es machen kann? Und da der ST-Link 
nicht defekt ist (wie im ersten Post beschrieben) weiß ich nicht, ob da 
wirklich der Reset drann schuld ist (das wird der ST-Link wohl schon 
machen, oder)?
Gast #4866612
Lesenswert?

>If the application code uses Swim Disable and Reset pin as Output or has disabled 
SWIM Clock Divider:
>Try Now to SWITCH OFF and ON the application Power Supply while NRST Reset pin is 
forced low.

Ich würde 'mal probieren, den Reset low zu halten und währenddessen den 
ST-Link Connect versuchen.

Mglw (ich kenne weder STM8 noch die Tools) kann man auch eine Option
"Connect under Reset" oder ähnlich irgendwo wählen.

Flash kaputt ist äusserst unwahrscheinlich.
OP #4867923
Lesenswert?

Schops schrieb:
> Mglw (ich kenne weder STM8 noch die Tools) kann man auch eine Option
> "Connect under Reset" oder ähnlich irgendwo wählen.

Gibt es weder bei STVP noch bei IAR sondern nur beim STM32 ST-Link 
Utility (habs nur durch googlen gefunden). Aber die Software arbeitet 
mit SWD von dem her ist klar, dass die den STM8 nicht erkennt. Ich bin 
echt am verzweifeln, warum gibt ein Chip einfach so den Geist auf? Nach 
dem Datenblatt müsste der Flash mind. 10k Schreibzyklen aushalten, die 
hab ich bestimmt noch nicht erreicht.

Schops schrieb:
> Ich würde 'mal probieren, den Reset low zu halten und währenddessen den
> ST-Link Connect versuchen.

Das hört sich an, als würdest du von der STM32 ST-Link Utility sprechen, 
funktioniert die überhaupt mit STM8 Controllern?
Gast #4868151
Lesenswert?

UM0470 gelesen?
(Ich hab's nicht getan)

Könnte vielleicht nützliche Hinweise enthalten.

Ansonsten gibt's sicher bei ST auch ein STM8 Forum, wo vielleicht die 
richtigen Experten für das Thema zu finden sind...

Ich sehe gerade in RM0016, das Ding hat auch ein BootROM....
Der kennt z.B ein "Erase Mem" Kommando...
OP #4868857
Lesenswert?

Schops schrieb:
> Ich sehe gerade in RM0016, das Ding hat auch ein BootROM....
1
The bootloader code is stored in the internal boot ROM memory. After a reset, the
2
bootloader code checks whether the program memory is virgin or whether a specific option
3
byte is set allowing code modifications.
4
If these conditions are not fulfilled, the bootloader resumes and the user application is
5
started.

Ich kann die Option Bytes nicht programmieren, ergo fällt das auch raus, 
denke ich?

Schops schrieb:
> Ansonsten gibt's sicher bei ST auch ein STM8 Forum, wo vielleicht die
> richtigen Experten für das Thema zu finden sind...

Das Forum ist so gut wie tot, hab da ein paar mal Fragen gestellt und 
nur sehr selten eine Antwort bekommen. Versuchen wer ich es trotzdem 
mal, danke.

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