Bỏ qua đến nội dung

STM32F103 vs GD32F103: Giải pháp thay thế tương thích chân

STM32F103 vs GD32F103: so sánh các lựa chọn MCU tương thực chân theo lõi, xung nhịp, bản đồ thanh ghi, ngoại vi và yêu cầu porting firmware khi thay thế.

PinCompatible Engineering Team • • Cập nhật: 7/10/2026
STM32F103 vs GD32F103 comparison showing the LQFP48 pinout and firmware migration
STM32F103 vs GD32F103 comparison showing the LQFP48 pinout and firmware migration

STM32F103 so với GD32F103 là cuộc so sánh quan trọng nhất trên thị trường chip thay thế trong nước, bởi vì GD32F103 là nỗ lực tái tạo nổi tiếng nhất nhằm sao chép STM32F103, một trong những vi điều khiển được sử dụng rộng rãi nhất của thế hệ trước, với cùng số chân và phần lớn cùng phần mềm. STM32F103 là vi điều khiển Cortex-M3 kinh điển của STMicroelectronics, linh kiện đã thúc đẩy một thế hệ board từ điều khiển công nghiệp đến tấm nổi tiếng Blue Pill, và GD32F103 là giải pháp thay thế tương thích chân của GigaDevice, linh kiện Cortex-M3 được thiết kế để phù hợp với footprint LQFP48 và chạy phần lớn cùng firmware. Cuộc so sánh này quan trọng vì STM32F103 đã khan hiếm, giá tăng, và nguồn cung hạn chế, và GD32F103 là câu trả lời thực tế cho người mua hoặc kỹ sư muốn board tiếp tục hoạt động mà không cần thiết kế lại. Hướng dẫn này so sánh hai chip về vỏ đóng gói, lõi, xung clock, bản đồ bộ nhớ, thanh ghi, ngoại vi, và di chuyển firmware, đồng thời trình bày trung thực về khả năng tương thích: GD32F103 tương thích chân và phần lớn tương thích phần mềm, với các khác biệt đã được ghi nhận mà quá trình kiểm tra bring-up sẽ phát hiện, và hướng dẫn chỉ rõ các khác biệt nằm ở đâu.

Cuộc so sánh này cũng là ví dụ thực tế về thay thế tương thích chân và mã nguồn mà danh mục sản phẩm của trang này được xây dựng xung quanh, và đây là trường hợp học cả một danh mục. Board sử dụng STM32F103 không nhất thiết phải được thiết kế lại để dùng GD32F103, vì footprint LQFP48 khớp nhau, và firmware không cần phải viết lại từ đầu, vì lõi và phần lớn bản đồ thanh ghi khớp nhau, nhưng việc thay thế không phải là thay thế trực tiếp mà không cần suy nghĩ: cấu hình clock, khởi tạo ngoại vi, và một số hành vi ngoại vi khác nhau, và các khác biệt này chính xác là những gì quá trình porting có cấu trúc và bring-up cần xác nhận. Hướng dẫn này cung cấp cấu trúc đó, và đây là cuộc so sánh trung thực, ưu tiên kỹ thuật mà nhà thiết kế cần trước khi cam kết dây chuyền sản xuất với giải pháp thay thế.

STM32F103 vs GD32F103: Khẳng định về Tương thích

GD32F103 so với STM32F103 là khẳng định về hai cấp độ tương thích, và hiểu chính xác khẳng định này là bước đầu tiên của cuộc so sánh. Tương thích chân là cấp độ vật lý: GD32F103 được cung cấp trong cùng vỏ LQFP48 và đặt các chức năng tương tự trên các chân tương tự như vỏ LQFP48 của STM32F103, do đó board lắp STM32 có thể lắp GD32 mà không cần thiết kế lại, và nguồn, mass, oscillator, reset, boot, và các chân GPIO và ngoại vi đều khớp nhau. Tương thích phần mềm là cấp độ thứ hai, và đây là khẳng định có điều kiện: GD32F103 sử dụng lõi Cortex-M3 và bản đồ thanh ghi được thiết kế để phần lớn tương thích với STM32F103, do đó phần lớn firmware biên dịch và chạy sau khi di chuyển, nhưng tương thích không phải tuyệt đối, và các khác biệt nằm ở cây clock, một số thanh ghi ngoại vi, ADC, và các chi tiết khác mà ghi chú di chuyển và bài kiểm tra bring-up tiết lộ. Tóm tắt trung thực là GD32F103 tương thích chân và phần lớn tương thích thanh ghi-phần mềm, và hướng dẫn này đánh giá khẳng định ở mức độ đó thay vì như một lời hứa về thay thế trực tiếp hoàn hảo.

