STM32C5 นิยามใหม่ของประสิทธิภาพไมโครคอนโทรลเลอร์ระดับเริ่มต้น

ดูว่า STM32C5 สร้างนิยามใหม่ให้กับประสิทธิภาพการทำงานในงบประมาณที่จำกัดได้อย่างไร

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 มีความอเนกประสงค์เพียงพอที่จะรองรับแอปพลิเคชันที่การใช้พลังงานต่ำมีความสำคัญ

รูปที่ 1: แผนภาพการรักษาค่าอินพุต/เอาต์พุตใน STM32C5 โดยใช้ตัวต้านทานแบบดึงขึ้นและดึงลง คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

SPI ที่มีคุณสมบัติหน่วงเวลาการสุ่มตัวอย่างข้อมูล

การหน่วงเวลาการสุ่มตัวอย่างข้อมูลเป็นคุณสมบัติใหม่ของอุปกรณ์ต่อพ่วง 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 ที่สูงขึ้นได้

รูปที่ 2: ตัวอย่างความล่าช้าในการสุ่มตัวอย่างข้อมูลเมื่อเปิดใช้งานโดย DRDS คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

ข้อมูลผู้ใช้ Flash

หน่วยความจำแฟลชรองรับเพจขนาด 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 ทำงานได้ดียิ่งขึ้น

รูปที่ 3: เมื่อเปิดใช้งานบิต EDATA_EN ในไบต์ตัวเลือก จะทำให้ผู้ใช้สามารถแฟลชข้อมูลได้ละเอียดขึ้น คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

เมื่อตั้งค่า 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

STM32C5 นิยามใหม่ของประสิทธิภาพไมโครคอนโทรลเลอร์ระดับเริ่มต้น

ดูว่า STM32C5 สร้างนิยามใหม่ให้กับประสิทธิภาพการทำงานในงบประมาณที่จำกัดได้อย่างไร

นักเขียนบทความ
by 
นักเขียนบทความ
STM32C5 นิยามใหม่ของประสิทธิภาพไมโครคอนโทรลเลอร์ระดับเริ่มต้น

STM32C5 นิยามใหม่ของประสิทธิภาพไมโครคอนโทรลเลอร์ระดับเริ่มต้น

ดูว่า 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 มีความอเนกประสงค์เพียงพอที่จะรองรับแอปพลิเคชันที่การใช้พลังงานต่ำมีความสำคัญ

รูปที่ 1: แผนภาพการรักษาค่าอินพุต/เอาต์พุตใน STM32C5 โดยใช้ตัวต้านทานแบบดึงขึ้นและดึงลง คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

SPI ที่มีคุณสมบัติหน่วงเวลาการสุ่มตัวอย่างข้อมูล

การหน่วงเวลาการสุ่มตัวอย่างข้อมูลเป็นคุณสมบัติใหม่ของอุปกรณ์ต่อพ่วง 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 ที่สูงขึ้นได้

รูปที่ 2: ตัวอย่างความล่าช้าในการสุ่มตัวอย่างข้อมูลเมื่อเปิดใช้งานโดย DRDS คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

ข้อมูลผู้ใช้ Flash

หน่วยความจำแฟลชรองรับเพจขนาด 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 ทำงานได้ดียิ่งขึ้น

รูปที่ 3: เมื่อเปิดใช้งานบิต EDATA_EN ในไบต์ตัวเลือก จะทำให้ผู้ใช้สามารถแฟลชข้อมูลได้ละเอียดขึ้น คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

เมื่อตั้งค่า 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

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

STM32C5 นิยามใหม่ของประสิทธิภาพไมโครคอนโทรลเลอร์ระดับเริ่มต้น

STM32C5 นิยามใหม่ของประสิทธิภาพไมโครคอนโทรลเลอร์ระดับเริ่มต้น

ดูว่า STM32C5 สร้างนิยามใหม่ให้กับประสิทธิภาพการทำงานในงบประมาณที่จำกัดได้อย่างไร

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

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 มีความอเนกประสงค์เพียงพอที่จะรองรับแอปพลิเคชันที่การใช้พลังงานต่ำมีความสำคัญ

รูปที่ 1: แผนภาพการรักษาค่าอินพุต/เอาต์พุตใน STM32C5 โดยใช้ตัวต้านทานแบบดึงขึ้นและดึงลง คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

SPI ที่มีคุณสมบัติหน่วงเวลาการสุ่มตัวอย่างข้อมูล

การหน่วงเวลาการสุ่มตัวอย่างข้อมูลเป็นคุณสมบัติใหม่ของอุปกรณ์ต่อพ่วง 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 ที่สูงขึ้นได้

รูปที่ 2: ตัวอย่างความล่าช้าในการสุ่มตัวอย่างข้อมูลเมื่อเปิดใช้งานโดย DRDS คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

ข้อมูลผู้ใช้ Flash

หน่วยความจำแฟลชรองรับเพจขนาด 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 ทำงานได้ดียิ่งขึ้น

รูปที่ 3: เมื่อเปิดใช้งานบิต EDATA_EN ในไบต์ตัวเลือก จะทำให้ผู้ใช้สามารถแฟลชข้อมูลได้ละเอียดขึ้น คลิกเพื่อดูภาพขนาดใหญ่ขึ้น

เมื่อตั้งค่า 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