Với nội dung đầu tiên, chúng ta sẽ tìm hiểu những khái niệm và ứng dụng về vi điều khiển, hệ thống nhúng, các dòng vi điều khiển STM32 hiện có trên thị trường. Mục tiêu bài viết này cung cấp cho các bạn những nhận định cơ bản về vi điều khiển, hệ thống nhúng; đồng thời có sự so sánh và lựa chọn vi điều khiển thích hợp cho các dự án sau này.

1. Vi điều khiển là gì ?

Vi điều khiển (microcontroller) là một hệ thống máy tính nhỏ gọn, thường được tích hợp vào một con chip duy nhất, chứa các thành phần cơ bản của một máy tính như bộ vi xử lý (CPU), bộ nhớ (RAM và ROM), các cổng vào/ra (I/O), và các thiết bị ngoại vi khác; Các thành phần này được đóng gói thành 1 con chip MCU (Microcontroller Unit). Trên thị trường hiện nay có nhiều loại vi điều khiển phù hợp cho nhiều ứng dụng khác nhau: 8051, PIC, AVR, ESP, Arduino, STM32, …

Vi điều khiển được thiết kế để thực hiện các tác vụ điều khiển và giám sát trong các hệ thống nhúng. Chúng thường được sử dụng trong các thiết bị điện tử tiêu dùng, ô tô, thiết bị y tế, hệ thống tự động hóa công nghiệp, và nhiều ứng dụng khác.

Hình 1. Kiến trúc vi điều khiển
Hình 2. Chip MCU đã đóng gói

2. Hệ thống nhúng là gì ?

2.1. Giới thiệu về hệ thống nhúng

Hệ thống nhúng (Embedded System) là một hệ thống máy tính chuyên dụng được thiết kế để thực hiện một hoặc một vài chức năng cụ thể trong một hệ thống lớn hơn. Hệ thống nhúng thường được tích hợp vào các thiết bị khác và hoạt động như một phần của thiết bị đó.

Những điểm đáng chú ý của Hệ thống nhúng:

Advantages:

Disadvantages:

Hình 3. Ví dụ sơ đồ cấu trúc hệ thống nhúng

2.2. Một số ứng dụng của hệ thống nhúng

Hệ thống nhúng có rất nhiều ứng dụng trong đời sống và công nghiệp nhờ tính chuyên dụng, hiệu suất cao và khả năng tiết kiệm năng lượng của chúng. Hãy cùng nhau theo dõi một vài ứng dụng của hệ thống nhúng trong đời sống được trình bày tại phần này nhé.

Hình 4. Một số ứng dụng của hệ thống nhúng

Transportations

Hiện nay, hệ thống nhúng có rất nhiều ứng dụng trong lĩnh vực giao thông, từ việc hỗ trợ lái, đảm bảo an toàn cho người tham gia giao thông, quản lý và điều khiển phương tiện cá nhân đến hệ thống quản lý giao thông đô thị. Một số ứng dụng phổ biến có thể kể đến như:

Hình 5. Ứng dụng hệ thống nhúng trên phương tiện giao thông

Smart home

Ứng dụng hệ thống nhúng trong nhà thông minh (smart home) mang lại nhiều tiện ích và cải thiện chất lượng cuộc sống của con người. Một số ứng dụng phổ biến của hệ thống nhúng với dự án smart home có thể kể đến như:

Hình 6. Ứng dụng hệ thống nhúng trong smart home

Health care

Hệ thống nhúng trong chăm sóc sức khỏe giúp nâng cao chất lượng dịch vụ y tế, cải thiện hiệu quả điều trị và quản lý bệnh nhân, đồng thời giảm thiểu chi phí và thời gian cho cả bệnh nhân và nhân viên y tế. Một số ứng dụng tiêu biểu của hệ thống nhúng trong y tế có thể kể đến như:

Hình 7. Ứng dụng hệ thống nhúng trong chăm sóc y tế
Hình 8. Ứng dụng hệ thống nhúng trong trái tim nhân tạo

3. Giới thiệu về dòng vi điều khiển STM32

3.1. Tại sao phải là STM32 ?

Trên thị trường hiện tại, có rất nhiều dòng vi điều khiển với giá cả, hiệu năng. Vậy, tại sao chúng ta nên sử dụng STM32. Hãy cùng so sánh STM32 với một số dòng vi điều khiển khác trên thị trường để đánh giá ưu điểm của nó.

Khi so sánh lựa chọn STM32 hay một dòng vi điều khác sẽ phụ thuộc vào nhiều yếu tố. Các ứng dụng không yêu cầu sử dụng thư viện nâng cao có thể được triển khai hiệu quả bằng cách sử dụng bo xử lí đơn giản hơn với tần số hoạt động và chi phí thấp hơn. Tuy nhiên, các ứng dụng yêu cầu một loạt các thao tác nâng cao thường sẽ yêu cầu một thứ gì đó phức tạp hơn một chút, tức là nền tảng dựa trên ARM như STM32.

Hình 9. STM32F103C8T6

STM32 là một bộ vi điều khiển từ STMicroelectronics. Bạn có thể lập trình MCU STM32 với nhiều IDE khác nhau (môi trường phát triển phần mềm). Hầu hết các IDE tương thích STM32 đồng thời có nhiều tính năng và đem đến nhiều tiện ích hơn.

STM32 là dòng chip 32bit của hãng STMicroelectronics sử dụng công nghệ lõi ARM Cortex mạnh mẽ, hiệu năng tốt nhưng vẫn giữ được giá thành rẻ. Phù hợp với đa số các công ty hiện nay

Các lý do nên chọn STM32 đó là:

Hình 10. Các phiên bản bo mạch vi điều khiển STM32

3.2. Giới thiệu một số phiên bản STM32 thông dụng