Hai linh kiện cũng khớp nhau về vỏ đóng gói và dung lượng chính, đây là thực tế làm cho cuộc so sánh có ý nghĩa. STM32F103C8T6 và GD32F103C8T6 đối đầu trực tiếp: cả hai đều là Cortex-M3, cả hai đều LQFP48, cả hai đều có flash 64-kilobyte và SRAM 20-kilobyte của phiên bản C8, và cả hai đều chạy xung clock 72-megahertz-class quen thuộc mà họ vi điều khiển này được biết đến, với linh kiện GD32 cung cấp dư margin vượt mức đó ở một số phiên bản. Thông số chính khớp nhau cho người mua biết rằng GD32F103 được thiết kế để chiếm chính xác vị trí của STM32F103, và các khác biệt nằm ở cách triển khai chứ không phải ở hình dạng, đó là lý do cuộc so sánh là câu chuyện di chuyển thay vì câu chuyện thiết kế lại. Khẳng định tương thích là khung của toàn bộ cuộc so sánh, và phần còn lại của hướng dẫn này đánh giá khẳng định dựa trên vỏ đóng gói, lõi, thanh ghi, và hành vi.

Tương thích thực tế mà GD32F103 mang lại

GD32F103 mang lại tương thích chân như một đảm bảo và tương thích phần mềm như một khẳng định đã được ghi nhận, phần lớn đúng, và sự phân biệt này là tuyên bố công bằng trên thị trường. Nhà thiết kế cần footprint LQFP48 và các chức năng chân có thể lắp GD32F103 và tin tưởng vào các chân, vì sơ đồ chân được thiết kế để khớp và datasheet xác nhận điều đó. Nhà thiết kế cần firmware chạy nguyên trạng ở vị trí khác: GD32F103 chạy bộ chỉ thị Cortex-M3 và bản đồ thanh ghi phần lớn tương thích, do đó firmware biên dịch cho GD32 với CMSIS và startup riêng của nó, và các khác biệt xuất hiện ở clock và khởi tạo ngoại vi. Tương thích thực tế mà GD32 mang lại là sự kết hợp, các chân như đảm bảo, phần mềm như khẳng định tương thích và đã được kiểm tra, và các ứng dụng chuyên nghiệp đọc ghi chú di chuyển, điều chỉnh firmware, và chạy bring-up thay vì cho rằng binary từ STM32 chạy không thay đổi.

Vỏ đóng gói, Sơ đồ chân, và Footprint: STM32F103 vs GD32F103

Vỏ đóng gói và sơ đồ chân là lớp đầu tiên và vững chắc nhất của cuộc so sánh, và GD32F103 khớp STM32F103 ở nơi board tồn tại. Cả hai linh kiện đều có vỏ LQFP48, cùng gói quad flat 48 chân, 7×7 mm với cùng bước chân và cùng hình dạng pad, do đó board được thiết kế cho footprint LQFP48 của STM32F103 chấp nhận thân LQFP48 của GD32F103 mà không cần thay đổi. Các chức năng chân khớp nhau trên toàn bộ nguồn, mass, VDDA và VSSA, oscillator và reset, các chân boot, các chân debug SWD, và các chức năng thay thế GPIO và ngoại vi, và các vị trí chân được thiết kế để sắp thẳng hàng. Footprint là hợp đồng của việc thay thế, và đây là lý do mạnh nhất khiến GD32F103 là giải pháp thay thế thay vì thiết kế lại, bởi vì board, quá trình lắp ráp, fixture kiểm tra, và chương trình pick-and-place đều tồn tại sau thay đổi.

Sơ đồ chân cũng cần đọc kỹ các chức năng thay thế, bởi vì các chân vi điều khiển mang nhiều chức năng qua bộ ghép kênh, và bản đồ chức năng thay thế là nơi khẳng định tương thích chân có thể ẩn một khác biệt. Các cổng GPIO và USART, SPI, I2C, các kênh timer, và các kênh ADC mà firmware gán qua các thanh ghi chức năng thay thế phải nằm trên cùng các chân trên GD32F103 như trên STM32F103, và ghi chú di chuyển và các bảng trong datasheet ghi nhận ánh xạ đó. Nhà thiết kế port firmware xác minh vị trí chức năng thay thế mà firmware sử dụng, thay vì cho rằng tên chân chia sẻ có nghĩa là chức năng chia sẻ trên mọi bộ ghép kênh, và việc xác minh này là một phần của checklist porting. Vỏ đóng gói và sơ đồ chân là neo vật lý của cuộc so sánh, và kiểm tra chức năng thay thế là chi tiết quan trọng giữ cho neo đó đúng.

So sánh footprint LQFP48 và ánh xạ chân

So sánh footprint LQFP48 song song đặt hai linh kiện trên cùng một board. Cả hai đều là gói quad flat 48 chân với thân 7 mm và bước chân 0.5 mm, và hướng chân 1 cùng bố cục pad giống nhau, do đó quá trình reflow và kiểm tra tuân theo cùng công thức. Ánh xạ chân đi theo cùng thứ tự, nguồn và mass ở vị trí cố định, các chân oscillator, reset NRST, chân BOOT0, các chân SWD, và GPIO được tổ chức theo cổng với các chức năng thay thế được gán bởi cùng sơ đồ bộ ghép kênh. Board đặt STM32F103 và board đặt GD32F103 sử dụng cùng ký hiệu footprint, và nửa vật lý của cuộc so sánh là khớp nhau. Ánh xạ LQFP48 là lý do việc thay thế bảo toàn board, và đây là nửa của cuộc so sánh không cần điều kiện, đây là tuyên bố trung thực mà datasheet đưa ra.

Lõi, Clock, và Hiệu năng: STM32F103 vs GD32F103

