CH32V003 ซีรีส์เป็นไมโครคอนโทรลเลอร์สำหรับใช้งานทั่วไประดับอุตสาหกรรมที่ออกแบบโดยใช้ QingKe RISC-V2A หลักซึ่งรองรับความถี่หลักของระบบ 48MHz มีอินเทอร์เฟซการดีบัก แบบอนุกรมเส้นเดียว รองรับการใช้พลังงานต่ำ 3.3-5V และแพ็คเกจขนาดเล็กพิเศษหลักๆเช่น SOP8, SOP16, TSSOP20 โดยผลิตมาเพื่อให้ใช้งานทั่วไป ช่วงอุณหภูมิในการทำงานคือ -40℃~85℃
คุณสมบัติทั่วไป
แกนหลักประมวลผล
- QingKe แกน RISC-V 32 บิต, ชุดคำสั่ง RV32EC
- รองรับการซ้อนอินเตอร์รัปต์ 2 ระดับ
- รองรับระบบความถี่หลัก 48MHz
นาฬิกา & รีเซ็ต
- มีออสซิลเลเตอร์ 24MHz ภายในตัว
- มีออสซิลเลเตอร์ RC 128KHz ภายในตัว
- สามารถต่อออสซิลเลเตอร์ภายนอกความเร็วสูงได้ถึง 4~25MHz
- รีเซ็ตการเปิด/ปิดเครื่อง, แรงดันไฟฟ้าที่ตั้งโปรแกรมได้
หน่วยความจำ
- SRAM 2KB
- หน่วยความจำโปรแกรม 16KB
- หน่วยความจำสำหรับตัวโหลดบูต 1920B
อินเทอร์เฟซการสื่อสาร
- USART x 1
- I2C x 1
- SPI x 1
รหัสรุ่นย่อยต่างๆ ของ CH32V003
ในตระกูล CH32V003 จะแบ่งออกเป็นรุ่นย่อยจำนวน 4 รุ่นโดยหลักจะแตกต่างที่จำนวน PIN การใช้งานในแต่ละรุ่น เริ่มตั้งแต่ 8-20 PIN จะมีจุดที่แตก่างกันที่ I/O ซึ่งแตกต่างที่จำนวน PIN , SPI นั้นจะมีเฉพาะรุ่นที่มี 20 PIN เท่านั้น , ADC จำนวนจะเพิ่มขึ้นในรุ่น 20 PIN เช่นกัน สำหรับ Flash Memory นั้นจะเท่ากันทุกรุ่นในขนาดความจุที่ 16K ทำให้สามารถเลือกรุ่นต่างๆ เพื่อความเหมาะสมของงานได้ เพราะราคาแต่ละรุ่นจะต่างกัน
สถาปัตกรรมภายใน
สถาปัตกรรมภายในของ CH32V003 นั้น โดยหลักๆจะไม่แตกต่างกันในแต่ละรุ่น จะมี function ย่อยมากมายไม่ว่าจะเป็น ADC, GPIO, I2C, EXTI, WWDG, USART และอื่นๆ โดยแกนหลักในการควบคุมการทำงานผ่านทางสัญญาณนาฬิกา เพื่อ เปิด/ปิด ใช้งาน function ต่างๆ ผ่าน Bus ที่มีขื่อว่า AHB ในส่วนนี้จะเขียนโปรแกรมควบคุมผ่านทาง Register เป็นหลัก จะกล่าวถึงในบทอื่นๆ
ภาพรวม Memory
หน่วยความจำ และ ตำแหน่งต่างๆภายในหน่วยความจำเป็นความสำคัญที่สุดในการใช้งาน เนื่องจากจะทำหน้าที่ควบคุมการทำงานของทุก function แล้ว ทั้งยังเป็นส่วนที่ใช้เก็บโปรแกรมที่เราเขียนขึ้นมา โดยจะมีตำแหน่งเริ่มต้นที่ 0x0000 0000 ถึง 0x1FFF FFFF และจะมีการตัดแบ่งตำแหน่งต่างๆ เพื่อใช้งานตามภาพด้านบน วิธีการควบคุมต่างๆเหล่านี้จะกล่าวในบทอื่นๆ
สัญญาณนาฬิกาภายใน
การทำงานทุกส่วนของ MCU จำเป็นจะต้องมีสัญญาณนาฬิกา เป็นตัวกระตุ้น หรือ ควบคุมการทำงานทุกหน้าที่ โดยมาจากตัวกำเนิดสัญญาณภายใน หรือ ภายนอกก็ได้ และ ในการควบคุมสัญญาณนี้ จะต้องตั้งค่าใน Memory ที่เกี่ยวข้องผ่านการเขียนโปรแกรม และบาง หน้าที่ อาจจะต้องมีการคำนวณ ความถี่ของสัญาณ เพื่อให้ได้ผลลัพธ์ ที่ต้องการ ในส่วนนี้จะมีอธิบายเพิ่มในบทอื่นๆ
สัญลักษณ์ตำแหน่งขา
โดยทั่วไปในการออกแบบ PCB ต้องมีการวาดสัญลักษณ์ (Symbolic) ก่อนเสมอ เพื่อง่ายต่อการออกแบบวงจรต่างๆ สามารถระบุ PIN ได้ตามภาพได้ล่าง
อธิบายตัวย่อต่างๆ
- A: ADC, A7 (ADC_IN7)
- T: TIME, T2CH4 (TIM2_CH4)
- U: USART, URX (USART_RX)
- OP: OPA, OPO (OPA_OUT), OPP1 (OPA_P1)
- OSCI (OSCIN)
- OSCO (OSCOUT)
- VDD (+3.3-5v)
- VSS (GND)
- SDA (I2C_SDA)
- SCL (I2C_SCL)
- SCK (SPI_SCK)
- NSS (SPI_NSS)
- MOSI (SPI_MOSI)
- MISO (SPI_MISO)
- AETR(ADC_ETR)
เนื่องจาก PIN ของ MCU เกือบทุก PIN สามารถใช้งานได้ซ้ำซ้อนกัน หรือ มี function เสริมที่ทับซ้อนกัน ไม่จำเพาะว่าจะต้องเป็น input/output เท่านั้น เราจำเป็นที่จะต้องจับคู่ให้ตรงตามคุณสมบัติการทำงานที่ต้องการใช้งาน สามารถดูได้จากตารางด้านล่างนี้
จากตารางด้านบน เป็นการแสดงการ Map PIN ต่างๆ กับ Package SOP8, SOP16, TSSOP20 โดยจะระบุหมายเลข PIN กับ function หลัก และ function รอง ในจุดนี้ เราสามารถกำหนดการทำงานของ PIN ต่างๆ ผ่าน Register ที่อยู่ใน Memory ในส่วนที่เกี่ยวข้องกับการควบคุม GPIO และ อื่นๆ ซึ่งจะกล่าวในบทอื่นๆ
ภาพด้านบนสามารถแยกย่อยการทำงานเป็นส่วนๆ ของแต่ละ Function เสริมที่ map กับ PIN หลักมีดังนี้ ADC, TIM1, TIM2, USART, SYS, I2C, SPI, SWIO, OPA จะเป็นส่วนย่อยที่ทำหน้าที่รองจาก input/output ดังนั้นจุดนี้จะมีความสำคัญในการเลือกใช้งาน หาเราต่อใช้งานกับ PIN ต่างๆที่ไม่ได้มี function ที่ต้องการรองรับ ก็จะไม่สามารถใช้งานได้ ตัวอย่างเช่น ใช้งาน ADC ที่ PC5 ก็จะไม่สามารถใช้งาน ADC ได้ เนื่องจาก PC5 ไม่มี function เสริมในส่วนของ ADC
Packages
โดยหลัก Packages ของ CH32V003 ที่นิยมใช้โดยทั่วไปจะเป็นแบบ SOP และ TSSOP เนื่องจากสามารถบัดกรีเองได้สะดวกและสามารถวัดขาต่างๆ ได้ง่าย ส่วน Package แบบ QFN20 นั้นขาจะอยู่ขอบของชิ้นส่วน และ ใต้ชิ้นส่วน และ มีขนาดเล็กที่สุดเหมาะสำหรับงานที่ต้องการพื้นที่ขนาดเล็กมาก
วงจรพื้นฐานขั้นต่ำ
สรุปโดยรวม
CH32V003 เป็น MCU ที่ใช้เทคโนโลยี RISC-V ที่เป็นแบบ OpenSource ทำให้ต้นทุนในการผลิตนั้นมีราคาถูกลง และการทำงานไม่ได้แต่ต่างกับ MCU ของบริษัทอื่นๆ เมื่อเทียบกับราคาต่อเทคโนโลยี แล้ว ถือว่ามีความคุ้มค่ามาก เราสมารถนำมาประยุกต์ใช้งานกับ งานต่างๆได้ สามารถทดแทน MCU ของ AVR หรือ STM32 ได้เพราะตอนนี้ MCU พวกนี้มีราคาสูงขึ้นเป็นอย่างมาก และแกนหลักยังเป็น 8-16 Bit อยู่
ในการเขียนโปรแกรมทาง WCH ได้เตรียมเครื่องมือมาให้อย่างครบถ้วนไม่ว่าจะเป็น IDE และ อุปกรณ์ จัดการ MCU แต่ยังมีข้อด้วยในเรื่องของเอกสารพัฒนา ที่มีจำกัดอยู่ในวงเฉพาะอย่างประเทศจีนเท่านั้น แต่เร็วๆนี้ MCU ตัวนี้ก็ได้รับนิยมจากทั่วโลกอย่างรวดเร็ว
สนับสนุนบทความดีๆ ได้ที่ร้านค้าของเรา เพื่อเป็นกำลังใจให้มีบทความใหม่ๆ