หัวใจหลักในการทำงานของ MCU ทุกประเภทคือ Clock Control หากไม่มี Clock หรือ สัญญาณนาฬิกา ก็จะไม่มีการกระตุ้นหรือการขับเคลื่อนในการทำงานใดๆกับ วงจรหรือโมดูลต่อพวงใดภายใน MCU
Register และ Address ที่เกี่ยวข้อง
โดยทั่วไปแล้ว MCU จะทำงานได้เมื่อเราเขียน Code เข้าไปความคุมค่าต่างๆใน Address ที่ระบุการทำงานในจุดนั้นๆ ในที่นี้จะเป็นส่วนของ Clock Control โดยมีรายละเอียดดังนี้
ในการกำหนดค่าการทำงานของ Clock Control จะมี Address เริ่มต้นที่ 0x4002 1000 – 0x4002 1400 ใช้สำหรับ เปิด/ปิด สัญญาณ Clock ของ Module ต่างๆ
ในช่วง Address ที่ระบุไว้สามารถแยกย่อยได้ตามตารางที่เกี่ยวข้องด้านล่างนี้
โดยหลักๆแล้ว ในการเปิดการทำงานของวงจรต่างๆ จะใช้ Register ขนาด 32bit ที่ชื่อ RCC_AHBCENR, RCC_APB1CENR, RCC_APB2CENR ในการปิดใช้งาน GPIO, I2C, USART และอื่นๆที่เกี่ยวข้อง จะกล่างถึงวิธีการใช้งานในบทอื่นๆ
AHB ย่อมาจาก Advanced High-performance Bus ซึ่งเป็นชนิดของ Bus ที่ใช้ในการเชื่อมต่อระหว่างคอร์ (Core) กับอุปกรณ์ต่าง ๆ ในไมโครคอนโทรเลอร์ เช่น หน่วยความจำ SRAM, หน่วยความจำ Flash, อุปกรณ์ I/O, และอุปกรณ์อื่น ๆ
APB1/2 ย่อมาจาก Advanced Peripheral Bus 1/2 ซึ่งเป็นชนิดของ Bus ที่ใช้ในการเชื่อมต่อระหว่างคอร์ (Core) กับอุปกรณ์ต่าง ๆ ในไมโครคอนโทรเลอร์ เช่น อุปกรณ์ USART, SPI, I2C, Timer, และอุปกรณ์อื่น ๆ
Bus ชนิดนี้มีความเร็วต่ำกว่า AHB แต่มีความสามารถในการจัดการแบบพิเศษเช่นเดียวกับ AHB โดยสามารถใช้งานร่วมกับ AHB ได้ และมีการแบ่งแยกความเร็วในการเชื่อมต่ออุปกรณ์ต่าง ๆ ในไมโครคอนโทรเลอร์ โดย APB1 มีความเร็วสูงสุดที่ 36 MHz
ไฟล์ที่เกี่ยวข้องที่ได้รวบรวมไว้ https://www.makerwitawat.com/gdrive
ค่าที่เกี่ยวข้องกับการควบคุมความถี่รวมทั้งระบบ จะอยู่ที่ system_ch32v00x.c เป็นตัวกำหนดว่าจะใช้ตัวกำเนิดความถี่ ภายใน หรือ ภายนอก และใช้ความถี่หลักในการทำงานที่ความเร็วสูงสุดเท่าไหร่
Code ที่เกี่ยวข้อง
code ที่เกี่ยวข้องกับการควบคุม Register RCC จะอยู่ที่ไฟล์ ch32v00x_rcc.h และ ch32v00x_rcc.c ใน folder ที่อยู่ใน Framework หลักที่ทาง WCH เตรียมไว้ให้ โดยทั่วไปจะมีการเรียกใช้งาน Function หลักๆดังนี้
บทสรุป
ในการเปิด/ปิด การใช้งาน วงจรย่อยใดๆ ภายในตัว CH32V003 ต้องมาตั้งค่า Register Clock Control ก่อนเสมอ และในส่วนของการย้าย function การทำงานเช่นการ สลับ PIN ต่างๆ ก็ต้องมาตั้งค่าในจุดนี้ด้วย
CH32V003 : https://shopee.co.th/witawat57/23167328296
สนับสนุนร้านค้าของเรา เพื่อจะได้เป็นกำลังใจเขียนบทความใหม่ๆ