RISC-V/README.md

52 lines
2.3 KiB
Markdown
Raw Normal View History

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 />
2024-03-09 11:10:52 +01:00
## 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ě.
2024-03-15 15:13:20 +01:00
## debug
Debug přes jednodrátové rozhraní WCH Link.
Je to pomalé a divné, ale funguje to. Sice nevím jak,
ale je to celkem jedno. Fakticky je to kompletně
převzato z https://github.com/cnlohr/ch32v003fun.