WCH32v003 RISC-V MCU
Moderátori: psichac, Moderátori
WCH32v003 RISC-V MCU
Ako som písal pred nedávnom v tomto vlákne, dal som sa na novú platformu MCU a to RISC-V a na mikrokontrolér od https://www.wch-ic.com/
Prvý projekt s týmto MCU je na svete. Ide o jednoduchý tester LED a V, A, P meter. Má 16. výstupov cez posuvný register ktorý spína pripojené LED svietidlá. Spínať sa dajú výstupy jednotlivo, alebo v rade všetky za sebou. Dá sa nastaviť aj konkrétny výstup alebo stĺpec a ten zapínať a vypínať.
Meranie I, U, P svietidiel je riešené cez I2C s modulom INA226 (fw. je pripravený, čakám na dodanie modulu) . Výstup 16x cez posuvný register HC595 a mosfet spínač. Zobrazenie LCD 1602 v 4bit. režime. Vstup je rotačný enkodér s tlačítkom.
Program je napísaný v C, je to môj prvý pokus (komentovaný zdroják je na konci videa). Keďže k tejto platforme je zatial málo info ovládanie LCD, posuvného registra, INA226 som písal z nuly podľa datasheetov. Na ovládanie enkodéra má tento MCU vlastnú vstavanú perifériu, tiež má HW I2C to pomohlo dosť.
Musím povedať , že prechod z ASM a Basicu na C nie je až tak desivý ako sa mi zdal pred časom, myslím že som práve konvertoval z PIC na RISC-V platformu
Tu je krátke video z vrabčieho hniezda a na konci videa strihnutý komentovaný zdroják v C ak by niekoho zaujímalo ako vyzerá program v HAL MOUNRIVER Studio.
https://www.youtube.com/watch?v=VN_YoBXX40w
ps. zdatní programátori v C nech video pred koncom vypnú aby ich nedrblo.
Prvý projekt s týmto MCU je na svete. Ide o jednoduchý tester LED a V, A, P meter. Má 16. výstupov cez posuvný register ktorý spína pripojené LED svietidlá. Spínať sa dajú výstupy jednotlivo, alebo v rade všetky za sebou. Dá sa nastaviť aj konkrétny výstup alebo stĺpec a ten zapínať a vypínať.
Meranie I, U, P svietidiel je riešené cez I2C s modulom INA226 (fw. je pripravený, čakám na dodanie modulu) . Výstup 16x cez posuvný register HC595 a mosfet spínač. Zobrazenie LCD 1602 v 4bit. režime. Vstup je rotačný enkodér s tlačítkom.
Program je napísaný v C, je to môj prvý pokus (komentovaný zdroják je na konci videa). Keďže k tejto platforme je zatial málo info ovládanie LCD, posuvného registra, INA226 som písal z nuly podľa datasheetov. Na ovládanie enkodéra má tento MCU vlastnú vstavanú perifériu, tiež má HW I2C to pomohlo dosť.
Musím povedať , že prechod z ASM a Basicu na C nie je až tak desivý ako sa mi zdal pred časom, myslím že som práve konvertoval z PIC na RISC-V platformu
Tu je krátke video z vrabčieho hniezda a na konci videa strihnutý komentovaný zdroják v C ak by niekoho zaujímalo ako vyzerá program v HAL MOUNRIVER Studio.
https://www.youtube.com/watch?v=VN_YoBXX40w
ps. zdatní programátori v C nech video pred koncom vypnú aby ich nedrblo.
3
3
Re: WCH32v003 RISC-V MCU
Azbude vysledny bin subor mat 250k, tak sa nedostanes na koniec stranky.
Dobra rada zacni pouzivat h a c lebo sa v tom uschrolujes k smrti, navyse napr lcd. C a lcd. H mozes potom len skopirovat do dalsieho projektu a vyuzivat. Ptom je aj jednoduchsie sa prepinat cez karty.
Kazda premena by mala byt okomentovana aj v prioade ze je to jasne z jej nazvu. Premene by mali byt rozdelene donskupin podla pouzitie. Napr premene pre dispej potom premene pre tlacidla a podobne.
Pelrogram v C jenprenosny na ine uP bez problemov, jedine co musis vytiesit je zakladne nastavenie uP a jeho preriferii. V case roznych HAL uz ani to nemusi byt problem.
Hlavne ze to funguje, dobra praca. Beztak sa programator neustale zlepsuje.
Dobra rada zacni pouzivat h a c lebo sa v tom uschrolujes k smrti, navyse napr lcd. C a lcd. H mozes potom len skopirovat do dalsieho projektu a vyuzivat. Ptom je aj jednoduchsie sa prepinat cez karty.
Kazda premena by mala byt okomentovana aj v prioade ze je to jasne z jej nazvu. Premene by mali byt rozdelene donskupin podla pouzitie. Napr premene pre dispej potom premene pre tlacidla a podobne.
Pelrogram v C jenprenosny na ine uP bez problemov, jedine co musis vytiesit je zakladne nastavenie uP a jeho preriferii. V case roznych HAL uz ani to nemusi byt problem.
Hlavne ze to funguje, dobra praca. Beztak sa programator neustale zlepsuje.
1
1
Re: WCH32v003 RISC-V MCU
To je dobrá rada. Pre mňa je C úplne iný svet. Info čerpám z netu a snažím sa hneď v začiatkoch nenachytať zlé návyky. Študujem zdrojáky písané v C pre STM32, čo je "skoro rovnaké" ako tieto WCH s tým, že WCH má 32. bitové jadro ale periférie aj zápis je podobný.
Dosť som bojoval s prechodom z neštruktúrovaného zápisu na štruktúrovaný aby som zabudol na GOTO z ASM a GOTO, GOSUB z Basicu, ale keď človek pochopí o čom to je tak to potom ide.
Dosť som bojoval s prechodom z neštruktúrovaného zápisu na štruktúrovaný aby som zabudol na GOTO z ASM a GOTO, GOSUB z Basicu, ale keď človek pochopí o čom to je tak to potom ide.
0
Re: WCH32v003 RISC-V MCU
Odkial si ho objednaval?čakám na dodanie modulu
0
Nuclear battery for electric cars !!!
Re: WCH32v003 RISC-V MCU
Podarilo sa mi úspešne preportovať OneWire knižnicu z STM32F103 na CH32V003. Čítam teplotu zo štyroch čidiel Dallas 18d20+ v 12.bitovom rozlíšení (žiaľ mám len jeden kus čidla).
Pripojil som aj RTC 3231 (pôvodne bol plánovaný do Fnirsi s Atlanovým fw ale pokusne išiel sem).
Tiež som naklepal jednoduché ovládanie pre OLED SSD1306.
Že ja som roky žil pod kameňom, čo som sa skôr nedokopal k tomu C -čku. No neskutočne jednoducho sa v tom pracuje.
Pripojil som aj RTC 3231 (pôvodne bol plánovaný do Fnirsi s Atlanovým fw ale pokusne išiel sem).
Tiež som naklepal jednoduché ovládanie pre OLED SSD1306.
Že ja som roky žil pod kameňom, čo som sa skôr nedokopal k tomu C -čku. No neskutočne jednoducho sa v tom pracuje.
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: WCH32v003 RISC-V MCU
Tak tu trochu nesúhlasím s tým čo hovoríš. Jednoducho sa Ti pracuje preto, lebo presne vieš čo je čo a ako to funguje. Keby si rovno začal s C, tak by si mal obrovský problém pochopiť napríklad čo je to ukazateľ. Preto vlastne z dnešných jazykov zmizli aj tie. Základy skrátka vedieť musíš ak to chceš robiť na profi úrovni. Inak to dopadne zle nedobre. Ale možno sa mýlim. Na ZŠ sa informatika vyučuje na Emilovi a Pythone 6 rokov a všade je plno odborníkov čo tomu rozumejú.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: WCH32v003 RISC-V MCU
Niečo na tom bude čo hovoríš. Zo začiatku som tiež čumel do RM na tie 32. bitové registre jak "bacil do lekárničky". Ale to isté bolo keď som začínal s PIC pred x rokmi tiež som sa pasoval s datasheetom.
Programovať len tak bez aspoň základných znalostí periférií kontroléra moc nejde to je pravda. Ja som mal to šťastie, že som začínal v dobe kamennej kde si musel poznať čo a ako funguje aby si to mohol programovať
Programovať len tak bez aspoň základných znalostí periférií kontroléra moc nejde to je pravda. Ja som mal to šťastie, že som začínal v dobe kamennej kde si musel poznať čo a ako funguje aby si to mohol programovať
0
Re: WCH32v003 RISC-V MCU
Ahoj,
aký software používaš na programovanie týchto MCU ? Odporúčajú MounRiver Studio, ale je podpora aj do Arduino IDE - len tam som to zatiaľ nerozchodil.
aký software používaš na programovanie týchto MCU ? Odporúčajú MounRiver Studio, ale je podpora aj do Arduino IDE - len tam som to zatiaľ nerozchodil.
0
Re: WCH32v003 RISC-V MCU
Nepojde to aj v platformio ?
https://github.com/Community-PIO-CH32V/platform-ch32v
https://github.com/Community-PIO-CH32V/platform-ch32v
0
Re: WCH32v003 RISC-V MCU
Určité áno, pôjde to. Je toho viacej napr. celkom dobre rozrastajúca sa komunita okolo: https://github.com/cnlohr/ch32v003fun
Ja zatiaľ ostávam pri Mounriver Studio a ich HAL. Nepripadá mi to nijak zložité a tých pár bajtov naviac pri vygenerovanom kóde mi pri mojich pokusoch zatiaľ nevadí.
Dnes mi kuriér priniesol vývojovú dosku s CH32V203 ide na 144MHz a má 20KB SRAM, 64KB Flash. Tam sa toho "bloatu" zmestí ažaž. Jedine čo mi chýba oproti PIC je absencia integrovanej EEPROM. Jasne dá sa emulovať softvérovo, kde sa alokuje časť Flash-ky a tú používa ako storage dát po vypnutí napájania.
Ja zatiaľ ostávam pri Mounriver Studio a ich HAL. Nepripadá mi to nijak zložité a tých pár bajtov naviac pri vygenerovanom kóde mi pri mojich pokusoch zatiaľ nevadí.
Dnes mi kuriér priniesol vývojovú dosku s CH32V203 ide na 144MHz a má 20KB SRAM, 64KB Flash. Tam sa toho "bloatu" zmestí ažaž. Jedine čo mi chýba oproti PIC je absencia integrovanej EEPROM. Jasne dá sa emulovať softvérovo, kde sa alokuje časť Flash-ky a tú používa ako storage dát po vypnutí napájania.
0
Re: WCH32v003 RISC-V MCU
Ako som už viac krát spomínal elektroniku mám iba ako hobby a programovanie keď sa to vôbec dá tak nazvať mám na udržiavanie mentálneho zdravia. Pri PIC som sa nikam neposúval z vlastnej lenivosti, lebo čokoľvek som potreboval zbastliť som mal naprogramované bez vynaloženia väčšej námahy v Basicu, alebo ASM. Pri tomto MCU ma to donútilo opustiť túto komfortnú zónu. Išiel som do nového jadra a nového programovacieho jazyku. Takže odpoveď na tvoju otázku je, lebo som sa chcel naučiť niečo nové a staré hádam nezabudnem.
0
- burizon
- Pokročilý člen
- Príspevky: 571
- Dátum registrácie: 07 Nov 2007, 00:00
- Bydlisko: Vranov nad Topľou
Re: WCH32v003 RISC-V MCU
Však C-čko si kľudne mohol aplikovať aj na PICOCH a vybrať si aký potrebuješ.. Mne ASM veľmi nešlo, tak som prešiel na C, ale PICKA ostali.
0
Re: WCH32v003 RISC-V MCU
Dnes som si našiel čas a hodil tester skúšobne dokopy. Zdá sa, že všetko funguje ako má. Procák má využité komplet všetky piny. Tento zlozvyk mi zostal z mladosti, kedy som sa vždy snažil do aplikácie osadiť procák, ktorý nemal viac IO ako bolo potrebné. Nie ako dnes na blikanie jednou LED-kou tam tresnú 48. pinový procák, no to za mojej mladosti sa šetrilo na IO oveľa viac
Funkcií tam postupne doprogramujem čo budem potrebovať, procák má stále viac ako polovicu fleshky prázdnu.
Aktuálne to vie:
- 24 nezávislých výstupov pre LED
- Indikácia na veľkom 1602B znakovom LCD
- ovládanie enkodérom
- meranie napätia
- meranie odoberaného prúdu
- vypnutie výstupu pri nadprúde/skrate
- výpočet výkonu
- prepínanie testovacieho napätia
- 12V - 150W
- 24V - 70W
- spínanie LED jednotlivo
- spínanie LED v stĺpci
- regulácia jasu 10kHz PWM 0 - 100%
Už to "iba tresnúť" do krabice a používať.
Ak niekoho zaujíma schéma zapojenia tak tu:
Funkcií tam postupne doprogramujem čo budem potrebovať, procák má stále viac ako polovicu fleshky prázdnu.
Aktuálne to vie:
- 24 nezávislých výstupov pre LED
- Indikácia na veľkom 1602B znakovom LCD
- ovládanie enkodérom
- meranie napätia
- meranie odoberaného prúdu
- vypnutie výstupu pri nadprúde/skrate
- výpočet výkonu
- prepínanie testovacieho napätia
- 12V - 150W
- 24V - 70W
- spínanie LED jednotlivo
- spínanie LED v stĺpci
- regulácia jasu 10kHz PWM 0 - 100%
Už to "iba tresnúť" do krabice a používať.
Ak niekoho zaujíma schéma zapojenia tak tu:
0
Re: WCH32v003 RISC-V MCU
C1 je naco? To spinaie mosfetu, nic moc, ak tam chces pwm prerob to. Preco nemas osetrene tlacidla kondikmi? Enkoder tiez nema velmi katalogove zapojenie...
https://images.app.goo.gl/fpjUBhnEWWur1cALA
https://images.app.goo.gl/fpjUBhnEWWur1cALA
0
Naposledy upravil/-a Atlan v 19 Mar 2024, 12:29, upravené celkom 1 krát.
Re: WCH32v003 RISC-V MCU
Je to takto zapojene na Čínskom module:
https://techfun.sk/produkt/mosfet-modul ... 5EQAvD_BwE
Tlačidlo je tam iba jedno a to v enkodery, zákmity sú ošetrené v sw. Enkodér je modul a malo by to byť zapojené hádam OK.
https://techfun.sk/produkt/rotacny-enko ... lgQAvD_BwE
Tie MOSFET moduly sú ozaj nič moc čo sa zapojenia týka, ale plánované je to iba ako skúšobná konzola nie na trvalú prevádzku v PWM režime.
https://techfun.sk/produkt/mosfet-modul ... 5EQAvD_BwE
Tlačidlo je tam iba jedno a to v enkodery, zákmity sú ošetrené v sw. Enkodér je modul a malo by to byť zapojené hádam OK.
https://techfun.sk/produkt/rotacny-enko ... lgQAvD_BwE
Tie MOSFET moduly sú ozaj nič moc čo sa zapojenia týka, ale plánované je to iba ako skúšobná konzola nie na trvalú prevádzku v PWM režime.
0
Re: WCH32v003 RISC-V MCU
uP sa nema co zaoberat zakmitmi, ale ma robit nieco uzitocne. To ze cinan nieco vyprodukuje, neznamena ze je to dobre.
0
Naposledy upravil/-a Atlan v 19 Mar 2024, 12:29, upravené celkom 1 krát.
Re: WCH32v003 RISC-V MCU
Mrkol som na ten enkodér modul a mal si pravdu. Zapojené dosť "progresívne" tak som to prekreslil. Z tých
MOSFET modulov odstránim tie kondenzátory na vstupoch optočlenov.
Tento sa popri ošetrovaní zákmitov dokonca nudí, má kopec voľného času.
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 25 Odpovedí
- 2863 Zobrazení
-
Posledný príspevok od používateľa Tribec Zacks