Lõi và hiệu năng là nơi hai linh kiện khớp nhau ở cốt lõi và khác nhau ở cách triển khai. Cả hai đều sử dụng lõi ARM Cortex-M3, cùng kiến trúc 32-bit với cùng bộ chỉ thị Thumb-2 và cùng cơ sở hạ tầng debug và interrupt, do đó hành vi ở cấp độ chỉ thị của firmware đã biên dịch là giống nhau và toolchain cùng debugger là giống nhau. Clock là nơi cách triển khai khác nhau: STM32F103 chạy tối đa 72 megahertz, và GD32F103 được thiết kế để chạy cùng lớp 72 megahertz với dư margin trong thiết kế linh kiện, và cây clock tạo system clock từ oscillator qua PLL có cấu hình riêng của GD32, do đó code khởi tạo clock của firmware phải được điều chỉnh cho các thanh ghi PLL của GD32 thay vì sao chép nguyên trạng. So sánh hiệu năng do đó là cùng lõi ở xung tương thích, với cấu hình clock là nhiệm vụ porting đầu tiên, đây là đánh giá kỹ thuật trung thực của hai linh kiện.

Trình biên dịch và toolchain xứng đáng có ghi chú riêng, bởi vì quá trình di chuyển chạy qua chúng. Cả hai linh kiện đều được hỗ trợ bởi toolchain ARM và các IDE chính, và GD32F103 mang theo header thiết bị CMSIS riêng, file startup riêng, file system-clock riêng, và thư viện ngoại vi tiêu chuẩn riêng, mà kỹ sư thêm vào project thay vì thư viện firmware của ST. Firmware được viết dựa trên thư viện ngoại vi của ST hoặc driver mức thấp của ST phải được điều chỉnh cho thư viện của GD32, và firmware được viết ở mức thanh ghi thô phải được kiểm tra từng thanh ghi, đây là nơi khẳng định tương thích trở thành công việc. Quá trình porting là chi phí thực sự của việc thay thế, và đây là lý do cuộc so sánh coi GD32F103 là linh kiện phần lớn tương thích với quá trình di chuyển, không phải thay thế trực tiếp giống hệt. Lõi là khớp nhau, clock là khác nhau, và di chuyển là công việc ở giữa.

Cách cấu hình clock khác nhau giữa hai linh kiện

Cấu hình clock là nhiệm vụ porting đầu tiên và cụ thể nhất, bởi vì STM32F103 và GD32F103 tạo system clock qua các sơ đồ PLL tương tự nhưng không giống hệt nhau. Firmware cấu hình clock của ST, oscillator, PLL, switch system clock, và các bộ chia prescaler bus, phải được port sang các thanh ghi điều khiển clock của GD32, có cách bố trí bit và giá trị reset khác nhau ở chi tiết, và quá trình port đặt system clock theo cách datasheet và ghi chú di chuyển của GD32 mô tả. Cấu hình cũng đặt các clock ngoại vi, APB1 và APB2, có các bộ chia prescaler nuôi timer, USART, SPI, và ADC, và sai lầm trong port clock biểu hiện thành baud rate sai, chu kỳ timer sai, và lấy mẫu ADC sai, đó là lý do xác minh clock là điều đầu tiên mà bring-up kiểm tra. Port clock là công việc, nhưng là công việc có giới hạn, bởi vì kiến trúc là cùng Cortex-M3 và cây clock có cùng hình dạng, và ghi chú di chuyển ghi nhận các khác biệt. Clock là nơi GD32F103 ngừng là thay thế trực tiếp giống hệt và bắt đầu là giải pháp thay thế có điều kiện, và quá trình port là trang đầu tiên của quá trình đủ điều kiện.

Bản đồ bộ nhớ và Tương thích thanh ghi: STM32F103 vs GD32F103

Bản đồ bộ nhớ và tương thích thanh ghi là lớp phần mềm của cuộc so sánh, và chúng quyết định bao nhiêu firmware được port. Bản đồ bộ nhớ phần lớn tương thích: flash và SRAM nằm ở cùng vùng địa chỉ, các thanh ghi ngoại vi nằm ở cùng địa chỉ base cho các khối chính, và vùng hệ thống và debug của Cortex-M3 là tiêu chuẩn, do đó script liên kết và bố cục bộ nhớ chuyển sang với các định nghĩa thiết bị. Tương thích thanh ghi là khẳng định có điều kiện: các ngoại vi chính, GPIO, timer, USART, SPI, và I2C, có thanh ghi ở cùng địa chỉ với phần lớn cùng trường, và các khác biệt nằm ở chi tiết tinh tế, một số bit điều khiển, một số bit trạng thái, một số giá trị reset, và một số thanh ghi dành riêng cho ngoại vi mà GD32 triển khai theo cách riêng. Đánh giá chuyên nghiệp là bản đồ thanh ghi phần lớn tương thích ở cấp độ mà các driver tiêu chuẩn sử dụng, và firmware viết ở mức driver port với việc điều chỉnh thư viện, trong khi firmware viết ở mức thanh ghi thô đòi hỏi kiểm tra từng thanh ghi.

