Mục lục:
Video: Lập trình ATTiny85, ATTiny84 và ATMega328P: Arduino As ISP: 9 bước (có Hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Lời tựa
Gần đây, tôi đang phát triển một vài dự án IoT dựa trên ESP8266 và nhận thấy bộ xử lý lõi đang gặp khó khăn trong việc thực hiện tất cả các tác vụ mà tôi cần nó để quản lý, vì vậy tôi quyết định phân phối một số hoạt động ít quan trọng hơn cho (các) bộ vi điều khiển khác trong theo cách này, giải phóng ESP8266 để bắt đầu công việc trở thành một thiết bị IoT.
Do tôi muốn xuất bản dự án của mình cho càng nhiều khán giả càng tốt, tôi đã chọn sử dụng Arduino IDE làm nền tảng phát triển được lựa chọn vì nó có một cộng đồng được hỗ trợ rộng rãi.
Các ràng buộc về thiết kế
Để cung cấp phạm vi hợp lý của các thiết bị mục tiêu cho phép lựa chọn một bộ vi điều khiển thích hợp cho ứng dụng trong tầm tay, tôi đã giải quyết các phần Atmel sau đây; ATMega328P, ATTiny84 và ATTiny85. Để hạn chế sự phức tạp của trình lập trình cần thiết, tôi đã hạn chế lựa chọn xung nhịp trong cho tất cả các thiết bị và 16MHz bên ngoài chỉ dành cho ATMega328P và ATTiny84.
Sau đây là tập hợp các ghi chú về lập trình với Arduino và mô tả về cách tôi kết hợp một lập trình viên đơn giản dựa trên Arduino Uno cho các thiết bị này (Ảnh trên).
Tôi cần những bộ phận nào?
Để xây dựng trình lập trình, bạn sẽ yêu cầu các phần sau
- 1 tắt Arduino Uno
- 2 tắt 28 chân cắm Zero Insertion Force (ZIF) DIP (để giữ ATMega328P, ATTiny85, ATTiny84)
- 1 lá chắn nguyên mẫu của Arduino (Tôi lấy ở đây;
- 2 đèn LED 5MM tắt
- 2 tắt điện trở 1K
- 1 tắt 10K điện trở
- 4 tắt tụ gốm 22pF
- 2 tinh thể 16MHz tắt
- 3 tắt tụ gốm 0,1uF
- 1 tắt Tụ điện 47uF
- 1 tắt Tụ điện 10uF
- Dây quấn có độ dài khác nhau.
Tôi cần phần mềm nào?
Arduino IDE 1.6.9
Tôi cần những kỹ năng gì?
- Kiến thức về Arduino IDE
- Một số kiến thức về điện tử và cách hàn
- Rất nhiều kỹ năng thủ công
- Một lòng kiên nhẫn và thị lực tốt
Các chủ đề được đề cập
- Giới thiệu chung về lập trình Vi điều khiển Atmel
- ISP hoặc Bootloader: Tất cả đều hơi khó hiểu
- Tổng quan về mạch
- Thiết lập lập trình viên của bạn
- Sử dụng lập trình Arduino ISP của bạn
- Phát triển mã trên hệ thống mục tiêu của bạn
- Gotchas
- Phần kết luận
- Tài liệu tham khảo được sử dụng
Tuyên bố từ chối trách nhiệm
Như mọi khi, bạn tự chịu rủi ro khi sử dụng các hướng dẫn này và chúng không được hỗ trợ
Bước 1: Giới thiệu chung về lập trình vi điều khiển Atmel
Có hai phương pháp có sẵn để lập trình vi điều khiển Atmel;
- Trong Lập trình Hệ thống (ISP),
- Tự lập trình (thông qua bộ nạp khởi động).
Phương pháp cũ (1) lập trình trực tiếp bộ vi điều khiển thông qua giao diện SPI sau lần đầu tiên đặt thiết bị vào trạng thái khởi tạo lại. Trừ khi có hướng dẫn khác, chương trình nguồn thực thi đã biên dịch được ghi vào thiết bị tăng dần vào bộ nhớ mã từ nơi nó được thực thi khi khởi động. Có nhiều thiết bị ISP có khả năng lập trình thiết bị Atmel, một vài trong số đó là (hình 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Hình 2 cho thấy cách thiết bị ISP kết nối với ATMega328P (ICSP được đánh dấu kỳ lạ) trên bảng Arduino Uno R3 (hình 3 đưa ra chân ISP). Nó cũng có thể lập trình vi điều khiển Atmel thông qua giao diện SPI của nó bằng cách sử dụng Arduino Uno làm ISP (hình 4), ở đây Uno đang được sử dụng để lập trình ATMega328P.
Phương pháp thứ hai (2) sử dụng một đoạn mã nhỏ được gọi là 'bộ nạp khởi động' thường trú trong bộ nhớ mã thực thi (thường bị khóa để ngăn việc tình cờ ghi đè pic 5). Mã này được thực thi đầu tiên khi bật nguồn hoặc thiết lập lại thiết bị và cho phép bộ vi điều khiển tự lập trình lại với mã mới nhận được qua một trong các giao diện của nó từ một nguồn bên ngoài. Phương thức bootloader được Arduino IDE sử dụng để lập trình lại Arduinos được ánh xạ dưới dạng cổng comm USB trên PC (Hoặc MAC, hộp Linux, v.v., hình 6) và trong trường hợp Arduino Uno giao tiếp với thiết bị Atmel thông qua nó. giao diện nối tiếp trên IC Chân 2 và 3 của ATMega328P. Ngoài ra, Arduino Uno (đã tháo bộ điều khiển micrô ATMega328P) có thể được sử dụng để lập trình ATMega328P thông qua phương thức bộ nạp khởi động hoạt động hiệu quả như một thiết bị chuyển đổi USB sang nối tiếp (hình 7).
Bộ chuyển đổi USB sang nối tiếp là gì?
Bộ chuyển đổi USB sang nối tiếp là một phần cứng cắm vào cổng USB PC của bạn và trông giống như cổng com nối tiếp (kế thừa từ thời trước khi máy tính sử dụng tiêu chuẩn giao tiếp nối tiếp được gọi là EIA-232, V24 hoặc RS232) cho phép bạn gửi và nhận dữ liệu nối tiếp ở cùng mức điện của vi điều khiển. Khi bạn chọn Công cụ -> Cổng -> COMx từ Arduino IDE, bạn đang kết nối / giao tiếp PC với Arduino.
Một thiết bị như thế này đôi khi được gọi là FTDI (hình 8, thực ra là tên thương hiệu) hoặc CH340G, v.v. USB để nối tiếp trên Arduino chưa đạt được thông qua IC ATMega16U2-MU (R) ZU4 như trong Sơ đồ Arduino phía dưới.
Để rõ ràng, hình 9 xác định hai thiết bị Atmel và các đầu nối ISP tương ứng của chúng trên Arduino Uno R3.
Lưu ý 1: Nếu bạn chọn mua thiết bị FTDI, hãy đảm bảo bạn mua từ người bán có uy tín vì đã có rất nhiều thiết bị giả mạo giá rẻ trên thị trường bị lỗi khi áp dụng bản cập nhật windows.
Đề xuất:
ATtiny85 Đồng hồ theo dõi hoạt động rung có thể đeo trên thiết bị đeo và lập trình ATtiny85 với Arduino Uno: 4 bước (có hình ảnh)
ATtiny85 Đồng hồ theo dõi hoạt động rung có thể đeo được và lập trình ATtiny85 với Arduino Uno: Làm thế nào để tạo đồng hồ theo dõi hoạt động có thể đeo được? Đây là một thiết bị đeo được thiết kế để rung khi phát hiện thấy có sự cố. Bạn có dành phần lớn thời gian trên máy tính như tôi không? Bạn đang ngồi hàng giờ mà không nhận ra? Sau đó, thiết bị này là
Arduino độc lập 3.3V W / Xung nhịp 8 MHz bên ngoài được lập trình từ Arduino Uno thông qua ICSP / ISP (với Giám sát nối tiếp!): 4 bước
Arduino độc lập 3.3V W / Xung nhịp 8 MHz bên ngoài được lập trình từ Arduino Uno thông qua ICSP / ISP (với Giám sát nối tiếp!): Mục tiêu: Xây dựng một Arduino độc lập chạy trên 3.3V với xung nhịp ngoài 8 MHz. Để lập trình nó thông qua ISP (còn được gọi là ICSP, lập trình nối tiếp trong mạch) từ Arduino Uno (chạy ở 5V) Để chỉnh sửa tệp bộ nạp khởi động và ghi
(gần như) Lập trình viên MIDI SysEx CC đa năng (và Trình tự lập trình tự ): 7 bước (có Hình ảnh)
(gần như) Lập trình viên MIDI SysEx CC đa năng (và Trình lập trình …): Vào giữa những năm tám mươi, các bộ sản xuất tổng hợp bắt đầu " ít hơn là tốt hơn " quá trình dẫn đến synths barebone. Điều này cho phép giảm chi phí về mặt sản xuất, nhưng làm cho quá trình vá lỗi trở nên thành công nếu không muốn nói là không thể sử dụng cuối cùng
Bộ lập trình LED RGB có thể lập trình (sử dụng Arduino và Adafruit Trellis): 7 bước (có hình ảnh)
Bộ lập trình LED RGB có thể lập trình (sử dụng Arduino và Adafruit Trellis): Các con trai của tôi muốn các dải LED màu để thắp sáng bàn làm việc của chúng và tôi không muốn sử dụng bộ điều khiển dải RGB đóng hộp, vì tôi biết chúng sẽ cảm thấy nhàm chán với các mẫu cố định những bộ điều khiển này có. Tôi cũng nghĩ rằng đó sẽ là một cơ hội tuyệt vời để tạo ra
Hướng dẫn lập trình thú vị cho nhà thiết kế - Kiểm soát quy trình chương trình- Tuyên bố vòng lặp: 8 bước
Hướng dẫn lập trình thú vị cho nhà thiết kế - Điều khiển quy trình chương trình- Tuyên bố vòng lặp: Điều khiển quy trình chương trình- Tuyên bố vòng lặp Từ chương này, bạn sẽ tiếp xúc với một điểm kiến thức quan trọng và mạnh mẽ - Câu lệnh vòng lặp. Trước khi đọc chương này, nếu bạn muốn vẽ 10.000 vòng tròn trong chương trình, bạn chỉ có thể thực hiện với một