Board STM32 BluePill là một Board mạch phát triển STM32 đơn giản với vi điều khiển STM32F103C8T6. Board mạch này không phải chính hãng của STMicroelectronics, sử dụng kèm với một mạch nạp/debugger ST-Link. Có giá thành rẻ nên thường được các bạn sinh viên lựa chọn khi mới bắt đầu học/tìm hiểu về dòng vi điều khiển STM32 lõi ARM. Tuy nhiên, trên thị trường hiện nay có xuất hiện nhiều board mạch này được thiết kế sử dụng chip fake. Bài viết này sẽ trình bày các vấn đề gặp phải và cách khắc phục giúp các bạn có thể sử dụng STM32CubeIDE để lập trình, debug được board mạch STM32F103 BluePill.Continue Reading

Trong chuỗi bài viết hướng dẫn cập nhật chương trình từ xa (FOTA) cho dòng vi điều khiển STM32F103, mình đã trình bày tổng quan về mô hình FOTA ở phần 1, cách viết chương trình Bootloader ở phần 2, và giải thích về cấu trúc của một file chương trình IntelContinue Reading

Để sử dụng tính năng FOTA, bộ nhớ chương trình trong STM32F103RCT6 sẽ chia làm 4 chương trình chính tại 4 vị trí khác nhau là: Bootloader Firmware, FOTA Firmware, Factory Firmware và Current Firmware. Trong đó, FOTA Firmware có nhiệm vụ thực hiện việc cập nhật chương trình bằng cách kết nối và tải chương trình mới từ server về và lưu vào bộ nhớ flash để thay đổi Current Firmware cho cho thiết bị. Bài viết này sẽ phân tích và hướng dẫn các bạn viết chương trình cho FOTA Firmware.Continue Reading

Hệ sinh thái STM32Cube là một giải pháp phần mềm hoàn chỉnh cho các dòng vi điều khiển STM32 và các dòng vi xử lý. Hệ sinh thái này dành cho những người dùng đang tìm kiếm một môi trường phát triển đầy đủ và miễn phí cho STM32, cũng như dành cho những người đang sử dụng một số IDE khác như KeilC hoặc IAR. Trong hệ sinh thái này có sự tích hợp của các thành phần gồm STM32CubeMX, STMCubeProgrammer và STM32CubeMonitor.Continue Reading

File firmware định dạng hex là một tập tin chứa nội dung chương trình cùng các thông tin chỉ dẫn với 6 loại HEX record khác nhau theo định dạng Intel HEX. Mỗi record sẽ bao gồm nhiều ký tự ASCII biểu diễn các giá trị theo mã hexadecimal. Trong quá trình FOTA, từ File Intel HEX chúng ta phải tách nội dung chương trình ra và lưu vào bộ nhớ flash của vi điều khiển theo các chỉ dẫn địa chỉ đi kèm trong file.Continue Reading

Nhiệm vụ của chương trình Bootloader là kiểm tra các điều kiện để lựa chọn thực thi một trong các chương trình: FOTA, Factory Firmware hoặc Current Firmware mỗi khi CPU reset. Vị trí của chương trình Bootloader thường được bắt đầu tại địa chỉ đầu tiên của bộ nhớ Flash, đây là địa chỉ mặc định sẽ được CPU thực thi sau khi reset. Với dòng vi điều khiển STM32 thì vị trí bắt đầu của bộ nhớ Flash là 0x0800 0000.Continue Reading

Có bao giờ bạn thắc mắc làm thế nào mà có thể tự động cập nhật chương trình cho một thiết bị nhúng, thiết bị IoT mà không cần tốn công cắm dây để nạp chương trình như thông thường chưa? Bài viết này trong chuỗi hướng dẫn cập nhật chương trình từ xa trên vi điều khiển STM32 sẽ giới thiệu tổng quan về tính năng Firmware Over The Air (hay còn gọi là FOTA), đồng thời sẽ hướng dẫn cách tổ chức lưu trữ chương trình trên vi điều khiển STM32F103RCT6 lõi ARM Cortex M3 để có thể áp dụng FOTA. Nếu bạn sử dụng một vi điều khiển lõi ARM khác thì cũng có thể tham khảo được chuỗi bài viết này để áp dụng FOTA. Continue Reading