AI Edge là một hướng nghiên cứu tìm năng với rất nhiều ứng dụng trong các lĩnh vực khác nhau. Tuy nhiên, việc thiết kế và nhúng mô hình trí tuệ nhân tạo lên các thiết bị edge như các vi điều khiển là một quá trình phức tạp với những người mới bắt đầu. Quá trình này phuộc thuộc sâu vào phần cứng, và các thư viện, phần mềm hỗ trợ và yêu cầu các kiến thức cả về Trí tuệ nhân tạo, xử lý tín hiệu số và các kiến thức về hệ thống nhúng như vi điều khiển, vi xử lý.Continue Reading

X-CUBE-AI là gói phần mềm mở rộng thuộc hệ sinh thái STM32Cube.AI được thiết kế để tích hợp vào STM32CubeMX với tính năng chính là tự động chuyển đổi mô hình trí tuệ nhân tạo đã được huấn luyện trước để tạo thành thư viện code được thêm sẵn vào project STM32. Các bạn chỉ cần gọi sử dụng các hàm (API) từ thư viện vào chương trình chính của vi điều khiển để thực thi. Bên cạnh đó, gói phần mềm mở rộng X-CUBE-AI cũng bao gồm tính năng xác thực các mô hình mạng nơ-ron nhân tạo trên cả máy tính và vi điều khiển STM32, cũng như đo lường các thông số hiệu suất trên các thiết bị STM32 từ phần mềm mà không cần người phát triển phải tích hợp thêm các mã chương trình chạy trên vi điều khiển để đo lường một cách thủ công.Continue Reading

Hiện nay hãng ST đã cung cấp các giải pháp và công cụ giúp chúng ta có thể thực thi các mô hình trí tuệ nhân tạo đã được huấn luyện trước lên các dòng vi điều khiển STM32. Việc sử dụng sức mạnh của trí tuệ nhân tạo có thể giúp các bạn nâng cao hiệu suất xử lý tín hiệu, tăng hiệu năng và có thể làm giảm năng lượng tiêu thụ cho các ứng dụng sử dụng vi điều khiển STM32. Trong bài viết này, mình sẽ giới thiệu về các bước để có thể triển khai mô hình trí tuệ nhân tạo lên vi điều khiển STM32.Continue Reading

Việc truyền nhận dữ liệu không dây sử dụng sóng RF LoRa từ các module LoRa như RFM95 trong các ứng dụng point – to – point được xem là các giải pháp LoRa. Trong bài viết này, mình sẽ hướng dẫn các bạn giao tiếp giữa vi điều khiển STM32 và module RFM95 để thực hiện một giải pháp LoRa.Continue Reading

Tiếp nối với bài chia sẻ về lý thuyết chuẩn giao tiếp SPI, trong bài viết này mình sẽ giới thiệu đến các bạn màn hình LCD Nokia 5110 – một thiết bị ngoại vi giao tiếp với vi điều khiển bằng giao thức SPI. Các bạn có thể lựa chọn sử dụng LCD Nokia 5110 để hiển thị các kí tự, kí hiệu, hình ảnh bên cạnh giải pháp sử dụng màn hình hiển thị các kí tự LCD 1602. Và bài viết này cũng sẽ cung cấp cho các bạn các hướng dẫn thực hành sử dụng thư viện để vi điều khiển STM32 giao tiếp, điều khiển LCD Nokia 5110 hiển thị dữ liệu. Continue Reading

Thông qua các giai đoạn của quá trình biên dịch, chương trình ứng dụng được người dùng phát triển trên ngôn ngữ bậc cao như C/C++ sẽ được chuyển thành ngôn ngữ máy để thiết bị nhúng có thể hiểu và thực thi được. Chương trình ứng dụng sẽ được truyền thành từng chuỗi byte sau khi nó được chuyển thành định dạng tập tin phổ biến như *.hex hoặc *.bin từ các ngôn ngữ lập trình thường sử dụng khi lập trình nhúng như C/C++. Chuỗi byte này có liên quan tới địa chỉ bộ nhớ của vi điều khiển.  Có thể nạp hay thay đổi chương trình đang chạy trên thiết bị bằng cách cắm dây nạp trực tiếp từ máy tính xuống thiết bị thông qua các mạch nạp (programmer).  Trong trường hợp các thiết bị nhúng hỗ trợ cập nhật chương trình từ xa thì tập tin chương trình từ máy chủ quản lý dữ liệu sẽ được tải xuống thiết bị nhúng thông qua môi trường Internet và được ghi vào bộ nhớ. Bài viết này sẽ phân tích định dạng của tập tin chương trình ở định dạng HEX và tập tin chương trình ở định dạng BIN. Việc hiểu được định dạng các tập tin giúp các bạn có thể triển khai các tính năng như cập nhật chương trình từ xa (FOTA) hoặc có thay đổi chương trình ứng dụng thông qua một chuẩn giao tiếp phổ biến như UART (In-Application Programming – IAP) mà không cần sử dụng mạch nạp để ghi trực tiếp chương trình vào bộ nhớ . Continue Reading

Thiết kế của vi xử lý ARM Cortex M3/4 định nghĩa và phân chia các vùng nhớ khác nhau trong không gian bộ nhớ của vi xử lý. Sau đó, các hãng vi điều khiển như STMicroelectronics sẽ thiết kế các bộ nhớ khác nhau của họ như bộ nhớ FLASH, bộ nhớ SRAM và các ngoại vi khác nhau như ADC, TIMER, USB… vào các vùng nhớ tương ứng với không gian bộ nhớ của vi xử lý.Continue Reading

Dòng vi xử lý ARM Cortex M là một dòng vi xử lý được thiết kế tối ưu cho giá thành và năng lượng tiêu thụ của vi điều khiển, được sử dụng trong rất nhiều ứng dụng nhúng khác nhau. Trong bài viết này, mình sẽ cung cấp một số thông tin về Vi xử lý ARM Cortex M, quá trình khởi động của các vi điều khiển được thiết kế dựa trên vi xử lý này và việc áp dụng các kiến thức trên để thiết kế tính năng cập nhật chương trình từ xa.  Continue Reading

Có hai cách để MCU trao đổi dữ liệu với các thiết bị bên ngoài, đó là truyền dữ liệu nối tiếp và song song. Đối với kênh truyền nối tiếp, một số giao thức chúng ta thường sử dụng: SPI, I2C và UART. Bài viết này sẽ giúp các bạn hiểu rõ về chuẩn giao tiếp SPI và hướng dẫn các bạn giao tiếp SPI với STM32F4.Continue Reading