Tìm hiểu về phần cứng của board mạch Arduino Uno R3

Arduino Uno R3: Board mạch vi điều khiển được sử dụng phổ biến để học và làm các ứng dụng nhúng đơn giản. Với thư viện hỗ trợ đầy đủ và cộng đồng người dùng đông đảo, Arduino là sự lựa chọn lý tưởng cho những người mới bắt đầu. Tuy nhiên, ít có bài viết nói về phần cứng của board Arduino cho những người chưa quen. Hiểu rõ về phần cứng sẽ giúp bạn tự thiết kế sản phẩm từ vi điều khiển và các linh kiện riêng, mà không cần sử dụng nguyên board Arduino. Đây có thể là bước quan trọng giúp bạn phát triển khả năng hơn.

Phần 1: Thiết kế nguồn
Phần nguồn của board mạch Arduino có các chức năng sau:

  • Lựa chọn nguồn cung cấp. Board Arduino có thể được cấp nguồn bằng Adapter qua Jack DC hoặc từ cổng USB. Nếu chỉ có một nguồn cung cấp, board Arduino sẽ sử dụng nguồn đó. Trong trường hợp có cả hai nguồn, Arduino ưu tiên nguồn từ Jack DC. OpAmp trong IC LMV358 và MOSFET FDN340P sẽ quyết định lựa chọn nguồn. Điện áp từ Jack DC sau khi qua diode bảo vệ được gọi là điện áp VIN. Điện áp VIN qua cầu phân áp để tạo điện áp VIN/2 để so sánh với điện áp 3.3V. Vì VIN/2 > 3.3V, điện áp đầu ra của OpAmp là 5V, điều này làm cho MOSFET không được kích, Arduino sẽ sử dụng nguồn từ Jack DC sau khi qua ổn áp.
  • Tạo ra các điện áp 5V và 3.3V để cung cấp cho vi điều khiển và các thiết bị ngoại vi khác. Mạch Arduino sử dụng IC ổn áp NCP1117 để tạo điện áp 5V và IC ổn áp LP2985 để tạo điện áp 3.3V. Đây là những IC ổn áp tuyến tính đơn giản và ít gây nhiễu.
  • Bảo vệ ngược nguồn và quá tải. F1 là một cầu chì tự phục hồi, giới hạn dòng tiêu thụ không quá 500mA khi sử dụng cấp nguồn qua dây cáp USB. D1 là một diode, chỉ cho dòng điện 1 chiều chạy qua từ Jack DC vào mạch.

Phần 2: Thiết kế mạch dao động
Mạch giao động tạo xung clock giúp vi điều khiển hoạt động. Arduino Uno R3 sử dụng thạch anh 16Mhz để tạo nguồn dao động.

Phần 3: Thiết kế mạch reset
Mạch reset của Arduino Uno R3 đảm bảo hai chức năng sau:

  • Reset bằng tay: Khi nhấn nút, chân RESET được nối với GND, làm cho vi điều khiển reset. Khi không nhấn nút, chân reset được kéo lên 5V.
  • Reset tự động: Reset tự động được thực hiện khi cấp nguồn cho vi điều khiển. Điện trở nối lên nguồn và tụ điện nối đất tạo thời gian nạp giúp vi điều khiển ở mức LOW trong khoảng thời gian cần thiết để reset. Điều này giúp vi điều khiển khởi động trước khi nạp chương trình mới.

Phần 4: Thiết kế mạch nạp và giao tiếp máy tính

  • Vi điều khiển Atmega328P trên Arduino Uno R3 đã được nạp bootloader, cho phép nhận chương trình mới thông qua chuẩn giao tiếp UART (chân 0 và 1) trong những giây đầu sau khi reset.
  • Máy tính giao tiếp với Arduino thông qua chuẩn giao tiếp USB (D+/D-). Vi điều khiển trung gian ATMEGA16U2 hoặc IC trung gian CH340 chuyển đổi chuẩn giao tiếp USB thành chuẩn giao tiếp UART để nạp chương trình và truyền nhận dữ liệu với máy tính.
  • Mạch nạp có tích hợp 2 đèn LED, giúp bạn theo dõi quá trình nạp chương trình và giao tiếp với máy tính. Đèn RX nháy khi có dữ liệu từ máy tính gửi xuống, và đèn TX nháy khi có dữ liệu từ vi điều khiển gửi lên máy tính.

Đây là một số phân tích đơn giản về phần cứng của board mạch Arduino Uno R3. Nếu có thắc mắc hoặc góp ý, hãy để lại bình luận. Chúc bạn thành công!

TAPIT – HW