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
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....
Häng mal ein Oszi an den Versorgungsspannungseingang und nimm den Verlauf auf.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.