Một số phiên bản STM32 phổ biến hiện nay có thể kể đến như STM32 RECOVERY STM32 NUCLEO, STM32 EVAL, STM32F103C8T6 (BLUE PILL), …

STM32 DICOVERY

STM32 discovery kits cung cấp các giải pháp hoàn chỉnh và giá cả phải chăng để đánh giá các tính năng dành riêng cho ứng dụng của MCU và MPU STM32.

Các công cụ phần cứng này cho phép thiết kế và tùy chỉnh theo mô-đun nhờ các đầu nối mở rộng cho phép truy cập vào hầu hết các I/O của thiết bị. Một số STM32 discovery kits đi kèm với các tính năng dành riêng cho ứng dụng. Chúng cũng tích hợp các trình gỡ lỗi và lập trình viên tích hợp, khiến chúng trở nên lý tưởng cho việc tạo nguyên mẫu và đánh giá dự án.

STM32 discovery kits đi kèm với các ví dụ phần mềm toàn diện, cho phép các nhà phát triển tận dụng các tính năng và lợi ích của thiết bị.

Hình 11. STM32 RECOVERY

STM32 NUCLEO

Bảng Nucleo STM32 có giá cả phải chăng cho phép mọi người thử nghiệm những ý tưởng mới và tạo nguyên mẫu một cách nhanh chóng với bất kỳ MCU STM32 nào.

Chia sẻ cùng một đầu nối, bo mạch Nucleo STM32 có thể dễ dàng được mở rộng với nhiều tiện ích bổ sung phần cứng ứng dụng chuyên dụng; Nucleo-64 bao gồm đầu nối Arduino Uno rev3 & ST morpho, Nucleo-32 bao gồm đầu nối Arduino Nano). Bảng Nucleo STM32 tích hợp trình gỡ lỗi/lập trình STLINK, loại bỏ nhu cầu sử dụng đầu dò riêng.

Hình 12. Board STM32 Nucleo

STM32 EVAL

STM32 EVAL đã được thiết kế như một nền tảng phát triển hoàn chỉnh cho MCU và MPU STM32.

Chúng mang theo mạch bên ngoài, chẳng hạn như bộ thu phát, cảm biến, giao diện bộ nhớ, màn hình và nhiều thứ khác. Các phiên bản STM32 EVAL có thể được coi là một thiết kế tham khảo để phát triển ứng dụng.

Hình 13. STM32F769I EVAL

STM32F103C8T6 (BLUE PILL)

Blue Pill sử dụng chip STM32F103C8T6 là một dòng chip phổ thông nhất của STM, có đầy đủ các ngoại vi cơ bản, bộ nhớ vừa đủ và giá thành rẻ, rất phù hợp với những người mới bắt đầu.

Thông số của KIT STM32F103C8T6 Blue Pill như sau:

Hình 14. Sơ đồ chân STM32F103C8T6

Tài liệu Hướng dẫn sử dụng của STM32F103C8T6

Đây là tài liệu chính thức của STM32 cho các dòng chip F1xx, hướng dẫn sử dụng của hãng.

Cấu trúc của Reference Manual thường chia ra là 4 phần chính

Bạn cần đọc kĩ nhất tại 2 phần: main features và features description đây là 2 phần quan trọng nhất, trong đó sẽ hướng dẫn các bạn làm việc với ngoại vi đó theo từng chức năng.

Còn Registers sẽ cần thiết khi bạn lập trình trực tiếp trên thanh ghi, với cubemx phần thanh ghi sẽ được code sẵn trong thư viện, việc bạn cần học là sử dụng các hàm của thư viện đó nên không cần quan tâm quá nhiều đến phần này. Link: https://www.st.com/resource/en/reference_manual/rm0008-stm32f101xxstm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advancedarmbased-32bit-mcus-stmicroelectronics.pdf

STM32F103C8T6 Datasheet

Trong datasheet sẽ mô tả các ngoại vi của STM32F103C8T6 và số lượng của chúng trong Chip. Link: https://www.st.com/resource/en/datasheet/stm32f103c8.pdf

Mạch gỡ lỗi STLINK

Khi lập trình nhúng với STM32, ngoại trừ một số phiên bản như DISCOVERY, EVAL, NUCLEO chính hãng đã có sẵn Mạch gỡ lỗi trên mạch, trên thị trường sẽ có những mạch STM32 là OEM hay các phiên bản khác cần phải kết nối với Bootloader để tiến hành nạp và sửa lỗi cho Vi điều khiển STM32. Phổ biến nhất có thể kể đến STLINK.

STLINK là một bộ gỡ lỗi và nạp chương trình trong mạch cho các vi điều khiển STM8 và STM32. Giao diện module truyền dẫn đơn dây (SWIM) và giao diện gỡ lỗi dây nối chuỗi JTAG/serial (SWD) được sử dụng để giao tiếp với bất kỳ vi điều khiển STM8 hoặc STM32 nào.

Hình 15. STLINK-V3 chính hãng
Hình 16. Mạch nạp giá rẻ
Hình 17. Kết nối mạch nạp với STM32F103C8T6

Lời kết

Nội dung trên, hi vọng bạn đọc hiểu rõ về các khái niệm liên quan đến vi điều khiển, hệ thống nhúng, các ứng dụng cơ bản của hệ thống nhúng, các dòng vi điều khiển STM32 và biết cách chọn lựa một vi điều khiển phù hợp cho các dự án sau này của mình. Ở bài viết số tiếp theo, chúng mình sẽ làm quen với các công cụ, hệ sinh thái của STM32, bước đầu setup cho việc lập trình ứng dụng.

Thực hiện bài viết: Nguyễn Hoàng Đăng Khoa, Nguyễn Hoàng Quốc Cường