ดูว่า STM32C5 สร้างนิยามใหม่ให้กับประสิทธิภาพการทำงานในงบประมาณที่จำกัดได้อย่างไร
STM32C5 ซึ่งเปิดตัวในเดือนมีนาคม 2026 เป็นไมโครคอนโทรลเลอร์ (MCU) ระดับเริ่มต้นรุ่นใหม่ที่ใช้แกนประมวลผล Arm Cortex-M33 และเทคโนโลยีการผลิต 40 นาโนเมตร มีหน่วยความจำแฟลชแบบสองแบงค์ (128 KB ถึง 1 MB) และความทนทาน 10,000 รอบการทำงาน โดยมีเซกเตอร์ขนาด 8 KB ทำให้สามารถกำหนดรายละเอียดได้มากขึ้นด้วยเซกเตอร์ขนาด 2 KB ในพื้นที่แฟลชเฉพาะ
ไมโครคอนโทรลเลอร์ STM32C5 ออกแบบมาเพื่อ อุปกรณ์ฝังตัวที่คำนึงถึงต้นทุน โดยเน้นความเรียบง่ายในการใช้งานและโครงสร้าง ตัวอย่างเช่น ไม่มีการใช้งาน TrustZone และระบบนาฬิกาภายในก็ถูกทำให้เรียบง่ายขึ้น นับเป็นไมโครคอนโทรลเลอร์ STM32 ระดับเริ่มต้นและราคาประหยัดรุ่นแรกที่มีหน่วยประมวลผลทศลอย (FPU) ในตัว
แกนประมวลผลทำงานที่ความเร็ว 144 เมกะเฮิร์ตซ์ ให้พลังการประมวลผลสูง รวมถึงคำสั่งประมวลผลสัญญาณดิจิทัล (DSP) และการหารด้วยฮาร์ดแวร์ โดยมีคะแนน CoreMark 593 คะแนน หรือ 4.12 คะแนนต่อเมกะเฮิร์ตซ์ ประสิทธิภาพนี้สูงกว่าอุปกรณ์ MCU ระดับเริ่มต้นทั่วไปที่ใช้ Cortex-M0+ มาก
นี่เป็นครั้งแรกที่ไมโครคอนโทรลเลอร์ระดับเริ่มต้นสามารถทำคะแนนประสิทธิภาพสูงเช่นนี้ได้ และประสิทธิภาพนี้ยังคงใช้งานได้ในช่วงอุณหภูมิที่กว้างขึ้น สูงถึง 125°C ที่อุณหภูมิแวดล้อม (140°C ที่จุดเชื่อมต่อ) โดยไม่จำเป็นต้องลดความถี่ของแกนประมวลผล STM32C5 สามารถทำงานได้เฉพาะกับออสซิเลเตอร์ HSI ภายใน ซึ่งได้รับการสอบเทียบจากโรงงานให้มีความแม่นยำ 1% ภายในช่วงอุณหภูมิตั้งแต่ -20°C ถึง 105°C ที่อุณหภูมิแวดล้อม
ตัวเลือกแพ็คเกจเริ่มต้นตั้งแต่ 20 พิน (TSSOP/UFQFPN) ไปจนถึง 144 พิน (LQFP) การจัดเรียงพินเข้ากันได้กับ ไมโครคอนโทรลเลอร์ STM32H5ทำให้สามารถวาง STM32C5 ในแพ็คเกจเดียวกันลงบนตำแหน่งเดียวกับ STM32H5 บนแผงวงจรพิมพ์ (PCB) ได้
การทำงานแบบย้อนกลับต้องใช้ความระมัดระวัง เนื่องจาก STM32C5 ลดจำนวนพินเฉพาะบางส่วนและแทนที่ด้วย GPIO มาตรฐาน โดยเฉพาะอย่างยิ่ง พิน BOOT0 จะถูกใช้ร่วมกับ GPIO หนึ่งตัว (+1 GPIO) และไม่มีพิน VBAT (+1 GPIO) และ VDDUSB (+1 GPIO) นอกจากนี้ยังมี VCAP น้อยลงหนึ่งตัว (+1 GPIO) ดังนั้นจึงมี GPIO เพิ่มขึ้นสี่ตัวเมื่อเทียบกับ STM32H5 ในแพ็คเกจเดียวกัน เมื่อพิจารณาแพ็คเกจที่มีอยู่ทั้งหมด STM32C5 สามารถประหยัด GPIO ได้มากถึงหกตัวในแพ็คเกจ LQFP100 และ LQFP144 ที่ใหญ่ที่สุด
ไมโครคอนโทรลเลอร์ STM32C5 มีชุดอุปกรณ์ต่อพ่วงมาตรฐานที่ใช้ได้ในทุกซีรีส์ (รวมถึง CAN FD) และยังรวมถึงอุปกรณ์ต่อพ่วงที่ไม่ค่อยพบในไมโครคอนโทรลเลอร์ระดับเริ่มต้นอีกด้วย ตัวอย่างเช่น STM32C5 มีชุดอุปกรณ์ต่อพ่วงแบบอนาล็อกที่ครบครัน รวมถึง ADC 12 บิต, DAC, ตัวขยายสัญญาณปฏิบัติการ และตัวเปรียบเทียบ ซึ่งช่วยลดจำนวนชิ้นส่วนและพื้นที่บนแผงวงจรพิมพ์ ทำให้ต้นทุนลดลง
อีเธอร์เน็ตเป็นอุปกรณ์ต่อพ่วงอีกชนิดหนึ่งที่ไม่ใช่มาตรฐานในผลิตภัณฑ์ระดับเริ่มต้น ซึ่งช่วยให้การทำงานที่อัตราการถ่ายโอนข้อมูล 10 หรือ 100 เมกะบิตต่อวินาที การใช้พอร์ต MII หรือ RMII ช่วยให้สามารถเชื่อมต่อเครือข่าย LAN ได้ การรองรับอีเธอร์เน็ตเริ่มต้นที่แพ็คเกจที่มีจำนวนขาต่ำเพียง 64 ขา
ไมโครคอนโทรลเลอร์ STM32C5 รองรับโหมดโฮสต์และอุปกรณ์ความเร็วเต็มรูปแบบของ USB 2.0 โดยใช้ไลบรารีมิดเดิลแวร์ของ ST ทำให้ STM32C5 สามารถแปลงแอปพลิเคชันปลายทางให้เป็นคลาสอุปกรณ์ทั่วไป เช่น อุปกรณ์อินเทอร์เฟซสำหรับมนุษย์ หรือผลิตภัณฑ์ USB ประเภทอื่นๆ ได้
I3C กำลังแพร่หลายอย่างรวดเร็วในแอปพลิเคชันควบคุมและรับข้อมูลจากเซ็นเซอร์ และส่วนต่อประสาน I3C ภายใน STM32C5 ช่วยให้การถ่ายโอนข้อมูลเร็วกว่า I²C ที่เป็นที่รู้จักกันดี
เพื่อเชื่อมต่อกับหน่วยความจำ SPI แบบแปดช่องหรือสี่ช่องภายนอก ไมโครคอนโทรลเลอร์ STM32C5 มีอินเทอร์เฟซอนุกรมต่อพ่วงแบบขยาย (XSPI) ซึ่งสามารถเชื่อมต่อกับหน่วยความจำ octoSPI หรือจอแสดงผล SPI แบบสี่ช่องภายนอกได้ โดยสามารถเชื่อมต่อผ่าน XSPI ในโหมดสี่ช่องได้
สำหรับแอปพลิเคชันที่เกี่ยวข้องกับการเข้ารหัสลับ STM32C5 มีตัวเร่งการเข้ารหัสลับ SHA, AES, TRNG และ PKA ที่ทนทานต่อการโจมตีแบบ Side-channel กุญแจเฉพาะตัวของฮาร์ดแวร์ (HUK) ช่วยแก้ปัญหาการเข้ารหัสลับที่เกิดขึ้นมาอย่างยาวนานด้วยการนำกุญแจลับมาใช้กับ MCU ที่ยังไม่เคยใช้งานมาก่อน และด้วยไลบรารีการเข้ารหัสลับของ ST นักออกแบบไม่จำเป็นต้องพัฒนาทุกอย่างตั้งแต่เริ่มต้น
เรามาดูคุณสมบัติหลักบางประการโดยละเอียดกันดีกว่า:
การรักษาค่าสถานะ I/O ช่วยให้ GPIO รักษาค่าสถานะเอาต์พุตไว้ได้ในขณะที่ MCU อยู่ในโหมดสแตนด์บาย ซึ่งเป็นโหมดประหยัดพลังงานต่ำสุดที่เป็นไปได้ เมื่อเอาต์พุต GPIO เข้าสู่สถานะลอยตัว (หรือความต้านทานสูง) คุณสมบัตินี้ถูกนำมาใช้โดยใช้ตัวต้านทานแบบดึงขึ้นและดึงลงภายในชิป GPIO ตัวต้านทานเหล่านี้มีค่าความต้านทานต่ำ ประมาณ 40 kΩ ทำให้เหมาะสำหรับการขับอินพุตที่มีความต้านทานสูง
สถานะ I/O จะถูกสุ่มตัวอย่างเมื่อเข้าสู่โหมดสแตนด์บาย และตัวต้านทานแบบดึงขึ้นและดึงลงจะยังคงทำงานอยู่หลังจากตื่นจากโหมดสแตนด์บายจนกว่าบิต IORETEN ในรีจิสเตอร์ PWR_IORETR จะถูกล้างโดยซอฟต์แวร์ คุณสมบัตินี้ทำให้ STM32C5 มีความอเนกประสงค์เพียงพอที่จะรองรับแอปพลิเคชันที่การใช้พลังงานต่ำมีความสำคัญ
การหน่วงเวลาการสุ่มตัวอย่างข้อมูลเป็นคุณสมบัติใหม่ของอุปกรณ์ต่อพ่วง SPI มาตรฐาน ไมโครคอนโทรลเลอร์ STM32C5 สามารถใช้งาน SPI ที่ความถี่ 72 MHz ในโหมดมาสเตอร์ได้ แต่ความถี่ที่ต่ำกว่านั้นมากก็อาจก่อให้เกิดปัญหาได้เช่นกัน เมื่อใช้วงจรที่หน่วงสัญญาณข้อมูล เช่น ตัวแยกสัญญาณแบบกัลวานิก
ตัวอย่างเช่น สมมติว่าความถี่ของ SPI_SCK คือ 50 MHz คาบเวลาของสัญญาณนาฬิกา T_sck จะเท่ากับ 20 ns การสุ่มตัวอย่างจะเกิดขึ้นตรงกลางของบิตข้อมูลที่อินพุต MISO หากตัวแยกสัญญาณแบบกัลวานิกมีเวลาหน่วงในการส่งสัญญาณ 10 ns หรือสูงกว่านั้น SPI จะไม่ทำงานเนื่องจากเวลาการสุ่มตัวอย่างตกอยู่ที่เวลาการเปลี่ยนผ่านของข้อมูลหรืออยู่นอกช่วงเวลาการสุ่มตัวอย่าง ความล่าช้านี้ไม่สามารถแก้ไขได้ด้วยมาตรการภายนอก เนื่องจากเกี่ยวข้องกับกลไกการสุ่มตัวอย่างภายในของ SPI
ด้วยคุณสมบัติการหน่วงเวลาการสุ่มตัวอย่างข้อมูลที่เปิดใช้งานโดยบิต DRDS ในรีจิสเตอร์ SPI นั้น SPI จะหน่วงเวลาการสุ่มตัวอย่างด้วยค่าคงที่เท่ากับครึ่งหนึ่งของ T_sck (10 ns ในตัวอย่าง) ซึ่งช่วยลดความล่าช้าในการแพร่กระจายของตัวแยกสัญญาณไฟฟ้าได้อย่างแม่นยำ คุณสมบัตินี้ช่วยให้นักออกแบบสามารถบรรลุความเร็ว SPI ที่สูงขึ้นได้
หน่วยความจำแฟลชรองรับเพจขนาด 8 กิโลไบต์ แต่ยอมให้มีความละเอียดมากกว่านั้นในบางส่วนของหน่วยความจำแฟลช ส่วนนี้เรียกว่าพื้นที่ข้อมูลแฟลช และโดยค่าเริ่มต้น พื้นที่นี้จะอยู่ที่ตำแหน่ง 0x0840 0000 ถึง 0x0840 FFFF ในพื้นที่แอดเดรส โดยแยกจากแฟลชโค้ดของผู้ใช้ด้วยค่าออฟเซ็ต 4 เมกะไบต์ในแผนที่หน่วยความจำ ขนาดของพื้นที่นี้คือ 64 กิโลไบต์เสมอ และสามารถเรียกใช้โค้ดจากพื้นที่นี้ได้
ในสถานะเริ่มต้น หน่วยความจำแฟลชจะแตกต่างจากหน่วยความจำแฟลชสำหรับโค้ดของผู้ใช้เพียงแค่ขนาดหน้าที่เล็กกว่า คือ 2 KB เท่านั้น เนื่องจากรหัสแก้ไขข้อผิดพลาด (ECC) 9 บิต และขนาดการเขียน 128 บิต (ควอดเวิร์ด) ยังคงเหมือนเดิม ความแตกต่างที่สำคัญเกิดขึ้นเมื่อเปิดใช้งานบิต EDATA_EN ในไบต์ตัวเลือก ซึ่งเป็นพื้นที่เฉพาะในหน่วยความจำแฟลชสำหรับการกำหนดค่าของผู้ใช้ การเปิดใช้งานนี้ทำให้สามารถเขียนข้อมูลลงในหน่วยความจำแฟลชของผู้ใช้ได้ละเอียดขึ้น โดยสามารถเขียนข้อมูลได้ถึงขนาด 16 บิต ในกรณีนี้ ครึ่งเวิร์ดหกส่วนในแถวเดียวกันจะมีรหัส ECC 6 บิตของตัวเอง ซึ่งต้องการพื้นที่จัดเก็บ ECC มากขึ้น ส่งผลให้มีขนาดหน้า 1.5 KB และพื้นที่ว่าง 48 KB (ดูอัลแบงค์ 2 × 24 KB)
พื้นที่ข้อมูล Flash สามารถเข้าถึงได้ที่แอดเดรสตั้งแต่ 0x0900 0000 ถึง 0x0900 BFFF และไม่อนุญาตให้เรียกใช้โค้ดในพื้นที่หน่วยความจำนี้ คุณสมบัตินี้ช่วยให้การจำลอง EEPROM หรือการปรับระดับการสึกหรอในพื้นที่ข้อมูล Flash ทำงานได้ดียิ่งขึ้น
เมื่อตั้งค่า EDATA_EN = 1 การเข้ารหัส ECC 6 บิตสำหรับแต่ละค่า 16 บิต (ครึ่งเวิร์ด) จะมีผลข้างเคียงที่นักออกแบบต้องพิจารณา ในการตั้งค่าเริ่มต้น แถว Flash 128 บิตจะได้รับการรักษาความปลอดภัยโดยการเข้ารหัส ECC 9 บิต และเนื้อหาที่ถูกลบออกจากหน่วยความจำ Flash จะสอดคล้องกับการเข้ารหัส ECC ที่ถูกต้อง (แถว 128 บิต [0xffff…ff] และการเข้ารหัส ECC 9 บิต [0x1ff] เป็นเลข 1 ทั้งหมด)
กรณีนี้ไม่เหมือนกันสำหรับ ECC 6 บิตและครึ่งเวิร์ด เนื่องจาก Flash ที่ถูกลบจะมีค่า 16 บิตเป็น 0xffff เช่นเดียวกับ ECC 6 บิตที่สอดคล้องกันคือ 0xff แต่ ECC 6 บิตที่ถูกต้องสำหรับ 0xffff ควรจะเป็น 0xa1 ผลลัพธ์ที่ได้คือ อินเตอร์รัปต์ที่ไม่สามารถปิดกั้นได้ (NMI) พร้อมการตรวจจับข้อผิดพลาด ECC สองครั้ง หากอ่าน Flash ที่ถูกลบด้วย EDATA_EN = 1
การเริ่มต้นสำรวจคุณสมบัติของ STM32C5 นั้นง่ายดายด้วยเครื่องมือพัฒนา STM32 รวมถึงบอร์ด STM32C5 Nucleoตลอดจนระบบนิเวศ STM32Cube ที่ได้รับการอัปเกรด ซึ่งประกอบด้วย CubeMX2 ใหม่ ไดรเวอร์ HAL2 ใหม่ (ไดรเวอร์ดั้งเดิมสำหรับ STM32C5) และ STM32CubeIDE สำหรับ VS Code ซึ่งรองรับโปรเจ็กต์ CMake