Bản đồ thanh ghi cũng đọc các vùng mà hai linh kiện thực sự khác nhau, và các khác biệt đó là những gì quá trình di chuyển và bring-up tập trung vào. Cấu hình ADC, tính toán baud-rate USART, triển khai ngoại vi USB, và một số hành vi timer là các vùng đã biết nơi triển khai của GD32F103 khác với của STM32F103, và firmware điều khiển các ngoại vi đó với hành vi chính xác của ST phải được điều chỉnh và kiểm tra thay vì cho là tương thích. Ghi chú di chuyển và thư viện ngoại vi của GD32 ghi nhận các khác biệt, và kỹ sư đọc chúng cho các ngoại vi mà firmware thực sự sử dụng trước khi bring-up chạy. Bản đồ bộ nhớ là nền tảng tương thích, bản đồ thanh ghi là lớp giữa phần lớn tương thích, và các khác biệt ngoại vi là công việc cụ thể, và ba yếu tố này giải thích tại sao GD32F103 là giải pháp thay thế vững chắc với quá trình port đã ghi nhận thay vì thay thế trực tiếp không được ghi nhận.

Các khác biệt ngoại vi giữa STM32 và GD32

Các khác biệt ngoại vi là chi tiết trung thực của cuộc so sánh, và đặt tên chúng là kỷ luật giữ cho quá trình di chuyển không cho rằng tương thích. ADC là một vùng đã biết, bởi vì cấu hình ADC, ánh xạ kênh, và hành vi lấy mẫu của GD32F103 khác theo những cách mà khởi tạo và vòng đọc của firmware phải điều chỉnh và sau đó xác minh đối với đầu ra thực của bộ chuyển đổi. USART là một vùng khác, bởi vì thanh ghi baud-rate và một số bit điều khiển khác nhau, do đó khởi tạo serial port sang thư viện của GD32 và baud rate thực được xác minh trên đường dây. Ngoại vi USB là vùng thứ ba mà cộng đồng báo cáo cần chú ý, bởi vì triển khai USB của GD32F103 khác với của ST và stack USB viết cho ngoại vi của ST đòi hỏi điều chỉnh. Bộ timer là vùng thứ tư của chi tiết, bởi vì một số tính năng và hành vi timer khác trong triển khai của GD32. Không khác biệt nào là bức tường, nhưng mỗi cái là một nhiệm vụ, và kỹ sư port firmware sử dụng ADC, USART, USB, hoặc timer lên kế hoạch nhiệm vụ và xác minh kết quả trong bring-up thay vì cho rằng port miễn phí.

Cổng nhị phân firmware và Đưa vào hoạt động: STM32F103 so với GD32F103

Cổng nhị phân firmware từ STM32F103 sang GD32F103 là một quy trình di chuyển có cấu trúc, và bài kiểm tra đưa vào hoạt động là cổng xác nhận nó. Quá trình cổng nhị phân chạy theo các giai đoạn: thêm các tệp thiết bị của GD32 và thư viện vào dự án, cổng nhị phân cấu hình xung nhịp sang thanh ghi xung nhịp của GD32, điều chỉnh khởi tạo ngoại vi sang thư viện của GD32 hoặc các trường thanh ghi đã xác minh, và xây dựng lại firmware cho định nghĩa thiết bị của GD32. Sau đó, quá trình đưa vào hoạt động chạy các giai đoạn tương tự trên phần cứng: xác nhận toolchain xây dựng và chương trình đích, xác nhận khởi động và xung nhịp bằng cách đo xung nhịp hệ thống và xung nhịp ngoại vi, kiểm tra từng ngoại vi mà firmware sử dụng, GPIO, USART, SPI, bộ định thời gian, ADC và USB, và so sánh hành vi và thời gian với STM32F103 gốc trên cùng một bo mạch. Quá trình đưa vào hoạt động là trọng tài của toàn bộ quá trình thay thế, vì nó xác nhận tính tương thích chân trên linh kiện được hàn và tính tương thích phần mềm trong mã đang chạy, và nó là bước biến quá trình di chuyển từ một tuyên bố thành một tư cách đủ điều kiện.

Quá trình đưa vào hoạt động cũng tạo ra hồ sơ mà việc thay thế cần có, vì một thay đổi sản xuất được đánh giá dựa trên bằng chứng. Ghi lại các phép đo xung nhịp, kết quả đưa ngoại vi vào hoạt động, lưu lượng serial, giá trị ADC, dạng sóng bộ định thời gian và liệt kê USB, bên cạnh các số đọc của STM32F103, và ghi lại sự khác biệt cũng như các điều chỉnh mà quá trình cổng nhị phân yêu cầu. Hồ sơ là tạo tác mà quy trình kiểm soát thay đổi chấp nhận và người đánh giá tiếp theo sử dụng, và đó là lý do việc thay thế GD32F103 có thể là một giải pháp thay thế được ghi chép và đủ điều kiện thay vì một thí nghiệm trên bàn làm việc. Quá trình đưa vào hoạt động cũng thiết lập lịch trình cổng nhị phân một cách trung thực: firmware sử dụng GPIO, các cổng serial và bộ định thời gian cổng nhị phân trong vài ngày, và firmware điều khiển ADC, USB và các tính năng bộ định thời gian đặc biệt mất nhiều thời gian hơn, và ước tính đến từ bản đồ ngoại vi mà phần trước đã mô tả. Quá trình cổng nhị phân là công việc có giới hạn, và quá trình đưa vào hoạt động là bằng chứng của ranh giới đó, và hai việc này cùng nhau là phương pháp đủ điều kiện cho giải pháp thay thế.

