1. Giới thiệu vi điều khiển STM8 STM8 là một nền tảng lõi vi điều khiển 8 bit mạch mẽ của ST với rất nhiều ngoại vi phổ biến. Nó được sản xuất trên công nghệ 130 nm, được nhúng sẵn bộ nhớ để lưu dữ liệu khi không cung cấp điện (non-volatile memory). Nền tảng STM8 có 4 dòng chip như sau:
- STM8S là dòng vie điều khiển chính, đáp ứng với các nhu cầu thông dụng.
- STM8L là dòng vi điều khiển tiết kiệm năng lượng, thích hợp cho các ứng dụng dùng PIN, IoT,...
- STM8AF and STM8AL là dòng vi điều khiển dành cho các ứng dụng trong ngành công nghiệp ô tô. Mức độ ổn định cao nhất trong các dòng STM8.
Dòng vi điều khiển STM8 thông dụng ở Việt Nam là STM8S với các đại diện tiêu biểu là các chip STM8S003F3P6, STM8S103K3T6,... Sở dĩ có điều đó bởi giá thành của chúng rất thấp so với mặt bằng chung, nhưng sức mạnh và ngoại vi không hề thua kém và sự hỗ trợ của hãng rất nhiều. Ví dụ đối với STM8S003F3P6, thông số cấu hình cơ bản như sau:
Cấu hình STM8S003F3P6 Tốc độ clock tối đa | 16MHz | Ghi chú |
Clock | 16MHz | |
Flash | 8kB | |
RAM | 1kB | |
EEPROM | 128B | |
Timer ( PWM, CCP, WDT, ...) | 3(1x8+2x16) | |
UART, ADC (10bit), SPI, I2C, WDT, beep,... | | |
2. Công cụ lập trình, nạp code cho chip STM8 Để lập trình và tải code vào chip, chúng ta có thể sử dụng IDE của hãng ST hoặc của hãng thứ 3 ( IAR, ...)
Đối với IDE của ST, đầu tiên hãy tải bộ công cụ ST Toolset tại
đây. Sau khi cài đặt sẽ được bộ công cụ gồm STVD(ST Visual Develop) để viết chương trình, biên dịch thành mã máy (.hex) và STVP (ST Visual Programmer) để nạp chương trình cho chip. Tuy nhiên sử dụng công cụ này, chúng ta phải cài đặt tool chain (Cosmic,... ), việc này sẽ khá phức tạp đối với người sử dụng.
Để dễ dàng cho người mới nghiên cứu, Hien_techno xin giới thiệu IDE của hãng IAR dành cho STM8. Xin mời tải tại
đây. Sau khi tải về và cài đặt theo hướng dẫn là có thể sử dụng được ngay. Có thể tham khảo cách cài đặt full (.... ) trên các diễn đàn như codientu.org,....
Thư viện chuẩn cho STM8S xin vui lòng tải tại
đây. Tất cả các ví dụ mình trình bày sau đây đều sử dụng thư viện này. Và một điều lưu ý, chúng ta chỉ sử dụng thư viện chuẩn để thống nhất, tránh trường hợp rối rắm khi chắp vá như các code chia sẻ trên mạng.
3. Cách học STM8 đơn giản cho người mới tìm hiểu STM8 là vi điều khiển được hãng sản xuất hỗ trợ rất nhiều, đặc biệt là code mẫu, ví dụ, sơ đồ nguyên lý,... Đơn giản nhất đối với người mới nghiên cứu là học qua ví dụ. Vì hầu hết chip STM8 là dòng chip dán SMD nên dùng mạch in thủ công sẽ không phù hợp. Hơn nữa KIT phát riển do dòng này khá rẻ, đặc biệt các kit mini ra chân chỉ khoảng 30 đến 50k (xem tại đây).
Qua thực tế bản thân, Hien_techno đề xuất phương pháp học STM8 cho người mới nghiên cứu là: Mua KIT sẵn (có thể là KIT mini, STM8 - discovery,...), tải code mẫu của hãng, dùng trình biên dịch IAR. Các bài hướng dẫn tiếp theo, mình cũng sẽ thực hiện trên các nền tảng này mà thôi.
Trong các bài hướng dẫn tiếp theo, mình sẽ không nhắc tới cách lập project cho STM8 vì trong hỗ trợ của hãng đã có project mẫu rồi. Người sử dụng sẽ dựa vào mẫu sẵn đó mà cấu hình cho phù hợp.
Các bài viết sau đây dành cho người tự học STM8, mình sẽ sử dụng ví dụ, phân tích ví dụ để cho người đọc hiểu được cách cấu hình cho chíp hoạt động ( thạch anh nội, ngoại, tần số,...), cách cấu hình cho một ngoại vi và thao tác với ngoại vi đó, từ ngoại vi cơ bản như GPIO, UART, ADC, SPI,.... đến các ngoại vi bên ngoài như text LCD, GLCD, LED 7 đoạn, ma trận, bàn phím,..... Song song với đó là các bài bổ túc về ngôn ngữ lập trình như cấu trúc, phép toán so sánh, thao tác bit,....
Mời các bạn đón đọc và cho ý kiến dưới mục bình luận ở mỗi bài viết. Những ý kiến đóng góp của các bạn sẽ giúp mình khắc phục, cải tiến để giúp đỡ những người nghiên cứu về sau được dễ dàng hơn.
Xin chân thành cảm ơn!
Một số link trong bài viết và tài liệu cần có:
- Linh tải thư viện full cho STM8S: Tải
- Linh tải IDE IAR cho STM8 mới nhất: Tải
- Linh tải ST Toolset gồm STVD và STVP cho STM8: Tải