Ich versuche den CH32V203 zu programmieren. Die Verbindung kommt aber nicht zustande. Woran liegt es?
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
|
Anzeige
|
CH32V203 programmierenIch versuche den CH32V203 zu programmieren. Die Verbindung kommt aber nicht zustande. Woran liegt es?
Muss der Controller zuerst mittels des ISP-Tools entsperrt werden? Ich wurstle mich z.Zt. durch die Risc-V von WCH. Z.Zt. spiele ich mit genau Deinem Board herum. Zusammen mit dem MounRiver IDE hatte ich noch mit keinem der Dev-Board oder mit meinen eigenen Boards irgendwelche Probleme. Das einzige was mir einfällt: der E-Link ist default für die ARM MCUs von WCH konfiguriert. Diesen musst Du auf Risc-V umstellen. Entweder mit der Windows-Tool oder falls Du wie ich mit Linux unterwegs bist: Gehäuse öffnen und vor dem Einstecken den Mode-Switch gedrückt halten. Dadurch wechselt die LED von blau auf rot. Mehmet K. (mkmk) 24.06.2025 16:54
Danke. Irgendwo hatte ich gesehen, dass Programmierer die rote LED für RISC-V und die blaue LED für etwas Anderes. Auch bei mir funktioniert der WCH-LinkE mit zwei verschiedenen CH32V003- und einem CH32V203-Board (sieht genau so wie deines) problemlos. Ich kann mich nicht erinnern, dass ich dafür mit irgendwelchen Spezialtools oder dem Mode-Switch etwas umkonfigurieren musste. Da ich ich den WCH-LinkE im Paket mit zwei Dev-Boards und ein paar losen CH32[02]03 erworben hatte, hat vielleicht der Hersteller oder Händler die ggf. erforderlichen Konfigurationen bereits vorgenommen. Mit welchen Kommandozeilenargumenten rufst du openocd auf?
Ich nutze die Arduino IDE. Dort sieht das ganze so aus:
und wch-riscvcfg:
Gibt es eine Möglichkeit, die Verbindung über openocd schrittweise, manuell zu testen? Muß es unbedingt openocd sein? Versuch's doch mal hiermit: https://github.com/ch32-rs/wlink
Danke für den Hinweis. Mittlerweile habe ich den Fehler gefunden: Das gelbe Patchkabel im Bild hatte keinen Durchgang. Unglaublich, wie schlecht die Qualität dieser Steckkabel sein kann. Da kann man dann ewig suchen .. In meinem Benchmark sind die Risc-V weit abgeschlagen vom ARM-Cortex M33 des Pipico2. Ich hätte erwartet, dass die Kerne des Pipico2-RiscV deutlich schneller als die des CH32V203 sind, aber sie scheinen ähnlich schnell.
Die Frage ist, ob beim CH32V203 und beim Pipico2 wirklich Float-Libraries bentutzt werden. Vielleicht sind sie deshalb so langsam.
Das hatte ich schon zweimal. Die haben in dem Fall einfach auf die Isolation gecrimpt.
Ich hatte dieses Problem auch schon mehrfach vorliegen und es hat lange gedauert bis es entdeckt wurde!
Wahrscheinlich ist es besser, sich diese Steckkabelchen selbst zu machen. Es gibt ja diese Dupont-Stecker (bzw. -Buchsen) und -Zangen zu kaufen. Dann kann man auch gleich vernünftige Litze mit 0,25mm² oder so nehmen, statt der AWG200 aus Eisen...
Yô, darauf wollte ich mit meiner überspitzten Aussage hinaus. Muss ich jetzt noch explizit auf den Gebrauch des stilistischen Mittels der Hyperbel hinweisen? ;-)
Die Frage lässt sich leicht beantworten: Weder der Hazard3-RISC-V-Kern des RP2350 noch der QingKe V4B vom CH32V203 haben eine FPU. Der Cortex-M33 hat aber eine. Damit ist das Ergebnis so zu erwarten :)
Schade. Wollte mit dem CH32V203 eine quadcopter basteln, aber mit langsam float wird die sensor fusion acc & gyro schwierig, da sind massig floats. https://ieeexplore.ieee.org/abstract/document/6213549 Die 4-kanal servo-ausgabe hatte schon funktioniert :( Oder den uralt multiwii code mit int ausgraben ?
Schon, das Problem wird aber sein, dass damit die interrupt-latency wesentlich größer wird... immerhin musst du, sobald ein interrupt eine FPU instruktion verwendet alle FPU register sichern und beim verlassen wieder zurückschreiben. Das sollte man auf keinem Fall vernachlässigen!
Kommst du mit fixed-point nicht zurecht? Ein paar wenigen Nachkommastellen sollten doch reichen, oder? Bei den Winkelfunktionen brauchst du eigentlich nur 0-90° in einer Lookup-Table. Also bei 0.1° Genauigkeit 910 Stützpunkte also <4k im Flash bei 4-byte-"floats". Ansonsten hätte der CH32V307 eine FPU... (+ ein paar nette interfaces) 73
Der PiPico2 ist aber ein Dual-Core. Da kann man einen Kern als Numbercruncher ohne Interrupts betreiben.
Die alte multiwii auf atmel 328 hat das so gemacht. Da der fehler aber kumuliert, das addiert sich mit der zeit, weiss der integer copter nie so genau welche schräglage er hat. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|