Cách chạy quá trình di chuyển từ STM32 sang GD32

Chạy quá trình di chuyển từ STM32F103 sang GD32F103 là một danh sách kiểm tra mà bất kỳ kỹ sư nào cũng theo theo cùng một thứ tự. Lưu giữ dự án gốc và firmware, và đọc ngoại vi nào và lớp trình điều khiển nào nó sử dụng, vì phạm vi di chuyển được xác định bởi bản đồ ngoại vi chứ không phải số model. Thêm CMSIS của GD32, startup, xung nhịp hệ thống và thư viện ngoại vi cho GD32F103, và xây dựng dự án dựa trên định nghĩa thiết bị của GD32, sửa lỗi trình biên dịch và trình liên kết mà sự thay đổi thiết bị gây ra. Cổng nhị phân cấu hình xung nhịp, bộ dao động, PLL và bộ chia trước bus, sang thanh ghi xung nhịp của GD32, và cổng nhị phân khởi tạo ngoại vi sang thư viện của GD32, kiểm tra từng trường mà firmware điều khiển. Nạp GD32 lên bo mạch đã giữ STM32, và chạy các giai đoạn đưa vào hoạt động, khởi động và xung nhịp, ngoại vi, kiểm tra hệ thống và kiểm tra trong phạm vi nhiệt độ. Ghi lại kết quả bên cạnh của STM32, và việc thay thế đủ điều kiện khi GD32 khớp với STM32 trong dung sai sản phẩm. Danh sách kiểm tra là hình dạng vận hành của quá trình di chuyển, và nó giống nhau cho dù firmware nhỏ hay lớn.

Khi nào chọn STM32F103 hoặc GD32F103

Lựa chọn giữa STM32F103 và GD32F103 là quyết định tương thích-so với-tính khả dụng, và nó rút gọn thành một quy tắc rõ ràng. Chọn STM32F103 khi firmware phải chạy không sửa đổi trên thiết bị gốc, khi thiết kế phụ thuộc vào hành vi ngoại vi mà GD32 không tái tạo chính xác, khi toolchain và thư viện phải là của ST, hoặc khi chứng nhận và phê duyệt được cấp cho linh kiện ST, và thiết bị gốc có sẵn và giá cả phù hợp. Chọn GD32F103 khi bo mạch cần thay LQFP48, khi linh kiện ST khan hiếm hoặc có giá cao, khi thiết kế có thể dành công sức cổng nhị phân và đưa vào hoạt động, và khi các ngoại vi mà firmware sử dụng là các ngoại vi tương thích, vì GD32 cung cấp cùng một bo mạch với nguồn cung mà tình trạng khan hiếm ST không giới hạn. Quy tắc là phễu của phép so sánh: tính khả dụng quyết định điều kiện kích hoạt, bản đồ ngoại vi quyết định chi phí cổng nhị phân, và quá trình đưa vào hoạt động quyết định tư cách đủ điều kiện, và lựa chọn là sự kết hợp của ba thứ thay vì một tiêu đề đơn lẻ.

Lựa chọn cũng xem xét quan điểm tìm nguồn cung và rủi ro, vì hai linh kiện nằm ở các vị trí cung cấp khác nhau. Tình trạng khan hiếm của STM32F103 là lý do GD32F103 tồn tại, và nguồn cung và hệ sinh thái trong nước của GD32 là điểm mạnh của giải pháp thay thế, trong khi tài liệu của GD32, thư viện firmware và cộng đồng khác với của ST, và kỹ sư phải làm việc từ các tài liệu riêng của GD32. Một nhóm coi trọng tính liên tục của nguồn cung xem GD32 như câu trả lời chiến lược, và một nhóm coi trọng hệ sinh thái của ST xem STM32 như câu trả lời an toàn, và khung trung thực của phép so sánh giữ cả hai còn nhìn thấy. GD32F103 không phải là nâng cấp miễn phí lên STM32F103, nó là một giải pháp thay thế đủ điều kiện bảo tồn bo mạch và yêu cầu di chuyển, và lựa chọn là quyết định của nhóm kỹ thuật giữa hệ sinh thái của linh kiện gốc và tính khả dụng của giải pháp thay thế.

Hướng dẫn quyết định nhanh cho STM32 và GD32

Quyết định STM32F103 GD32F103
Gói và sơ đồ chân LQFP48, footprint tham chiếu LQFP48, tương thích chân
Lõi Cortex-M3 Cortex-M3
Bộ nhớ (cấp C8) 64 KB flash, 20 KB SRAM 64 KB flash, 20 KB SRAM
Tương thích phần mềm Tham chiếu Phần lớn tương thích, với cổng nhị phân được ghi chép
Xung nhịp Cấu hình PLL của ST Cấu hình PLL của GD, yêu cầu cổng nhị phân
Khác biệt đã biết Tham chiếu ADC, baud USART, USB, một số chi tiết bộ định thời gian
Tính khả dụng Thỉnh thoảng khan hiếm và có giá cao Nguồn cung trong nước, điểm mạnh của giải pháp thay thế
Sử dụng tốt nhất Hệ sinh thái ST hiện có, firmware không sửa đổi Thay bo mạch bảo tồn khi ST khan hiếm

