2024-02-29 10:34:30 +01:00
|
|
|
# RISC-V
|
2024-02-29 12:22:16 +01:00
|
|
|
Po 32-bit jednočipech založených na jádru Cortex-Mx nastal čas vyzkoušet něco nového.
|
|
|
|
CH32V003 od čínské firmy WCH se zdá být dobrá volba. Je to levné, malé, má to
|
|
|
|
podporu open source a snese to 5V napájení.
|
|
|
|
|
|
|
|
Základem je projekt https://github.com/cnlohr/ch32v003fun. Pokusil jsem se z toho
|
|
|
|
vybrat jen to, co je nezbytně nutné a přepsat to do C++. Je potřeba prográmek
|
|
|
|
minichlink, který umí flashnout firmware a GDB server.
|
|
|
|
|
|
|
|
## hello
|
|
|
|
Základní program, používá GPIO a SysTick v režimu přerušení pro blikání LEDkou.
|
2024-02-29 10:34:30 +01:00
|
|
|
|
2024-03-05 14:52:55 +01:00
|
|
|
## pwm, adc, serial
|
|
|
|
DEMO pro základní seznámení s periferiemi.
|
|
|
|
|
|
|
|
## hdo
|
|
|
|
Tohle je trochu komplexnější příklad.
|
|
|
|
|
|
|
|
Na vstup PC4 přivádíme ze síťového transformátoru napětí
|
|
|
|
cca 0.7-1 V efektivního napětí. Vstup musí být tedy připojen
|
|
|
|
na odporový dělič 1:1, zapojený mezi VCC a GND a trafo k tomuto
|
|
|
|
bodu připojíme přes vhodný kondenzátor, tak, aby střídavé napětí
|
|
|
|
nebylo limitováno.
|
|
|
|
|
|
|
|
Firmware z toho Goertzelovým algoritmem vytáhne signál HDO (zde 216.6 Hz)
|
|
|
|
a vyhodnotí jednotlivé pulsy. Velikost pulsu je vypisována na sériový
|
|
|
|
port (115200 Bd) a pokud překročí hodnotu trigger, rozsvítí LED na PD2 (aktivní v L).
|
|
|
|
Dále je pak z pulsů sestaven telegram, opět vypsán sériový port,
|
|
|
|
a pokud se shoduje s povelem uvedeným v konstruktoru Hdo, sepne / rozepne
|
|
|
|
relé na portu PD4 (aktivní v H) podle vysílaného signálu.
|
|
|
|
Celé se to vejde do 3.5 KiB flash a 1 KiB RAM, i v takto malém procesoru
|
|
|
|
tedy zbývá poměrně dost místa na jiné kraviny.
|
|
|
|
|
2024-03-05 15:24:47 +01:00
|
|
|
Tvar výpisů je tento:<br />
|
|
|
|
A1---B---4---- DP: VVZZ ZZZV ZZZZ VVZV<br />
|
|
|
|
A--3-B--34---- DP: --VV Z-V- -V-V ----<br />
|
|
|
|
A1---B-------8 DP: VVVZ VZVV ZZZV -VZV<br />
|
|
|
|
A1---B---45678 DP: ---Z -Z-V Z-Z- -VZV<br />
|