MCU là gì? MCU bao gồm CPU bên trong, Flash (hoặc EEROM), RAM và các ngoại vi như UART, SPI, I2C, GPIO …, đặc biệt là các loại ngắt và timers.
Không ai trong chúng ta có kinh nghiệm làm việc trên tất cả các MCU. Tùy theo nhu cầu, yêu cầu của project chúng ta làm và chọn một MCU phù hợp. Vì thế, lựa chọn MCU phù hợp để làm 1 Projtect mới hoàn toàn là bước đầu tiên để đến với thành công.
Sau đây là chia sẻ một số kinh nghiệm để hiện thực một ý tưởng trên một MCU mà bạn chưa từng làm bao giờ của thành viên hainguyen TRÊN diễn đàn Texas intrusments.
Yêu cầu: Trước hết bạn phải có kinh nghiệm thực hành trên một MCU, thường đối với sinh viên thì đó là 8051 hay PIC. Và tất nhiên là phải biết lập trình C.
1. Phải hiểu MCU là gì?
MCU bao gồm CPU bên trong, Flash (hoặc EEROM), RAM và các ngoại vi như UART, SPI, I2C, GPIO …, đặc biệt là các loại ngắt và timers. Chúng ta chỉ cần CPU, Flash, RAM là có thể làm một vài ứng dụng đơn giản như bộ đếm, cộng, trừ, nhân, chia bằng một hàm main() đơn giản và có thể chạy trên bất kì con MCU nào.
Khác nhau cơ bản giữa các MCU là các ngoại vi. Các bạn cứ nghĩ đơn giản việc hiện thực trên MCU cũng chỉ là read, write các thanh ghi và vùng nhớ. Chỉ có điều với MCU này thì chúng ta phải set giá trị khác, ở một địa chỉ khác so với MCU khác để điều khiển những gì mà ta muốn MCU làm.
2. Công cụ
Có 2 công cụ chúng ta cần quan tâm:
– Trình biên dịch: tốt nhất là dùng IDE mà nhà sản xuất MCU cung cấp trong examples
– Trình nạp và mạch nạp cho MCU: mỗi MCU sẽ có chương trình và mạch phù hợp.
3. Các ngoại vi.
Tuy các ứng dụng khác nhau mà ta cần sử dụng các ngoại vi khác nhau. Ngoại vi các MCU cơ bản là làm việc giống nhau, và là chuẩn giao tiếp cơ bản. Các bạn chỉ cần biết ngoại vi đó hoạt động ra sao là đủ, không cần thiết phải biết nó bao gồm thanh ghi gì, cài đặt ra sao vì mỗi MCU có cách set khác nhau.
Hiện nay, thì mỗi MCU đều có một bộ thư viện C giúp chúng ta có thể làm việc nhanh với các ngoại vi này mà không cần biết thanh ghi đó là gì, chúng ta chỉ biết cách gọi hàm với các thông số tương ứng mà chúng ta muốn ngoại vi hoạt động như thế nào.
Tất cả các ngoại vi đề có một trình tự để sử dụng như sau:
– Cài đặt các thông số: set clock cho bus, cấu hình (ví dụ như USART thì set baud rate, parity…)
– Sau đó là tiến hành giao tiếp dữ liệu với ngoại vi này.
Và tất cả cái này đều có examples, thư viện mà nhà cung cấp MCU đưa cho. Chúng ta chỉ việc tham khảo và copy, paste, modified những gì ta muốn.
4. Các ngắt, timers.
Cũng như các ngoại vi, nhưng chúng ta chỉ hiện thực một hàm xử lý khi ngắt xảy ra. Đọc datasheet và tham khảo exapmles là chúng ta biết phải làm thế nào? Trình tự sử dụng như sau:
– Cài đặt ngắt: đọc datasheet để biết rõ MCU hỗ trợ những gì và tiến hành setup
– Hiện thực hàm xử lý ngắt: Chúng ta phải làm gì khi ngắt xảy ra.
5. Giải thuật để hiện thực ý tưởng.
Đây là phần quan trọng nhất. Những gì chúng ta muốn MCU làm là ở đây, điều khiển MCU làm theo những gì chúng ta muốn.
Một số giải thuật mà chúng ta thường làm đó là:
– Quét LED, ma trận LED, hiện thị LED 7 đoạn,
– Giao tiếp LCD
– Keypad, buttons
– Điều khiển động cơ.
….
Tùy theo từng giải thuật mà chúng ta cần các ngoại vi khác nhau. Ví dụ như quét ma trận LED chúng ta có thể cần trợ giúp của timers, GPIOs, …
Giải thuật đơn giản là kết hợp các modules, ngoại vi để thực hiện một số công việc chúng ta muốn. Làm sau để các ngoại vi hoạt động nhịp nhàng, quản lý CPU cho các hoạt động ngoại vi.
Nguồn: Diendanti.com