ทางเลือกแทน STM32F103CBT6: คู่มือ MCU Flash 128 KB
ดายเดียวกัน ฟุตพรินต์ 48 พินเดียวกัน แฟลชสองเท่า — และงานเฟิร์มแวร์ที่หลายคนลืมก่อนสลับ
TL;DR
- STM32F103CBT6เป็นรุ่นพี่น้องความจุ 128 KB ของ C8T6: Cortex-M3 ตัวเดียวกัน, LQFP 48 พินแบบเดียวกัน, toolchain ชุดเดียวกัน
- เป็นวิธีที่มีความเสี่ยงต่ำที่สุดในการเพิ่มพื้นที่เผื่อ — ไม่ต้องเปลี่ยนบอร์ด ไม่ต้องเพิ่มไดรเวอร์ใหม่ เพียงทบทวน memory map
- งานนี้อยู่ที่ linker script, ตารางพาร์ทิชัน OTA และ vector table — ไม่ใช่ที่อุปกรณ์ต่อพ่วง
- มี second source ขนาด 128 KB อยู่ แต่มีข้อควรระวังแบบ "พินเดียวกัน แต่ซิลิกอนต่างกัน" เช่นเดียวกับตระกูล 64 KB
- หากอิมเมจยังคงขยายตัว ควรวางแผนสำหรับคลาส 256 KB แทนการผ่านการรับรองสองครั้ง
1. ทำไม CBT6 จึงมีอยู่
ตระกูล F103 ถูกสร้างขึ้นรอบ ๆ ดายเดียวที่สามารถกำหนดค่าให้มีความจุแฟลชต่างกันได้ นั่นคือเหตุผลที่ C6T6, C8T6 และ CBT6 ใช้แพ็กเกจเดียวกัน การจัดขาเดียวกัน และชุดเพอริเฟอรัลเดียวกัน: ความแตกต่างอยู่ที่หน่วยความจำ ไม่ใช่สถาปัตยกรรม
สำหรับนักออกแบบ นั่นคือของขวัญ บอร์ดที่ผ่านการรับรองสำหรับ C8T6 รองรับ CBT6 ได้โดยไม่ต้องเปลี่ยนเลย์เอาต์ และเฟิร์มแวร์คอมไพล์ได้โดยไม่ต้องเปลี่ยนไดรเวอร์ คำถามเดียวคือแผนที่หน่วยความจำยังใช้ได้หรือไม่
สำหรับผู้ซื้อ นี่คือการตัดสินใจด้านราคาและความพร้อมจำหน่าย: ชิ้นส่วน 128 KB มีราคาสูงกว่าเล็กน้อย แต่ช่วยขจัดความเสี่ยงในการออกแบบส่วนจัดเก็บข้อมูลใหม่เป็นครั้งที่สองในภายหลัง
2. รุ่นหน่วยความจำทั้งสาม
| รุ่น | แฟลช | RAM | มีสินค้าในสต็อก |
|---|---|---|---|
| STM32F103C6T6 | 32 KB | 10 KB | Yes |
| STM32F103C8T6 | 64 KB | 20 KB | Yes |
| STM32F103CBT6 | 128 KB | 20 KB | Yes |
โปรดสังเกตว่าสิ่งใดไม่เปลี่ยนแปลง: RAM ยังคงอยู่ที่ 20 KB ทั้งใน C8T6 และ CBT6 การเพิ่มแฟลชเป็นสองเท่าไม่ได้ทำให้แอปพลิเคชันมีสแต็ก ฮีป หรือบัฟเฟอร์มากขึ้น หากข้อจำกัดอยู่ที่ RAM คำตอบคือตระกูลอื่น ไม่ใช่พาร์ตแฟลชที่ใหญ่ขึ้น
C6T6 ขนาด 32 KB เป็นการแลกเปลี่ยนในทางตรงกันข้าม: ราคาถูกที่สุด แต่ใช้ได้จริงเฉพาะกับอิมเมจแบบคงที่ขนาดเล็กเท่านั้น การเปลี่ยนจาก 32 KB เป็น 128 KB คือการเพิ่มขึ้นสี่เท่า และโดยปกติจะแก้ไขข้อจำกัดได้อย่างถาวร
สิ่งที่ยังคงเหมือนเดิม
ขาเชื่อมต่อ (pinout) แพ็กเกจ ชุดอุปกรณ์รอบข้าง โครงสร้างสัญญาณนาฬิกา และอินเทอร์เฟซดีบัก ไม่เปลี่ยนแปลงระหว่าง C6T6, C8T6 และ CBT6 บอร์ดเดียวกัน คริสตัลเดียวกัน หัวต่อ SWD เดียวกัน และวงจร USB เดียวกันใช้ได้กับทั้งสามรุ่น
นั่นคือเหตุผลที่การอัปเกรดมักถูกอธิบายว่า "ฟรี" งานทางวิศวกรรมมีอยู่จริงแต่มีขอบเขตจำกัด: อัปเดต linker script ตรวจทาน partition table และรันการทดสอบการยอมรับซ้ำ ไม่มีการเปลี่ยนแปลง schematic ไม่มีการจัดวางใหม่ และไม่มีไดรเวอร์ใหม่
ความแตกต่างด้านอุปกรณ์รอบข้างเพียงอย่างเดียวที่ควรตรวจสอบคือเรขาคณิตเพจของตัวควบคุมแฟลช เพราะขนาดเพจเป็นตัวกำหนดว่า EEPROM จำลองและ bootloader ลบข้อมูลอย่างไร
ในทางปฏิบัติ C8T6 และ CBT6 มักใช้แทนกันได้ในระดับผู้จัดจำหน่าย และการเลือกขึ้นอยู่กับว่าชิ้นส่วนใดพร้อมจำหน่ายในเวลาที่ประกอบบอร์ด ความยืดหยุ่นนี้เองเป็นเหตุผลสนับสนุนการออกแบบ partition table ให้อิงกับ 128 KB เพื่อให้ใช้ชิ้นส่วนใดก็ได้โดยไม่ต้องเปลี่ยนเฟิร์มแวร์
3. เมื่อ 64 KB ไม่เพียงพออีกต่อไป
เฟิร์มแวร์เติบโตเป็นขั้นตอนที่คาดเดาได้ โปรเจกต์ที่เคยพอดีสบาย ๆ ที่ 40 KB อาจข้าม 64 KB เมื่อเกิดหนึ่งในห้าเหตุการณ์ต่อไปนี้
มีการเพิ่มเน็ตเวิร์กสแต็กแม้แต่สแต็ก TCP/IP ขนาดกะทัดรัดที่มี TLS ก็ใช้พื้นที่หลายสิบกิโลไบต์
มีการเพิ่มจอแสดงผลและชุดฟอนต์ชุดอักขระจีนหรือญี่ปุ่นเพียงไม่กี่ชุดอาจเกินงบประมาณทั้งหมดของแอปพลิเคชัน
มีการเพิ่มพื้นที่จัดเตรียมสำหรับ OTAการอัปเดตแบบ Dual-bank ต้องมีพื้นที่สำหรับอิมเมจที่สอง หรืออย่างน้อยก็อิมเมจแบบบีบอัด
การบันทึก log หรือที่จัดเก็บการกำหนดค่าถูกย้ายไปไว้ใน flashหน้า EEPROM แบบจำลองลดพื้นที่ใช้งานของแอปพลิเคชัน
สัญลักษณ์ดีบักหรือ bootloader มีขนาดใหญ่ขึ้นbootloader ใช้พื้นที่ส่วนล่างของ flash ไม่ว่าจะมีใครวัดมันหรือไม่ก็ตาม
อะไรกันแน่ที่ใช้พื้นที่ 64 KB ที่เพิ่มขึ้น
การเห็นว่าพื้นที่ถูกใช้ไปตรงไหนก่อนตัดสินใจจะช่วยได้มาก แอปพลิเคชันที่เชื่อมต่อทั่วไปบน MCU ระดับนี้จะแบ่งพื้นที่โดยประมาณดังนี้: bootloader 16 KB, โค้ดแอปพลิเคชัน 30–50 KB, TCP/IP สแต็กแบบกะทัดรัด 12–20 KB, TLS 15–25 KB, ระบบไฟล์และการกำหนดค่า 4–8 KB และพื้นที่พักภาพสำหรับ OTA เท่ากับขนาดอิมเมจ
เมื่อรวมตัวเลขเหล่านั้น เพดานพื้นที่ก็มาถึงอย่างรวดเร็ว แอปพลิเคชัน 45 KB ที่มี TLS และ staging แบบ dual-bank ต้องใช้มากกว่า 128 KB ก่อนจะมีการบันทึกข้อมูลหรือข้อมูลฟอนต์ด้วยซ้ำ นั่นคือเหตุผลว่าทำไมชิ้นส่วน 64 KB รู้สึกเพียงพอบนโต๊ะทดสอบ แต่กลับไม่พอระหว่างการอินทิเกรต
การคำนวณแบบเดียวกันนี้อธิบายว่าทำไม "เพียงเปิดใช้ TLS" จึงเป็นการตัดสินใจเรื่องพื้นที่จัดเก็บพอ ๆ กับการตัดสินใจด้านความปลอดภัย ชุดรหัสลับ (cipher suites) และที่จัดเก็บใบรับรอง (certificate stores) ไม่ได้มาฟรี
4. งานด้านการย้ายระบบ
| รายการ | สิ่งที่เปลี่ยนแปลง |
|---|---|
| Linker script | FLASH length from 64K to 128K |
| Partition table | Application, staging and data sizes |
| Vector table offset | Only if the bootloader or app base moves |
| OTA bank size | A larger image needs a larger staging area |
| EEPROM emulation | Page count changes if the layout moves |
| Production programming | Image size and checksum |
ข้อผิดพลาดที่พบบ่อยที่สุดคือการแก้ไข linker script แล้วลืม partition table จากนั้นบอร์ดจะโปรแกรมได้ correctly แต่การอัปเดต OTA จะเขียนเลย staging region ไป หรือ bootloader ปฏิเสธอิมเมจที่มันพิจารณาว่าใหญ่เกินไป
Endurance และ emulated EEPROM
Flash ไม่ใช่ EEPROM แฟลช F103 ได้รับการจัดอันดับสำหรับจำนวนรอบการลบที่จำกัด โดยทั่วไปอยู่ในช่วงหนึ่งหมื่นรอบต่อเพจ บล็อกการกำหนดค่าที่เขียนทุกครั้งที่ปิดเครื่องจะทำให้เพจหมดอายุเร็วกว่าอายุการใช้งานของผลิตภัณฑ์มาก
emulated EEPROM แก้ปัญหานี้ด้วยสองเทคนิค แรก มันเขียนไปยังตำแหน่งใหม่แทนการเขียนทับ ดังนั้นการสึกหรอจึงกระจายไปทั่วเพจหรือบล็อก ที่สอง มันเก็บดัชนีเล็กๆ ไว้ใน RAM และเขียนดัชนีใหม่เฉพาะเมื่อเพจเต็ม
ทั้งสองเทคนิคกินแฟลชตามจำนวนตัวแปรและความลึกของ wear-leveling บนชิ้นส่วน 64 KB สิ่งนี้อาจเป็นสัดส่วนที่มีนัยสำคัญของงบประมาณ บน CBT6 พื้นที่ที่เพิ่มขึ้นทำให้แผน wear-leveling ที่ลึกขึ้นสามารถจ่ายได้
หากผลิตภัณฑ์บันทึกข้อมูลอย่างต่อเนื่อง ควรพิจารณา FRAM ภายนอกหรือ SPI flash ขนาดเล็กแทนที่จะทำให้ flash ภายในของ MCU สึกหรอ ต้นทุนปานกลางและการเพิ่มความน่าเชื่อถือมีมาก
Clock, wait states และประสิทธิภาพที่รับรู้ได้
แฟลชที่ใหญ่ขึ้นไม่ได้ทำให้ MCU เร็วขึ้น แต่สามารถเปลี่ยนจำนวน wait states ของแฟลชที่โค้ดทำงานด้วยได้ ที่ 72 MHz F103 ต้องใช้ wait states ทั้งสองความจุ ความแตกต่างจะปรากฏเมื่อโค้ดถูกวางที่แอดเดรสต่างกัน หรือเมื่อ prefetch buffer ทำงานต่างกัน
สำหรับแอปพลิเคชันส่วนใหญ่ สิ่งนี้มองไม่เห็น สำหรับลูปที่นับรอบสัญญาณ อินเทอร์เฟซแบบ bit-banged และลูปควบคุมที่แน่นหนา สิ่งนี้อาจสำคัญ และการทดสอบ acceptance ควรครอบคลุมเส้นทางที่ไวต่อเวลา ไม่ใช่เพียงการตรวจสอบด้านฟังก์ชันเท่านั้น
หากดีไซน์ทำงานต่ำกว่า 48 MHz โดยปกติ wait states จะเป็นศูนย์ และความแตกต่างจะหายไปทั้งหมด นั่นเป็นเหตุผลหนึ่งที่งานออกแบบอุตสาหกรรมจำนวนมากเลือกทำงานช้ากว่าค่าสูงสุดโดยเจตนา
5. ขนาดแฟลชในขณะรัน
F103 รายงานขนาดแฟลชของตนในรีจิสเตอร์ที่เฟิร์มแวร์สามารถอ่านได้ สิ่งนี้มีประโยชน์สำหรับแพลตฟอร์มที่จัดส่งด้วยชิ้นส่วนขนาด 64 KB หรือ 128 KB และยังเป็นกับดัก: โค้ดที่ฮาร์ดโค้ดจำนวนหน้าหรือแอดเดรสเซกเตอร์จะทำงานผิดพลาดบนความจุที่ต่างกัน
หากผลิตภัณฑ์อาจจัดส่งพร้อมทั้งสองรุ่น ให้อ่านขนาดเมื่อบูตและกำหนดค่าชั้นการจัดเก็บจากค่านั้น หากจัดส่งพร้อมเพียงรุ่นเดียว ให้ยืนยันขนาดที่คาดหวังในการทดสอบการผลิต เพื่อจับรีลผิดก่อนประกอบ
ตัวเลือกการออกแบบ OTA
รูปแบบที่พบบ่อยมีสี่แบบ และต้นทุนแฟลชแตกต่างกันอย่างมาก
ดับเบิลแบงก์ช่องอิมเมจเต็มสองช่องพร้อมบูตโหลดเดอร์ ปลอดภัยและเรียบง่าย แต่ต้องใช้ขนาดอิมเมจเป็นสองเท่า บน 128 KB อิมเมจ 40 KB ที่มี dual-bank staging จะใช้ 80 KB ก่อนข้อมูล
การสเตจจิงแบบบีบอัดอิมเมจที่ดาวน์โหลดมาจะถูกจัดเก็บแบบบีบอัดและขยายในตำแหน่งเดิมเมื่อบูต ช่วยประหยัดพื้นที่ แต่เพิ่มขั้นตอนการคลายการบีบอัดและโหมดความล้มเหลวหากตัวคลายการบีบอัดถูกขัดจังหวะ
การสเตจจิงภายนอกอิมเมจถูกจัดเก็บไว้ใน SPI flash ภายนอก และ MCU จะคัดลอกเข้ามาภายใน เพิ่มองค์ประกอบหนึ่งชิ้น แต่ขจัดข้อจำกัดด้านพื้นที่ภายในออกไปทั้งหมด
ไม่มีการสเตจจิงอุปกรณ์ดาวน์โหลดและเขียนโดยตรง โดยทั่วไปใช้บูตโหลดเดอร์สำหรับกู้คืน ใช้แฟลชน้อยที่สุด แต่เสี่ยงที่สุดในภาคสนาม
ไม่ว่าจะเลือกรูปแบบใด ต้องกำหนดตารางพาร์ติชันให้แน่นอนก่อนเขียนเฟิร์มแวร์ การเปลี่ยนแปลงในภายหลังจะทำให้อุปกรณ์ทุกเครื่องในภาคสนามใช้ไม่ได้
การตรวจสอบความเข้ากันได้ของเฟิร์มแวร์
การตรวจสอบสี่ข้อช่วยจับปัญหาการย้ายระบบส่วนใหญ่ก่อนที่จะไปถึงภาคสนาม
ID อุปกรณ์โค้ดเริ่มต้นของเฟิร์มแวร์อาจแยกสาขาตาม ID; ต้องเพิ่มค่าใหม่โดยระบุอย่างชัดเจน
รีจิสเตอร์ขนาดแฟลชตรวจสอบยืนยันค่าที่คาดหวังในการทดสอบการผลิต เพื่อให้รีลที่มีความจุผิดถูกปฏิเสธในขั้นตอนการโปรแกรม
ออฟเซตของตารางเวกเตอร์หากบูตโหลดเดอร์ย้ายตำแหน่งแอปพลิเคชัน ให้ยืนยันว่าออฟเซตตรงกับตารางพาร์ทิชันใหม่
จำนวนหน้าของการจำลอง EEPROMจำนวนหน้าที่สงวนไว้สำหรับการกำหนดค่าต้องตรงกับเลย์เอาต์ใหม่ มิฉะนั้นหน้าสุดท้ายจะทับซ้อนกับแอปพลิเคชัน
6. แหล่งสำรองที่ 128 KB
| ตระกูล | แฟลช | หมายเหตุ |
|---|---|---|
| GD32F103CBT6 | 128 KB | Pin compatible; different flash timing and higher clock capability |
กฎเดียวกันจากบทความ 64 KB ยังใช้อยู่: ความเข้ากันได้ของพินเป็นเชิงกล และต้องตรวจสอบเฟิร์มแวร์ เมื่อมีแฟลชที่ใหญ่ขึ้น มีรายการเพิ่มขึ้นหนึ่งอย่าง — อัลกอริทึมการโปรแกรมแฟลชและความละเอียดในการลบข้อมูลอาจแตกต่างกัน ซึ่งส่งผลต่อทั้งเวลาการผลิตและการออกแบบ OTA
ตรวจสอบเส้นทางการกู้คืนด้วย หากบูตโหลดเดอร์รองรับ DFU ผ่าน USB หรือ UART ให้ทดสอบการกู้คืนจากอิมเมจแอปพลิเคชันที่เสียหายบนความจุใหม่ เพราะดีสคริปเตอร์ DFU มักเข้ารหัสขนาดอิมเมจสูงสุดไว้
การเข้าถึงเพื่อดีบักไม่เปลี่ยนแปลง แต่ควรตรวจสอบออปชันไบต์: การป้องกันการอ่านข้อมูลออก พฤติกรรมของวอตช์ด็อก และการกำหนดค่าพินบูตถูกเก็บไว้ในแฟลช และสถานะเริ่มต้นอาจแตกต่างกันระหว่างล็อต ให้ยืนยันบนฟิกซ์เจอร์แทนการยืนยันบนเบนช์
การโปรแกรมสำหรับการผลิตและการตรวจสอบย้อนกลับ
การเปลี่ยนความจุทำให้อิมเมจการโปรแกรมเปลี่ยน และบ่อยครั้งทำให้ฟิกซ์เจอร์เปลี่ยน ควรตรวจสอบสามรายการบนสายการผลิต
ขนาดอิมเมจและ checksumโปรแกรมเมอร์ต้องยอมรับอิมเมจที่มีขนาดใหญ่กว่า และ checksum ที่จัดเก็บอยู่ในพื้นที่ bootloader ต้องตรงกัน
การตรวจสอบโดยการอ่านกลับการตรวจสอบแบบเต็มรูปแบบหลังการโปรแกรมจะตรวจจับรีลที่บรรจุชิ้นส่วนผิดความจุได้ทันที แทนที่จะเป็นตอนบูตครั้งแรก
การบันทึก Unique IDunique ID ขนาด 96 บิตเชื่อมโยงอุปกรณ์เข้ากับบันทึกการผลิต การบันทึกค่านี้ทำให้การคืนสินค้าจากภาคสนามสามารถตรวจสอบย้อนกลับได้ และช่วยระบุล็อตที่มีปัญหา
7. แผนการทดสอบ
| ขั้นตอน | ทดสอบ | เกณฑ์ผ่าน |
|---|---|---|
| 1 | Read flash size and device ID | Matches the expected density |
| 2 | Program the full image | Verifies with zero errors |
| 3 | Boot and run the acceptance test | No timing regressions |
| 4 | OTA update with power cut | Recovers via the bootloader |
| 5 | EEPROM emulation wear test | No page exhaustion after 100k writes |
เมื่อ 128 KB ยังไม่เพียงพอ
หากอิมเมจที่คาดการณ์ไว้มีขนาดเกินประมาณ 100 KB ขั้นตอนถัดไปไม่ใช่ F103 อีกรุ่น — แต่เป็นตระกูลที่แตกต่างออกไป Cortex-M3 ที่ 72 MHz และ RAM 20 KB ของ F103 จะกลายเป็นข้อจำกัดก่อนแฟลช
ตัวเลือก ได้แก่ รุ่นคลาส 256 KB ในตระกูลเดียวกัน, ชิ้นส่วน Cortex-M4 ที่มี RAM มากกว่าและมี floating-point unit, หรือ QSPI flash ภายนอกที่รองรับ execute-in-place แต่ละทางเลือกเป็นการตัดสินใจระดับแพลตฟอร์มซึ่งมีต้นทุนด้านการรับรองและ firmware ของตัวเอง
หลักปฏิบัติคือ เลือกความจุที่ครอบคลุมฟีเจอร์ในอีกสองปีข้างหน้า ไม่ใช่ขนาดอิมเมจปัจจุบัน การรับรองบอร์ดเดิมซ้ำสองรอบมีต้นทุนสูงกว่าการซื้อชิ้นส่วนที่ใหญ่ขึ้นเล็กน้อยตั้งแต่แรก
เรื่องราวผลิตภัณฑ์ตลอดห้าปี
ลองพิจารณาคอนโทรลเลอร์ที่ออกแบบในปี 2021 ด้วยอิมเมจ 40 KB บน C8T6 ภายในปี 2023 อิมเมจเพิ่มเป็น 58 KB หลังจากเพิ่มเว็บอินเทอร์เฟซ ภายในปี 2024 TLS ดันให้เกิน 64 KB และทีมต้องบีบอัดฟอนต์เพื่อให้พอดี
ในปี 2025 พื้นที่ staging สำหรับ OTA ไม่พออีกต่อไป การแก้ไข ณ จุดนั้นคือการแก้ไขบอร์ด (board revision), เลย์เอาต์พาร์ทิชันใหม่ และการ migrate ภาคสนาม ซึ่งทั้งหมดนี้หลีกเลี่ยงได้หากการออกแบบเริ่มต้นบน CBT6 ด้วยราคาที่เพิ่มขึ้นเพียงไม่กี่เซนต์
นั่นคือเหตุผลสำหรับ headroom: ไม่ใช่เพราะ flash ที่เพิ่มขึ้นจะถูกใช้ทันที แต่เพราะต้นทุนของการใช้จนไม่พอถูกวัดเป็นการ re-spin มากกว่าเป็นเซนต์
8. ต้นทุนและการวางแผน
ความแตกต่างด้านราคาระหว่าง C8T6 และ CBT6 มีน้อย การตัดสินใจไม่ใช่เรื่องต้นทุนต่อหน่วย แต่เป็นเรื่องที่ว่า 64 KB ที่เพิ่มขึ้นจะขจัดความจำเป็นในการออกแบบใหม่ในอนาคตหรือไม่
มีสามสัญญาณที่สนับสนุนให้เลือก CBT6: อิมเมจปัจจุบันมีขนาดเกิน 45 KB, แผนงานพัฒนามีเน็ตเวิร์กสแตกหรือจอแสดงผล หรือผลิตภัณฑ์มีอายุการใช้งานหลายปี มีสองสัญญาณที่สนับสนุนให้คงอยู่ที่ 64 KB: อิมเมจมีเสถียรภาพและมีขนาดเล็ก และปริมาณการผลิตสูงพอที่ต้นทุนระดับเซนต์มีความสำคัญ
หากอิมเมจใกล้ 100 KB อยู่แล้ว ให้ข้ามไปยังคลาส 256 KB การรับรองชิ้นส่วน 128 KB แล้วต้องย้ายอีกครั้งในหนึ่งปีเป็นเส้นทางที่แพงที่สุด
กฎการตัดสินใจสำหรับการออกแบบใหม่
จดตัวเลขสามค่าก่อนตัดสินใจ: ขนาดอิมเมจปัจจุบัน ขนาดที่คาดการณ์ในอีกสองปี และจำเป็นต้องใช้ OTA หรือไม่ หากคำตอบสำหรับ OTA คือใช่ ให้บวกขนาดอิมเมจอีกครั้ง หากยอดรวมที่คาดการณ์สูงกว่า 90 KB ให้เริ่มที่ 128 KB หรือสูงกว่า
สำหรับผลิตภัณฑ์ที่ทำงานแบบฟังก์ชันตายตัว ไม่มีการเชื่อมต่อ และไม่มี OTA โดยปกติ 64 KB ก็เพียงพอแล้ว และ C8T6 ยังคงเป็นตัวเลือกที่ถูกกว่า ข้อผิดพลาดคือการสมมติว่าผลิตภัณฑ์จะคงที่ไปตลอดห้าปี
9. คำถามที่พบบ่อย
CBT6 สามารถใช้แทน C8T6 ได้เลยหรือไม่
ในทางกายภาพและเชิงฟังก์ชันใช่ เฟิร์มแวร์ต้องอัปเดต linker script และ partition table สำหรับแฟลชที่ใหญ่ขึ้น
RAM เพิ่มขึ้นหรือไม่
ไม่ ทั้งสองพาร์ตมี 20 KB หาก RAM เป็นข้อจำกัด พาร์ตที่มีแฟลชใหญ่กว่าจะไม่ช่วย
ฉันสามารถย้ายกลับไปใช้ C8T6 ภายหลังได้ไหม
ได้ก็ต่อเมื่ออิมเมจมีขนาดไม่เกิน 64 KB วางแผนตารางพาร์ทิชันให้สามารถดาวน์เกรดได้โดยไม่ต้องแก้โค้ด
ซอร์สที่สองมีรีจิสเตอร์ขนาดแฟลชเหมือนกันหรือไม่
โดยปกติจะมีรีจิสเตอร์ที่เข้ากันได้อยู่ แต่ค่าและความละเอียดอาจแตกต่างกัน ควรอ่านดาต้าชีตของชิ้นส่วนที่แน่นอน
บั๊กการย้ายระบบที่พบบ่อยที่สุดคืออะไร
การอัปเดตลิงก์เกอร์สคริปต์แต่ไม่ได้อัปเดตตารางพาร์ทิชัน OTA ซึ่งทำให้การอัปเดตเขียนออกนอกพื้นที่ staging
ฉันควรสั่ง CBT6 สำหรับการออกแบบใหม่หรือไม่?
หากอิมเมจมีขนาดต่ำกว่า 32 KB และเสถียร C8T6 ก็ใช้ได้ หากมีโอกาสเติบโต — อินเทอร์เฟซเว็บ, TLS, การบันทึกข้อมูล หรือ OTA — ให้เริ่มที่ 128 KB และหลีกเลี่ยงรอบการออกแบบที่สอง
หมายเหตุด้านการจัดหา
ความพร้อมใช้งานที่ความจุนี้ดีกว่าที่ 32 KB เพราะมีการออกแบบนำไปใช้มากกว่า ให้คงแหล่งสำรองที่ได้รับอนุมัติไว้หนึ่งแหล่ง และยืนยันว่าอัลกอริทึมการโปรแกรมแฟลชของแหล่งนั้นตรงกับฟิกซ์เจอร์การผลิตของคุณ อิมเมจเหมือนกัน แต่อาจใช้เครื่องมือไม่เหมือนกัน ตรวจสอบก่อนสั่งซื้อ
10. แหล่งที่มา
- หน้าผลิตภัณฑ์ ST STM32F103CB:st.com
- เอกสารประกอบ GigaDevice GD32F103:gigadevice.com
เกี่ยวกับผู้เขียน— เผยแพร่โดยทีมข่าวกรองห่วงโซ่อุปทานของ Chip-Seek เราติดตามความพร้อมใช้งานของชิ้นส่วน การทดแทน และความเสี่ยงด้านการรับรองสำหรับวิศวกรฮาร์ดแวร์และทีมจัดซื้อ อ่านกระบวนการด้านคุณภาพและการตรวจสอบย้อนกลับ.
ต้องการพื้นที่สำรองสำหรับแฟลชเพิ่มขึ้นหรือไม่
แจ้งหมายเลขชิ้นส่วนปัจจุบันและขนาดอิมเมจให้เราทราบ เราจะเสนอราคารุ่น 64 KB และ 128 KB จากสต็อก เพื่อให้คุณเปรียบเทียบบนบอร์ดเดียวกันได้