Google Analytics

21 oktober 2024

Bouw: De RVPC, een RISC-V computer voor maar €1

Het Bulgaarse elektronica bedrijf Olimex heeft een bijzonder voordelig RISC-V computerbouwpakketje op de markt gebracht voor slechts één euro (excl. BTW).
De kern van dit systeem is de CH32V003J4M6 processor van het Chinese bedrijf WCH (Jiangsu Qin Heng). Deze 32-bit RISC-V2A processor draait op een kloksnelheid van 48 MHz en is uitgerust met 2 KB SRAM en 16 KB Flash-geheugen. De afmetingen (exclusief pootjes) zijn slechts 3.9 bij 5 mm. Op de Chinese markt kost deze processor nog geen 3 cent per stuk.

De CH32V003J4M6 processor met slechts 8 aansluitingen (SMD)

De RVPC is uitgerust met een 5V-aansluiting, een PS/2 connector voor het toetsenbord en een 15-pins Sub-D connector voor de aansluiting van een VGA-monitor. Daarnaast is de RVPC voorzien van een buzzer en een LED die dient als indicatie voor de voeding.

Gezien het beperkte geheugen en de aansluitingen van deze processor zijn de mogelijkheden niet enorm, waardoor het vooral een educatief doel heeft: leren programmeren met RISC. Desondanks is het team erin geslaagd om VGA-routines te ontwikkelen en software te creëren, zoals een WOZMON-achtige monitor en spellen zoals b.v. Tetris en Towers of Hanoi.

Het bouwpakket

Het bouwpakket bestaat uit een printje (Rev. B) van slechts 3 bij 5 cm en de benodigde onderdelen:

De onderdelen en printplaat aan beide zijden
1x 100nF 25V: C1
1x 1N4148: D1
1x HN1x2: PGM/DBG1
1x MDR6_MINI-DIN,PS2: KBD1
1x PWRJ-2mm (YDJ-1134): PWR_JACK1
1x LED 5MM RED: PWR_LED1
4x 2k 1/8W: R1, R5, R6, R8
3x 470R 1/8W: R2, R3, R4
1x 100R 1/8W: R7
1x Speaker QMB-09B-03, SPK1
1x 2N3904,TO-92: T1
1x CH32V003J4M6 SOIC-8: U1
1x VGA15-3.08-14.5T: VGA1





Microscoop opname van de gesoldeerde chip
De voorgeprogrammeerde CH32V003J4M6 processor is een SMD onderdeel en daardoor ook het lastigste onderdeel om te solderen vanwege de hele kleine pootjes. Ik beschik niet over een hotplate of een heatgun en heb nog nooit met tin-houdende soldeerpasta gewerkt dus probeer ik een poging te wagen met een soldeerbout gebruik makend van 0,8mm soldeertin. Ook gebruik ik kontakt soldeerpasta van Stannol voor een goede warmte overdracht.

Het soldeerwerk kan beter, maar ik ben niet ontevreden over het resultaat. 

Voor de zekerheid meet ik na of er geen sluiting zit tussen de pootjes onderling.
Bij de rest van de onderdelen gaat het solderen probleemloos, het is wel opletten op de polariteit van de diode, led en buzzer. Het solderen op de zgn. groundplane en de metalen onderdelen van de connectoren vragen wel veel warmte van de soldeerbout om het tin goed te laten vloeien.
Als laatste wordt een keus gemaakt voor de weergave kleur door een of meerdere soldeerbruggen te sluiten met een kloddertje tin.

Ik kies voor groen (GRN1) om het retrogevoel te versterken.
Volgens Olimex is het project geschikt voor beginners en mensen zonder soldeerervaring maar daar ben ik het niet mee eens. Dit is wel degelijk een klus voor gevorderden.

Het eindresultaat van de RVPC

Testen van de RVPC

Ik sluit de RVPC linksonder aan op een lab voeding, ingesteld op 5V en stel voor de zekerheid een stroombegrenzing in van maximaal 200 mA. 

Linksboven sluit ik een PS/2 toetsenbord aan en rechts een 15 polige VGA kabel die verbonden is met een TV die over een VGA aansluiting beschikt. Na het inschakelen van de voedingsspanning blijkt het stroomverbruik slechts 52 mA te bedragen en verschijnt bijna direct het voorgeprogrammeerde RVMON monitor programma waarmee het geheugen kan worden uitgelezen, weggeschreven en software kan worden gestart.

Geen strak beeld op de TV

Het geleverde videosignaal is 800x600@75Hz maar aangezien de beschikbare hoeveelheid geheugen slechts 2k is, heeft Curtis Whitley nogal wat trucs uitgehaald om de VGA routines passend en werkend te krijgen. Maximaal 17 regels van 22 tekens worden weergegeven in de RVMON monitor en volgens opgave zou een resolutie van 320 x 200 pixels mogelijk zijn. Het beeld is niet rotsvast zoals hierboven te zien is, maar goed leesbaar en het is ontzettend knap om dit met deze beperkte processor en zonder grafische chip überhaupt voor elkaar te krijgen. Wellicht is de stabiliteit van het beeld nog te verbeteren door het beter reinigen van de nog aanwezige flux, of gebruik te maken van een kristal oscillator om de klok stabieler te krijgen.

Beschikbare software

De software (en hardware) is opensource en beschikbaar gesteld via GitHub. Hier zijn de spellen te vinden en zijn ook de handleiding en het KiCad schema te downloaden. Verder kun je in deze andere GitHub repository voorbeeld software vinden voor de CH32V003 chipfamilie.

De RVPC wordt geprogrammeerd via een tweepolige aansluiting gemarkeerd met label PGM/DBG1 op de printplaat. De handleiding geeft aan hoe in een Linux omgeving m.b.v. onder andere Python een ESP32-S2-DevKit-Lipo-USB development board kan worden ingericht als programmeer apparaat voor de RVPC.
Het geheel ziet er behoorlijk complex uit en bovendien werk ik niet in een Linux omgeving. Op het moment dat ik een eenvoudige manier heb gevonden om software vanuit een Windows omgeving naar de RVPC te sturen dan zal ik dit blog later bijwerken.

Conclusie

Al met al een leuk en goedkoop zelfbouw project waarbij de focus ligt op het leereffect van zowel het bouwen (voor mij de eerste keer een SMD component gesoldeerd) alsook het leren programmeren met de RISC-V instructieset. Er is bovendien heel wat creativiteit nodig om leuke software te schrijven die past binnen de beperkte geheugenruimte.

Geen opmerkingen:

Een reactie posten