เมื่อเราเขียนครั้งแรกเกี่ยวกับ CH32V003 RISC-V MCU ราคา 10 cents (3.70฿) นั้นมีบอร์ดพัฒนาราคา $7(~240฿) และต้องใช้ MounRiver Studio IDE ที่เป็น closed-source สำหรับการเขียนโปรแกรม และมีการปรับปรุงตั้งแต่เดือนตุลาคม 2022 ตอนนี้คุณสามารถซื้อบอร์ดพัฒนา CH32V003 ได้ในราคาเพียง $1.5 (~52฿) และมี GCC toolchain และ flasher/downloader แบบ open-source ที่สามารถใช้งานได้แล้ว
เรามาดูฮาร์ดแวร์กันก่อนด้วยบอร์ดพัฒนา nanoCH32V003 ราคาถูกที่มีไมโครคอนโทรลเลอร์ CH32V003 RISC-V ความเร็ว 48 MHz พร้อม SRAM 2KB และ Flash 16KB, พอร์ต USB Type-C สำหรับจ่ายไฟ, ปุ่ม Reset และ Headers 2 แถวสำหรับ GPIO
สเปคของ MuseLab nano CH32V003:
- MCU – ไมโครคอนโทรเลอร์ 32 บิต RISC-V2A ชิป WCH CH32V003F4U6 ความเร็วสูงสุด 48 MHz พร้อม SRAM 2KB และ Flash 16KB (แพ็คเกจ QFN20)
- การขยาย – Pin-header 2x 11 พร้อม GPIOs สูงสุด x 18, 1x USART, 1x I2C, 1x SPI, 8-ช่อง ADC 10-bit , 5V, 3.3V, GND
- การดีบัก – อินเตอร์เฟสดีบักแบบ serial 3-pin 1-wire เพื่อเชื่อมต่อ WCHLink-E Debugger
- อื่นๆ – Crystal oscillator 24MHz, ปุ่ม Reset และไฟ LED
- แหล่งจ่ายไฟ – 5V ผ่านพอร์ต USB-C
- ขนาด – จะแจ้งภายหลัง
บอร์ดต้องใช้ WCHLink-E debugger จากภาพด้านบนขวาเพื่อเขียนโปรแกรมและดีบัก, บริษัท MuseLab มีเอกสาร PDF ของแผนผังวงจร ไฟล์ตัวอย่าง โปรแกรม และเอกสารประกอบที่เกี่ยวข้องใน GitHub มีวิธีการพัฒนาสองวิธี: MounRiver Studio IDE แบบธรรมดาและ WCH-LinkUtility สำหรับตัวดาวน์โหลด/debugger WCH-LinkE และมี open-source toolchain ที่ใช้ GCC ชื่อ xPack RISC-V Embedded GCC พร้อมกับตัวอย่างที่สามารถคอมไพล์ด้วย make :
1 2 3 |
git clone https://github.com/wuxx/CH32V003-makefile-example cd CH32V003-makefile-example make |
แต่คุณยังต้องใช้โปรแกรม WCH-LinkUtility เพื่อแฟลชไบนารีที่เป็นผลลัพธ์ไปยังบอร์ดผ่าน WCHLink-E debugger
เว้นแต่คุณจะพึ่งพาการทำงานของ CNLohr ในขณะที่เล่นกับ CH32V003 MCUเพื่อสร้างตัวอย่าง Makefile ที่คอมไพล์ด้วย gcc-riscv64 toolchain และ minichlink open-source utility เพื่อแฟลชโปรแกรมไปยังบอร์ด สามารถลองกับใช้ตัวอย่างการกะพริบ (blink) ได้ดังนี้:
1 2 3 |
sudo apt-get install build-essential libnewlib-dev gcc-riscv64-unknown-elf libusb-1.0-0-dev cd blink make |
การใช้คำสั่ง make จะไม่เพียงแค่ทำการคอมไพล์ตัวอย่าง แต่ยังทำการเขียนไฟล์ hex ไปยังบอร์ดด้วย และฉันไม่มีบอร์ดหรือ WCHLink-E debugger ที่เชื่อมต่อกับคอมพิวเตอร์ของฉันองฉัน:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
jaufranc@cnx-laptop-4:~/edev/sandbox/ch32v003fun/blink$ make riscv64-unknown-elf-gcc -o blink.elf blink.c ../ch32v003evt/startup_ch32v00x.S ../ch32v003evt/embedlibc.c -g -Os -flto -ffunction-sections -static-libgcc -lgcc -march=rv32ec -mabi=ilp32e -I/usr/include/newlib -I../ch32v003evt -nostdlib -I. -T ../ch32v003evt/ch32v003.ld -Wl,--gc-sections riscv64-unknown-elf-size blink.elf text data bss dec hex filename 596 0 256 852 354 blink.elf riscv64-unknown-elf-objdump -S blink.elf > blink.lst riscv64-unknown-elf-objdump -t blink.elf > blink.map riscv64-unknown-elf-objcopy -O binary blink.elf blink.bin riscv64-unknown-elf-objcopy -O ihex blink.elf blink.hex make -C ../minichlink all make[1]: Entering directory '/home/jaufranc/edev/sandbox/ch32v003fun/minichlink' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/jaufranc/edev/sandbox/ch32v003fun/minichlink' ../minichlink/minichlink -w blink.bin -r Error: couldn't find wch link device make: *** [Makefile:37: flash] Error 247 |
toolchain และ utility สามารถใช้งานได้บนระบบปฏิบัติการ Windows, Linux และ/หรือ WSL แต่โปรแกรม minichlink ยังคงปรับปรุง เนื่องจากขณะนี้โปรแกรมไม่สนใจ response code ทั้งหมดนอกจากเมื่อสอบถามชิป นอกจากนี้ยังมีโครงการหนึ่งที่อัปเดต OpenOCD เพื่อรองรับไมโครคอนโทรลเลอร์ CH32V003
คุณสามารถซื้อ nanoCH32V003 ราคา $1.5 (~52฿)ใน Aliexpress บวกค่าส่งมาประเทศไทย ~130฿ หรือคุณอาจต้องการซื้อแพ็คละ 10 ชิ้นในราคา $15 (~520฿) ที่มีค่าส่งจะเท่ากัน, คุณอาจจะซื้อ WCHLinkE ในชุดรวม $6.5 (~220฿) พร้อม nanoCH32V003 เพื่อโปรแกรมบอร์ด
ที่มา : LinuxGizmos และ Zoobab และ Jon
แปลจากบทความภาษาอังกฤษ : CH32V003 RISC-V MCU gets $1.5 development board, open source GCC toolchain and flasher utility
บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT