Thiết kế mạch cho vi điều khiển là một việc làm không hề đơn giản đối với những người mới bắt đầu. Có thể bạn phải đọc hàng trăm trang datasheet và tài liệu thiết kế tham khảo, các sơ đồ mạch thiết kế mẫu, các chỉ dẫn layout để có thể hoàn thiện được thiết kế của mình một cách tốt nhất. Hướng dẫn này sẽ chỉ ra những điểm chung mà các bạn cần lưu ý khi thiết kế mạch vi điều khiển.
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
I/ Thiết kế nguồn
– Nguồn tuyến tính (linear) hay nguồn xung(switching): Đặc điểm của nguồn tuyến tính là ít nhiễu, điện áp đầu ra phẳng hơn, thiết kế mạch gọn và đơn giản hơn vì gần như chỉ cần tụ điện ở đầu vào và đầu ra, tuy nhiên về mặt hiệu suất thì nguồn tuyến tính có tổn hao lớn khi điện áp đầu vào cao hơn nhiều so với điện áp đầu ra. Ngược lại, nguồn switching có hiệu suất chuyển đổi cao hơn và bạn cũng có thể sử dụng để tăng áp nếu điện áp đầu vào bé hơn điện áp đầu ra, thường cho các ứng dụng dùng battery. (mạch buck: hạ áp, mạch boost: tăng áp), nhưng nguồn switching cũng có nhược điểm của nó, đó là gợn nhiễu nhiều hơn, mạch yêu cầu nhiều linh kiện đi kèm hơn và thiết kế mạch cũng tốn nhiều diện tích và phức tạp hơn.
– Bạn có thể xem xét dùng tụ có điện dung lớn để bù dòng tức thời trong 1 số trường hợp.
II/ Thiết kế mạch dao động
Vi điều khiển có thể sử dụng bộ dao động nội RC hoặc có thể sử dụng thạch anh ngoại. Việc lựa chọn thạch anh làm bộ dao động chính cho vi điều khiển là phổ biến, vì thạch anh là một linh kiện có độ ổn định cao, sai số rất bé. Việc lựa chọn thạch anh và các tụ đi kèm nhất thiết phải tuân thủ theo các khuyến nghị của hãng sản xuất, các bạn có thể tìm thấy thông tin trong datasheet. Khi layout phần này, các bạn nên đặt thạch anh càng gần vi điều khiển càng tốt, tổng chiều dài dây dẫn từ 2 chân vi điều khiển đến 2 chân thạch nên bằng nhau, chỉ đi dây trên 1 lớp, bố trí thạch anh xa những linh kiện hoặc những bộ phận có khả năng gây nhiễu.
III/ Thiết kế mạch reset
Trên các kit phát triển vi điều khiển thường có nút reset để khởi động lại chương trình, tuy nhiên nút reset mà bạn thấy chỉ thực hiện tính năng reset bằng tay. Còn chức năng reset tự động vi điều khiển mỗi khi cấp nguồn được thực hiện bởi mạch R – C đi kèm với nút bấm đó. Giá trị của điện trở và tụ điện trên mạch reset tự động cần tuân theo thông số của nhà sản xuất, các bạn có thể tìm thấy trong datasheet của vi điều khiển đang thiết kế hoặc các bạn có thể tham khảo từ các kit phát triển, mạch thực hành của vi điều khiển đó (nút bấm reset bằng tay có thể là không cần thiết trong một số dự án).
IV/ Thiết kế GPIO
Các chân GPIO của vi điều khiển có thể lập trình được, bạn có thể cấu hình nó là Input để đọc các giá trị điện áp bên ngoài hoặc Output để ghi ra các mức điện áp cao/thấp.
– Đối với chân Input các bạn có thể lưu ý đến việc bổ sung trở Pull-up hoặc Pull-down nếu vi điều khiển không hỗ trợ. Các bạn cũng nên lưu ý về việc điện áp input có vượt quá ngưỡng cho phép của vi điều khiển hay không, các mức logic của ngoại vi và vi điều khiển có khớp nhau hay không (ví dụ: 3.3v – 3.3v, 5v-5v.., các bạn có thể tham khảo thêm về dải điện áp High và Low trong datasheet của vi điều khiển và ngoại vi.
– Đối với chân Output, các bạn cần lưu ý đến dòng ra tải trên 1 chân hoặc tổng dòng trên 1Port là bao nhiêu, khuyến khích sử dụng các biện pháp đệm dòng như sử dụng BJT, FET, IC đệm, cách ly quang..
V/ Thiết kế các chuẩn giao tiếp ngoại vi
VI/ Thiết kế cổng nạp chương trình và debug
SWD và JTAG là 2 chuẩn nạp chương trình phổ biến hiện nay trên các vi điều khiển, ngoài ra còn hỗ trợ tính năng debug. Khi thiết kế các connector để nạp chương trình và debug cho vi điều khiển, các bạn nên lưu ý thứ tự chân cho đúng và vị trí đặt cổng kết nối đủ trống trải để các bạn có thể cắm thẳng mạch nạp/debugger vào.