Hướng dẫn thiết kế mạch vi điều khiển đơn giản

Hướng dẫn thiết kế mạch vi điều khiển đơn giản


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.

Trước khi bắt đầu thiết kế sơ đồ mạch, bạn nên vẽ sơ đồ khối hiển thị các phần chính của dự án, bao gồm phần nguồn và tất cả các ngoại vi sẽ giao tiếp với vi điều khiển, các bạn có thể sử dụng công cụ PowerPoint hoặc Draw.io để làm việc này. 

I) Thiết kế nguồn

Thiết kế nguồn được xem là một trong những phần quan trọng nhất trong thiết kế phần cứng vì nó góp phần quyết định đến độ ổn định và tuổi thọ của sản phẩm. Tham khảo các gợi ý sau sẽ giúp bạn thiết kế tốt hơn phần này:
– 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.
– Ước lượng dòng tiêu thụ của mạch: Bạn có thể tính toán, ước lượng gần chính xác dòng tiêu thụ của toàn mạch hay nói cách khác là dòng tối thiểu mà mạch nguồn có thể cung cấp được bằng cách ước lượng dòng tiêu thụ của các linh kiện ngoại vi thông qua datasheet. Đối với vi điều khiển, bạn có thể ước lượng bằng tần số hoạt động và tải trên các chân I/O.
– Tại chân VDD của vi điều khiển nên có tụ gốm 1uF và 100nF đặt gần chân vi điều khiển nhất có thể để loại bỏ nhiễu từ nguồn cung cấp
– Dự án của bạn có sử dụng tính năng ADC và vi điều khiển bạn chọn có chân nguồn cung cấp riêng cho bộ ADC (VDDA) thì bạn nên chọn IC nguồn tuyến tính cho toàn mạch hoặc thiết kế riêng phần nguồn với IC nguồn tuyến tính cho bộ ADC, đồng thời bạn nên đặt tụ gốm 1uF và 10nF càng sát chân VDDA càng tốt.

Vi điều khiển stm32f103c8t6 có chân cung cấp nguồn riêng cho bộ ADC

– Bạn nên lưu ý thêm về drop voltage ( Vdrop = Vin_min – Vout : là điện áp đầu vào tối thiểu để có đầu ra đúng và ổn định) trong các ứng dụng có điện áp đầu vào thay đổi như sử dụng ác-quy, battery…
– 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).

Ví dụ giá trị R – C trên mạch reset của một số vi điều khiển phổ biế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í dụ đơn giản về việc sử dụng ic đệm ULN2803A để điều khiển relay

V) Thiết kế các chuẩn giao tiếp ngoại vi

Việc thiết kế các chuẩn giao tiếp như UART, I2C, SPI cần tuân thủ theo đúng điện áp giao tiếp giữa các thiết bị giao tiếp với nhau, và theo hướng dẫn thiết kế đối với mỗi thiết bị, các bạn có thể xem xét thêm trở bảo vệ, trở kéo, mạch chuyển đổi logic.

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.

VII) Thiết kế các test-point

Test-point là những điểm mà bạn muốn đo đạt, kiểm tra trong mạch của mình, có thể là nguồn, các chân I/O, các chân giao tiếp… Nên đặt test-point dễ kiểm tra, đo đạt và tránh các sự cố đáng tiếc khi bạn đo trực tiếp tại vị chân linh kiện, chân vi điều khiển quá sát nhau.

Trên là một số hướng dẫn, gợi ý nhỏ để các bạn có thể thiết kế được một mạch vi điều khiển đơn giản phục vụ cho việc học tập, làm đồ án, đề tài nghiên cứu, mẫu thử…

(Nhóm TAPIT – HW - tapit.vn)

Bình Luận
Cùng danh mục: Vi điều khiển - Lập trình

Thiết kế mạch chống nhiễu cho Vi điều khiển (Chíp lập trình hoặc IC)

05/05/2022 06:05:35 / Lượt xem: 369 / Người đăng: biendt

Có mấy phương pháp cho mạch chống nhiễu vi điều khiển : .Sử dụng cách ly quang: để cách ly giữa tín hiệu điều khiển từ VĐK xuất ra và mạch công suất 220v.Sử dụng mạch snubber khi điều khiển tải bằng relay.Sử dụng linh kiện điện tử chính hãng...Sử dụng mạch lọc nguồn AC 220v trước khi cấp cho bộ nguồn 5V nuôi VĐK...Chống nhiễu khi viết code

Ứng dụng vi điều khiển AT89S52 đếm và đặt trước vòng quay từ 0-99 cho máy quấn băng keo máy biến áp xung

21/02/2018 21:32:46 / Lượt xem: 2293 / Người đăng: Nguyễn Thế Trọng Nhân

Đây là bài mô phỏng vi điều khiển AT89S52 đếm và cài đặt vòng quay cho mô tơ hiển thị trên 2 led 7 vach từ 00-99. Áp dụng cho máy quấn keo biến áp xung

Chia sẻ đèn giao thông ngã tư PIC16F877A CCS

24/09/2016 16:09:11 / Lượt xem: 7551 / Người đăng: lam3ngon

Chào các bạn trong bài đăng trước mình đã hướng dẫn các bạn về đèn giao thông ngã tư nhưng là chạy 1 cách tư động nên trong bài này hướng dẫn các bạn điều khiển bằng nút nhấn nha !

BÀI 4 : Mô phỏng PIC16F877A (XC8) giao tiếp với nút nhấn

25/05/2016 20:50:22 / Lượt xem: 7144 / Người đăng: lam3ngon

Nói về nút nhấn (button) thì có lẽ chúng ta đã quá quen với nó rồi thậm chí chúng ta chúng ta còn tiếp xúc với nó hằng ngày nữa, ví dụ như : bàn phím máy tính, các thiết bị điều khiển tivi, máy điều hòa…..

Mô phỏng hiệu ứng 8 LED đơn với PIC16F877A XC8 (P2)

18/05/2016 15:37:21 / Lượt xem: 9520 / Người đăng: lam3ngon

Chào các bạn trong bài đăng này mình sẽ hướng dẫn các bạn tăng mức độ khó của PORJECT lên khó hơn 1 tý so với bài đăng trước nếu như bài đăng trước chúng ta chỉ dùng lại ở việc chớp tắt LED và sáng xen kẻ thì trong bài đăng này mình sẽ giới thiệu với các bạn về Đuổi LED (Chaser LED), sáng dồn, dịch trái, dịch phải, sáng dần, tắt dần…