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
Weiß nicht, ob es das bei diesem Controller auch gibt, aber die NXP LPC Controller können ähnlich herumzicken, wenn man die Brown-Out BOD nicht sofort als erstes beim Reset setzt.
Harald A. schrieb: > Weiß nicht, ob es das bei diesem Controller auch gibt Tut es:
1 | 1.4.4 Power Supply Monitor |
2 | |
3 | This product integrates a power-on reset (POR)/power-down reset (PDR) |
4 | circuit, which is always in working condition to ensure that the |
5 | system is in supply. It works when the power exceeds 2.7V; when VDD |
6 | is lower than the set threshold (VPOR/PDR), the device is placed in |
7 | the reset state without using an external reset circuit. |
8 | |
9 | In addition, the system is equipped with a programmable voltage |
10 | monitor (PVD), which needs to be turned on by software to compare |
11 | the voltage of VDD power supply with the set threshold VPVD. |
12 | Turn on the corresponding edge interrupt of PVD, and you can |
13 | receive interrupt notification when VDD drops to the PVD threshold |
14 | or rises to the PVD threshold. Refer to Chapter 4 for the values of |
15 | VPOR/PDR and VPVD. |
(Seite 5 im Datenblatt CH32V003 V1.7)
:
Bearbeitet durch User
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.