Forum: Mikrocontroller und Digitale Elektronik CH32V003 Resetverhalten


von Vanye R. (vanye_rijan)


Lesenswert?

Ich benutze den CH32V003 im SOT8(!) jetzt schon so ein Jahr fuer diverse 
kleine Spielereien. Bisher hat alles im grossen und ganze so 
funktioniert wie ich mir das vorstelle. Aber gelegentlich kam es schon 
mal zu irgendeinem komischen Verhalten und ich hab das Teil dann mit 
minichlink -u wieder auf die Beine geholfen.

Aktuell hab ich gerade eine kleine Anwendung laufen die nichts anders 
macht als mit tim1 300khz erzeugen zu lassen und dies an PC4, PA1 und 
PA2 auszugeben.
Das funktioniert auch! Aber erstaunlich oft haengt sich der Controller 
beim starten weg! Das Programm laeuft dann direkt nach dem flashen wenn 
es vom debugger gestartet wird, aber nur sehr gelegentlich nach einem 
Powercycle in meiner Hardware.

Ich wuerde ja sagen irgendwas stimmt mit meiner Resetbeschaltung nicht, 
aber der SOT8 hat keinen Reseteingang.
Ich hab auch schon minichlink mit -d oder -D probiert ohne das ich da 
eine Besserung sehen wuerde.

Hab ich da was uebersehen?

Vanye

von Cyblord -. (cyblord)


Lesenswert?

Vanye R. schrieb:
> Hab ich da was uebersehen?

Abblockkondensatoren

von Vanye R. (vanye_rijan)


Lesenswert?

Ja, der Gedanke liegt natuerlich nahe. Ich hatte aber schon direkt an 
den Beinen des SOT8 einen 100nF drueber geloetet. Und mehr ist da ja 
nicht....

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Häng mal ein Oszi an den Versorgungsspannungseingang und nimm den 
Verlauf auf.

von Vanye R. (vanye_rijan)


Angehängte Dateien:

Lesenswert?

Ich hab da wohl wirklich einen Bug der Extraklasse in meinem System. :-D

Mein Programm sieht so aus:

int main()
{
  SystemInit48HSI();        //Systemclock auf 48Mhz setzen
  pwm_init();               //PWM Initialisieren fuer 300khz an PA1 und 
PA2
  while(1);
}

Das funktioniert IMMER wenn ich es vom Debugger in den STM32V003 
reinlade. Stoepsel ich den Debugger an und lasse es ueber mein 
Labornetzteil laufen, so funktionier es meistens nicht. Aber so jedes 
30-40x startet es doch und laeuft dann auch!
Wenn es nicht läuft dann kommen komische Impulse aus PA2 raus. (siehe 
Bild)
Kommentiere ich SystemInit48HSI() aendert sich nichts am problematischen 
Startverhalten, aber wenn es geht dann sind natuerlich die Frequenzen 
anders weil der Systemtakt niedriger ist.


Als ich damals meine Umgebung aufgesetzt habe, da habe ich ch32fun 
kopiert und als erstes ein einfaches LED-Blink Programm geschrieben. Das 
zeigt dieses verhalten nicht! Es startet also immer.


Nehme ich das als Basis und änder das auf obiges main ab, so 
funktioniert es auch immer! Der Timer gibt also die gewuenschten Signale 
aus.


Danach hab ich damals etwas am "Design" der Umgebung rumgespielt. Also 
nur die Libaries kopiert die ich brauche, andere Verzeichnisse, Startup 
verschlankt, usw. Dabei muss ich wohl einen Fehler gemacht haben der mir 
nicht aufgefallen ist weil es halt immer problemlos funktioniert wenn es 
ueber den Debugger gestartet wird.
Da muss ich wohl noch mal tief in mich gehen und beide Startupcodes 
genau vergleichen. Vermutlich initialisiert der Debugger irgendetwas das 
ich selber vergessen habe. Aber bizarr das es manchmal halt doch 
funktioniert.

Vanye

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.