Hướng dẫn cổng nhị phân thực tế: Firmware GPIO, Timer và UART

Một hướng dẫn cổng nhị phân thực tế làm cho quá trình di chuyển cụ thể, và firmware sử dụng GPIO, một bộ định thời gian cho PWM và một UART ở 115200 baud bao phủ nền tảng điển hình. Bước đầu tiên là toolchain: thêm device pack của GD32F103 và thư viện firmware vào dự án, thay thế startup STM32 và device header bằng của GD32, và xây dựng, sửa lỗi trình biên dịch và trình liên kết mà sự thay đổi thiết bị gây ra. Bước thứ hai là xung nhịp: cổng nhị phân cấu hình xung nhịp hệ thống sang thanh ghi điều khiển xung nhịp của GD32, bộ dao động, PLL và bộ chia trước bus, vì sơ đồ PLL của GD32 khác trong bố cục thanh ghi, và xác minh xung nhịp hệ thống kết quả bằng dao động ký trên đầu ra MCO hoặc chân xung nhịp. Bước thứ ba là khởi tạo ngoại vi: cổng nhị phân GPIO, bộ định thời gian và UART sang thư viện của GD32, và UART là trường hợp mang tính hướng dẫn, vì thanh ghi baud-rate của GD32 khác với của ST, nên cấu hình 115200 được tính lại từ phép tính của GD32 thay vì sao chép, và kiểm tra terminal xác nhận baud thực trên dây. Bước thứ tư là vòng lặp firmware: chạy ứng dụng hiện có và xác nhận GPIO toggles, PWM điều khiển đầu ra của nó, và UART truyền, và hướng dẫn hoàn thành khi ứng dụng hoạt động trên GD32 như trên STM32.

Hướng dẫn cũng xem xét các khác biệt mà các ngoại vi bộc lộ, và bộ định thời gian và UART là nơi cổng nhị phân thường dành công sức. Các thanh ghi prescaler và period của bộ định thời gian, và các kênh PWM mà firmware điều khiển, được kiểm tra đối với bản đồ thanh ghi của GD32, vì bộ định thời gian với sắp xếp prescaler khác tạo ra tần số PWM khác cho đến khi cấu hình được cổng nhị phân. Thanh ghi baud của UART là khác biệt kinh điển, và firmware sao chép giá trị của ST mà không qua cổng nhị phân tạo ra luồng rối loạn mà terminal hiển thị, đó là lỗi dạy sự cần thiết của cổng nhị phân. Hướng dẫn ghi lại từng bước, thay đổi toolchain, cổng nhị phân xung nhịp, cổng nhị phân ngoại vi và kiểm tra ứng dụng, và hồ sơ là bằng chứng mà tệp di chuyển cần. Ví dụ thực tế là mô hình cho toàn bộ quá trình di chuyển, và nó là mô hình mà phần lỗi thường gặp sau đó đọc ngược lại.

Đo xung nhịp và các ngoại vi trong quá trình đưa vào hoạt động

Đo xung nhịp và các ngoại vi trong quá trình đưa vào hoạt động là nửa xác minh của quá trình di chuyển, và nó chạy trên dao động ký và terminal. Đo xung nhịp hệ thống trước, đo đầu ra MCO hoặc tinh thể và cấu hình PLL, và xác nhận GD32 chạy ở tần số dự định, vì cổng nhị phân xung nhịp là thứ đầu tiên quá trình di chuyển chạm vào và xung nhịp sai lan truyền đến mọi ngoại vi. Đo UART tiếp theo, kết nối terminal ở 115200 và gửi mẫu kiểm tra đã biết, và xác nhận các ký tự đến không có lỗi khung, vì luồng rối loạn là sự không khớp thanh ghi baud được nhìn thấy. Đo bộ định thời gian và PWM, đo chân đầu ra và xác nhận tần số và duty cycle theo thiết kế, và đo GPIO toggles, đọc ADC nếu firmware sử dụng chúng, và độ trễ ngắt nơi ứng dụng phụ thuộc vào nó. Các phép đo được ghi lại bên cạnh các số đọc gốc của STM32, và so sánh là bằng chứng rằng GD32 khớp với gốc trong dung sai sản phẩm, đó là cổng mà quá trình di chuyển vượt qua.

Quá trình đưa vào hoạt động cũng chạy kiểm tra mà datasheet và sản phẩm đều yêu cầu, vì quá trình di chuyển hoạt động trên bàn có thể thất bại ở các giới hạn. Chạy ứng dụng trên toàn phạm vi điện áp và nhiệt độ của sản phẩm, nguồn cung thấp nơi xung nhịp và bộ điều chỉnh của GD32 hoạt động khác, nhiệt độ cao nơi ADC và thời gian trôi, và các bước tải nơi hành vi của firmware thay đổi, và so sánh kết quả với hành vi đã ghi của gốc. Kiểm tra bộc lộ các khác biệt liên tục mà lần chạy trên bàn bỏ lỡ, và đó là lý do quá trình di chuyển được đủ điều kiện trên phạm vi của sản phẩm thay vì con đường may mắn của bàn. Phép đo và kiểm tra cùng nhau là quá trình đưa vào hoạt động, và chúng là nửa của quá trình di chuyển biến firmware đã cổng nhị phân từ một tuyên bố thành một sự thay thế đủ điều kiện, đó là kỷ luật mà hướng dẫn so sánh đã áp dụng xuyên suốt.

