RISC-V/README.md
2024-03-09 11:10:52 +01:00

46 lines
2.1 KiB
Markdown

# RISC-V
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.
## 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.
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 />
## midi
Funguje to podobně jako na STM32F051, jen to má omezení dané asi především
tím, že tohle nemá hardwarovou násobičku. Tedy jen 4 generátory. Na hračky
typu melodický zvonek, piánko atd. to stačí. Výhoda je, že piny vydrží 20mA,
je možné připojit 30 Ohm sluchátka (do série) plus sériový odpor 100 Ohm mezi
piny PD0 a PD2 a hraje to s dostatečnou hlasitostí a docela čistě.