Nạp bootloader, Arduino code cho dòng chíp thấp Atmega8/48/88 bằng IDE 1.8.7 và sử dụng chíp Atmega như một mạch Arduino hoàn chỉnh

Mô tả dự án: 

Trong bài này mình Nêu ra 2 vấn đề là:

  1. Nạp bootloader, Arduino code cho dòng chíp thấp Atmega8/48/88 bằng Arduino IDE 1.8.7 (phương pháp đơn giản và tiện lợi nhất) 
  2. Sử dụng chíp Atmega như một mạch Arduino hoàn chỉnh

 

 

Tiền đề

Sau khi đã hoàn chỉnh một dự án trên 1 board mach Arduino đôi khi lại muốn làm số lượng nhiều, thậm trí muốn thương mại hoá nó thì việc dùng nguyên 1 cái mạch arduino là không phù hợp và khá là "quê". Muốn pro hẳn thì làm trực tiếp trên MCU còn vẫn muốn dùng code và cả biển thư viện tiện lợi của Arduino thì mình xin hướng dẫn các bạn biến một chiếc Atmega thành một mạch arduino hoàn chỉnh. Thậm chí nếu sử dụng bộ dao động nội của Atmega thì bạn chẳng cần dùng thêm bất cứ 1 linh kiện nào khác ngoài con Atmega.

Trên Cộng đồng Arduino Việt Nam đã có hai bài hướng dẫn các bạn upload bootloader, và nạp code cho các dòng chíp Atemega, để hiểu rõ về bootloader các bạn tham khảo ở đây nhé:

Các phương pháp này đều dùng bản Arduino IDE đã cũ, 1.0.x (bản này mình còn ko chạy nổi trên win 10) và cách làm đỏi hỏi tháo tác chỉnh sửa trên file hệ thống (Board.txt). Bạn cũng không dễ để tùy chọn loại chip cũng như chọn tần số cho các chíp này. Nếu muốn chọn bạn phải tự tính toán và đặt Fuse trong Board.txt

Vậy nên ở đây mình giới thiệu 1 cách đơn giản hơn tiện lợi hơn.

Đặc điểm

  1. Áp dụng cho bản Arduino IDE mới nhất (mình đang dùng 1.8.7)
  2. Không cần chỉnh sửa các file hệ thống
  3. Hỗ trợ rất nhiều loại chip
  4. Tùy chọn loại chip, tần số xung (nội, ngoại) ngay trên menu của Arduino IDE
  5. Không bị lỗi vặt như các phương pháp cũ (ví dụ với phương pháp cũ mình add thư viện SoftwareSeirial cho chip Atmega8 là broken heart)

Mọi thông tin chi tiết các bạn có thể tham khảo giải pháp gốc của MiniCore ở đây:

https://github.com/MCUdude/MiniCore

Các dòng chíp hỗ trợ:

  • ATmega8
  • ATmega48
  • ATmega88
  • ATmega168
  • ATmega328

* Tất cả các dòng (A, P, PA and PB)

Tần số hỗ trợ:

  • 16 MHz external oscillator (default)
  • 20 MHz external oscillator
  • 18.432 MHz external oscillator *
  • 12 MHz external oscillator
  • 8 MHz external oscillator
  • 8 MHz internal oscillator **
  • 1 MHz internal oscillator

Mini Core dùng Bootloader là Optiboot cho các dòng Chíp bộ nhớ thấp nên phần Bootloader nạp vào chỉ khoảng 400B, và thời gian khởi động chíp cũng được tối ưu (gần như ngay lập tức)

Cài thư biện Board của MiniCore

  • Mở Arduino IDE.
  • Mở File > Preferences.
  • Nhập URL này vào mục Additional Boards Manager URLs:
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
  • Mở menu Tools > Board > Boards Manager... .
  • Đợi platform index tải xong.
  • Cuốn xuống dưới tìm mục MiniCore rồi nhấn vào.
  • Click Install.
  • Cài đặt xong thì đóng cái Boards Manager lại.

Vậy là bây giờ trong list Board của bạn, ở phần MiniCore đã có đủ các MCU Atmega dòng 8 bit rồi đấy.

Vậy là việc chính xong rồi đấy, đơn giản mà!

Nạp Bootloader và Arduino Code cho Chip Atmega

Bây giờ ta sẽ đấu mạch và upload bootloader cho các chip này (cái này mình nói lại cho các bạn đỡ phải tìm ở chỗ khác).

Ở đây mình sẽ lấy ví vụ về việc nạp Bootloader và Arduino Code cho chip Atmega8 dùng bộ giao động nội 8MHz. Với con chíp chỉ 15k này bạn có thể làm được ối việc hay ho rồi đấy!

Phương pháp dùng bo mạch chủ là Arduino Uno để nạp qua ISP.

Nạp bootloader

Bước 1: Lắp mạch như sau:

 

 

 

Bước 2: Nạp code arduino ISP cho mạch Aduino Uno

image

==> Ấn upload

 

Bước 3: Nạp bootloader cho chip Atmega8 chạy ở chế độ dùng thạch anh nội 8MHz

OK, vậy là nạp bootloader cho con Atmeag8 này xong rồi. Giờ chúng ta nạp code chương trình cho nó chạy thôi. 

 

Nạp code cho Atmega thông qua board UNO

Giữ nguyên mạch đấu dây như bên trên, vẫn chọn board là Atmega8 như trên, mở chương trình cần nạp (nhỏ hơn 7680B nhé), thay vì ấn Upload như mọi khi thì bạn ấn "Upload Using Programmer"

 

Vậy là xong rồi nhé! giờ bạn cấp nguồn cho ẻm Atmega8 này là nó chạy như 1 con Arduino rồi,

Bên trên là cách nạp Chương Trình qua ISP, các bạn vẫn có thể nạp qua UART bình thường nhé, vì nó có bootloader rồi! (chém vậy chứ chưa thử).

lên
5 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

ST7565 và ESP8266 - Màn hình LCD bự chà bá chưa đến 100k cho thế giới IoT

Mình rất thích LCD ST7565 này, và đã đặt liền 4 con mà mỗi con quá rẻ có 20k. Nhưng khổ một điều, điện áp hoạt động và IO của LCD ST7565 có 3.3V. Bản thân mình lại không thích việc chơi điện trở để chơi LCD này với Arduino. Lý do đơn giản là phải hàn quá nhiều, mình lại lười crying. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino.

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Thư viện ST7565 trên Arduino Create - Thử nghiệm đầu tiên: Hoàn hảo!

Mình rất tự hào và hãnh diện, khi thư viện made in Việt Nam đầu tiên của Thái Sơn (Nick Chung) được mình tải lên tại Arduino Create với mục đích thử nghiệm việc biên dịch code online trên Arduino Create đã hoàn thành công việc của nó ngay trong lần thử đầu tiên. Qua bài viết này, mình xin hướng dẫn các bạn lập trình Arduino với Arduino Create thông qua việc làm một ví dụ mẫu về việc cài thư viện và sử dụng nó trên Arduino Create.

lên
7 thành viên đã đánh giá bài viết này hữu ích.