Các lỗi di chuyển phổ biến và cách khắc phục

Quá trình di chuyển từ STM32F103 sang GD32F103 thất bại theo những cách nhất quán, và các bản sửa lỗi ngắn vì các lỗi đã được biết. Nếu bo mạch không khởi động, nguyên nhân thông thường là startup hoặc xung nhịp, tệp startup của GD32 chưa được thêm, bảng vector không trỏ đúng, hoặc cấu hình PLL chưa được cổng nhị phân, và bản sửa lỗi là bước toolchain được thực hiện hoàn toàn và xung nhịp được đo trước các ngoại vi. Nếu UART rối loạn, nguyên nhân là thanh ghi baud, giá trị của ST được sao chép vào thanh ghi của GD32 tính khác, và bản sửa lỗi là tính toán baud của GD32 và kiểm tra terminal trên dây. Nếu PWM hoặc bộ định thời gian chạy sai tần số, nguyên nhân là prescaler của bộ định thời gian hoặc cây xung nhịp đằng sau nó, và bản sửa lỗi là cấu hình đã cổng nhị phân và đầu ra đã đo. Nếu ADC đọc sai giá trị, nguyên nhân là cấu hình ADC hoặc bản đồ kênh, và bản sửa lỗi là khởi tạo ADC đã cổng nhị phân và hiệu chuẩn đối với tham chiếu đã biết. Nếu USB không bao giờ liệt kê, nguyên nhân là triển khai ngoại vi USB của GD32 khác với của ST, và bản sửa lỗi là adapter hoặc sửa đổi mà ghi chú di chuyển mô tả, đó là khu vực khó nhất đã biết của việc thay thế. Mỗi lỗi có dấu hiệu và bản sửa lỗi riêng, và các bản sửa lỗi là lý do quá trình di chuyển được lên kế hoạch thất bại ít hơn quá trình đoán.

Các bản sửa lỗi cũng mang theo kỷ luật giữ quá trình di chuyển đúng hướng, và kỷ luật là thứ tự của cổng nhị phân. Sửa toolchain trước xung nhịp, xung nhịp trước ngoại vi, và ngoại vi trước ứng dụng, vì xung nhịp sai làm mọi ngoại vi sai và ngoại vi sai làm ứng dụng sai, và thứ tự địa phương hóa các lỗi khi chúng xuất hiện. Kiểm tra từng giai đoạn trước giai đoạn tiếp theo, biên dịch, khởi động, xung nhịp, ngoại vi và ứng dụng, và ghi lại từng kết quả, để một lỗi trong ứng dụng được truy vết đến ngoại vi chưa được xác minh. Kỷ luật là cùng thứ tự mà hướng dẫn thực tế sử dụng, và đó là thứ tự biến quá trình di chuyển từ chuỗi bất ngờ thành chuỗi các giai đoạn đã xác nhận. Các lỗi phổ biến và cách khắc phục hoàn thành phương pháp di chuyển, và chúng là kết thúc thực tế cho hướng dẫn cổng nhị phân, đó là gương mặt đang hoạt động của quá trình di chuyển trong hướng dẫn này.

Khởi động và giao diện Debug trong quá trình di chuyển

Khởi động và giao diện debug là các chi tiết yên lặng của quá trình di chuyển, và chúng xứng đáng có một phần vì bo mạch lập trình và khởi động sai dừng cổng nhị phân trước khi nó bắt đầu. Chân BOOT0 và cấu hình chế độ khởi động của GD32F103 được đọc đối chiếu với của STM32, vì nguồn khởi động, flash, bộ nhớ hệ thống hoặc SRAM, được chọn bởi các chân boot, và bo mạch đã giữ boot strapping của STM32 phải giữ của GD32 theo cùng cách, hoặc chip khởi động vào bộ nhớ sai và ứng dụng không bao giờ chạy. Giao diện debug SWD là chi tiết thứ hai, vì quá trình di chuyển lập trình GD32 qua các chân SWD giống nhau, và trình gỡ lỗi và device pack phải nhận ra ID của GD32 và các thanh ghi debug của nó, đó là bước toolchain mà hướng dẫn thực tế đã bao phủ. Thời gian reset và bật nguồn, chân NRST và sườn tăng nguồn mà datasheet mô tả, là thứ ba, vì bo mạch có reset biên hoặc sườn nguồn chậm có thể không khởi động đáng tin cậy trên silicon mới. Các lần đọc boot và debug là kiểm tra trước chuyến bay của quá trình di chuyển, và chúng là các kiểm tra mà chuỗi đưa bo mạch vào hoạt động luôn chạy trước khi các ngoại vi được tin tưởng.

Việc đọc ghi chú di chuyển của GD32 hoàn thành chi tiết, vì tài liệu của chính nhà sản xuất nêu rõ các khác biệt mà cổng nhị phân phải tôn trọng. Ghi chú di chuyển liệt kê các khác biệt thanh ghi, khác biệt xung nhịp, khác biệt ngoại vi và các thay đổi trình điều khiển, và kỹ sư đọc nó cho các ngoại vi mà firmware sử dụng, đánh dấu những cái quan trọng với dự án này, và danh sách đã đánh dấu là phạm vi cổng nhị phân mà hướng dẫn thực tế thực thi. Ghi chú di chuyển cũng nêu thiết lập toolchain và thư viện, device pack, startup và các dự án ví dụ, và kỹ sư theo nó thay vì thích ứng dự án STM32 từ đầu, vì con đường của chính nhà cung cấp là nhanh nhất và an toàn nhất. Boot, debug và ghi chú di chuyển là sự chuẩn bị của việc thay thế, và chúng là lý do cổng nhị phân bắt đầu từ tài liệu của nhà cung cấp thất bại ít hơn cái bắt đầu từ đoán. Sự chuẩn bị hoàn thành phương pháp di chuyển, và nó là kiểm tra trước chuyến bay mà hướng dẫn thực tế và các lỗi thường gặp đều giả định.

Quan điểm Thay thế và Tìm nguồn: STM32F103 vs GD32F103

Quan điểm thay thế trong bài so sánh này chính là việc tìm nguồn cung mà một bản thay thế giữ nguyên board mở ra, và đây là phần thực tiễn dành cho người mua. Một thiết kế cho phép GD32F103 làm nguồn cung là thiết kế mà board của nó không còn phụ thuộc vào tình trạng cung ứng của STM32F103, đồng thời có thể vận hành GD32 như linh kiện chính, nguồn cung cấp thứ hai, hoặc phương án dự phòng — chuyển đổi giữa hai chip trên cùng một board LQFP48 và cùng một chương trình kiểm tra khi firmware hỗ trợ cả hai. Việc đánh giá tương thích GD32F103 bao gồm quá trình port và đưa vào vận hành mà hướng dẫn này đã trình bày, kết quả là một phương án thay thế được ghi chép đầy đủ mà nhóm cung ứng có thể thực hiện, đặt hàng và lưu kho. Việc tìm nguồn cung cũng xem xét phạm vi rộng hơn, bởi vì hệ sinh thái tương thích STM32 bao gồm AT32 và các dòng chip nội địa khác đảm nhận cùng vai trò, và người mua đã đánh giá tương thích một phương án thay thế có thể đánh giá phương án tiếp theo bằng cùng phương pháp. GD32F103 là trường hợp điển hình nhất, và quan điểm tìm nguồn cung biến tính tương thích của nó thành một tài sản chuỗi cung ứng.

Bài so sánh kết thúc bằng nhận định thẳng thắn mà thị trường và hướng dẫn này đều đưa ra. GD32F103 là vi điều khiển tương thích chân và phần lớn tương thích phần mềm thay thế cho STM32F103, nó là một phương án thay thế thực sự trên board LQFP48, và không phải là thay thế trực tiếp không cần chỉnh sửa, bởi vì clock, chi tiết thanh ghi, ADC, USART, USB và các bộ timer có những khác biệt mà quá trình migration và đưa vào vận hành cần phải đánh giá. Một kỹ sư đọc bài so sánh STM32F103 vs GD32F103 theo cách này sẽ biết các phần giống nhau ở đâu, khác nhau ở đâu, và cách port cũng như chứng minh bản thay thế, và kiến thức đó biến MCU bị hạn chế nhất trên thị trường thành một board tiếp tục được sản xuất. Bài so sánh là bản đồ làm việc giữa linh kiện gốc và phương án thay thế, và bản đồ đó là lý do một thiết kế từng sử dụng STM32F103 không cần phải dừng lại khi STM32F103 ngừng sản xuất.

Bước tiếp theo

Xác định cụ thể dự án khách sạn của bạn cùng kỹ sư của chúng tôi

Gửi số phòng, loại trần và giao thức mong muốn của bạn. Chúng tôi sẽ gửi lại kế hoạch mẫu và báo giá trong vòng 24 giờ làm việc.

  • Chuyển từ hướng dẫn chung sang trao đổi sản phẩm hoặc ứng dụng cụ thể.
  • Sử dụng RFQ khi cần cấu trúc rõ ràng cho báo giá, bản vẽ, MOQ hoặc thời điểm ra mắt.
  • Giữ kênh liên hệ trực tiếp hiển thị để trao đổi nhanh và bàn giao.
Sẵn sàng cho RFQ

Chia sẻ yêu cầu sản phẩm của bạn và nhận bước tiếp theo khả thi

Gửi bản vẽ, số lượng dự kiến và tiến độ của bạn. Đội ngũ kỹ thuật kinh doanh của chúng tôi sẽ phản hồi trong vòng 24 giờ làm việc với bước tiếp theo khả thi, báo giá hoặc kế hoạch mẫu.

Gửi yêu cầu nhanh

Cho chúng tôi biết mã linh kiện, số lượng và tiến độ — phản hồi trong 24 giờ làm việc.

Danh sách mã linh kiện và số lượng rõ ràng giúp đội ngũ phản hồi trong một ngày làm việc với linh kiện tương ứng.