- Các thành phần cần thiết để lập trình ATtiny85 qua USB
- IC vi điều khiển ATtiny85 - Giới thiệu
- Nhấp nháy Boot-loader trên ATtiny85 Sử dụng Arduino Uno
- Sơ đồ mạch cho lập trình viên ATtiny
- Cài đặt Trình điều khiển Digispark
- Thiết lập Arduino IDE để lập trình ATttiny85
Họ ATtiny là một loạt các bộ vi điều khiển nhỏ nhất trên thị trường AVR. Các bộ vi điều khiển này có khả năng sử dụng nhiều thư viện có sẵn trên nền tảng Arduino. Chip vi điều khiển ATtiny85 là vi điều khiển AVR 8 chân, 8 bit. Kích thước nhỏ và tiêu thụ điện năng thấp làm cho nó phù hợp tuyệt vời cho các dự án di động có diện tích nhỏ và yêu cầu điện năng thấp. Tuy nhiên, việc đưa mã của bạn lên chip có thể hơi khó khăn vì nó không có bất kỳ giao diện USB nào giống như các bảng vi điều khiển.
Trong hướng dẫn trước của chúng tôi, chúng tôi đã lập trình ATtiny85 bằng Arduino Uno. Nhưng việc kết nối Attiny85 với Arduino và sử dụng Arduino làm ISP có thể khó khăn và tốn thời gian. Vì vậy, trong hướng dẫn này, chúng tôi sẽ xây dựng một bảng Lập trình ATtiny85, để chúng tôi có thể trực tiếp plugin và lập trình nó giống như các bảng vi điều khiển khác.
Các thành phần cần thiết để lập trình ATtiny85 qua USB
- Arduino UNO (Chỉ lần đầu tiên khi tải lên bộ nạp khởi động)
- IC ATtiny85
- Đầu cắm USB loại A Nam
- 3 điện trở (2 × 47Ω & 1 × 1kΩ)
- 3 Điốt (2 × Điốt Zener & 1 × Điốt IN5819)
- Đế IC 8 chân
- Breadboard
- Dây nhảy
IC vi điều khiển ATtiny85 - Giới thiệu
ATtiny85 của Atmel là bộ vi điều khiển 8-bit công suất thấp, hiệu suất cao dựa trên Kiến trúc RISC Nâng cao. Chip vi điều khiển này có bộ nhớ flash 8KB ISP, 512B EEPROM, 512-Byte SRAM, 6 đường I / O cho mục đích chung, 32 thanh ghi làm việc cho mục đích chung, một bộ đếm / bộ đếm thời gian 8 bit với các chế độ so sánh, một 8 bit tốc độ cao bộ đếm thời gian / bộ đếm, USI, Ngắt bên trong và bên ngoài, bộ chuyển đổi A / D 4 kênh 10-bit, bộ định thời giám sát có thể lập trình với bộ dao động bên trong, ba chế độ tiết kiệm năng lượng có thể lựa chọn phần mềm và debugWIRE để gỡ lỗi trên chip. ATtiny85 Pinout được đưa ra dưới đây:
Hầu hết các chân I / O của chip có nhiều hơn một chức năng. Mô tả chân ATtiny85 cho mỗi chân được đưa ra trong bảng dưới đây:
Số pin |
Tên ghim |
Ghim Mô tả |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Ngắt thay đổi chân 0, Nguồn5 ĐẶT LẠI: Đặt lại mã pin ADC0: Kênh đầu vào ADC 0 dW: gỡ lỗi WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Ngắt thay đổi chân 0, Nguồn3 XTAL1: Chân dao động tinh thể1 CLKI: Ngõ vào đồng hồ bên ngoài ADC3: Kênh đầu vào ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Ngắt thay đổi chân 0, Nguồn 4 XTAL2: Chân dao động tinh thể 2 CLKO: Đầu ra đồng hồ hệ thống OC1B: Bộ hẹn giờ / Bộ đếm1 So sánh Đầu ra Khớp B ADC2: Kênh đầu vào ADC 2 |
4 |
GND |
Ghim nối đất |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI Master Data Output / Slave Data Input DI: Đầu vào dữ liệu USI (Chế độ ba dây) SDA: Đầu vào dữ liệu USI (Chế độ hai dây) AIN0: Bộ so sánh tương tự, đầu vào tích cực OC0A: Bộ hẹn giờ / Bộ đếm0 Đầu ra So sánh Khớp A AREF: Tham chiếu Analog bên ngoài PCINT0: Ngắt thay đổi chân 0, Nguồn 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI Master Data Input / Slave Data Output DO: Đầu ra dữ liệu USI (Chế độ ba dây) AIN1: Bộ so sánh tương tự, Đầu vào âm OC0B: Bộ định thời / Bộ đếm0 So sánh Đầu ra Khớp B OC1A: Bộ hẹn giờ / Bộ đếm1 So sánh Đầu ra So sánh A PCINT1: Ngắt thay đổi chân 0, Nguồn 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Đầu vào đồng hồ nối tiếp USCK: Đồng hồ USI (Chế độ ba dây) SCL: Đồng hồ USI (Chế độ hai dây) ADC1: Kênh đầu vào ADC 1 T0: Nguồn đồng hồ Timer / Counter0 INT0: Ngắt ngoài 0 Ngõ vào PCINT2: Ngắt thay đổi chân 0, Nguồn 2 |
số 8 |
VCC |
Cung cấp pin điện áp |
Nhấp nháy Boot-loader trên ATtiny85 Sử dụng Arduino Uno
Để lập trình ATtiny85 mà không có Arduino, trước tiên chúng ta phải tải lên bộ nạp khởi động vào nó bằng cách sử dụng bảng Arduino UNO, đây là quá trình một lần và sau khi hoàn thành, chúng ta sẽ không cần bảng UNO nữa. Boot-loader là một chương trình đặc biệt chạy trong bộ vi điều khiển phải được lập trình. Một trong những cách thuận tiện nhất để tải dữ liệu chương trình của bạn vào bộ vi điều khiển là thông qua bộ nạp khởi động. Boot-loader nằm trên MCU và thực hiện các lệnh đến, sau đó ghi thông tin chương trình mới vào bộ nhớ của vi điều khiển. Việc nhấp nháy bộ nạp khởi động trên bộ vi điều khiển loại bỏ nhu cầu về phần cứng bên ngoài đặc biệt (Bảng lập trình) để lập trình bộ vi điều khiển và bạn có thể lập trình trực tiếp bằng kết nối USB. Các Digispark ATtiny85bo mạch chạy bộ nạp khởi động “microucleus tiny85”, ban đầu được viết bởi Bluebie. Bộ nạp khởi động là mã được lập trình sẵn trên Digispark và cho phép nó hoạt động như một thiết bị USB để nó có thể được lập trình bởi Arduino IDE. Chúng tôi cũng sẽ flash cùng một bộ nạp khởi động digispark attiny85 trên ATtiny85.
Dưới đây là hướng dẫn từng bước để flash bootloader lên ATtiny85 bằng Arduino Uno và Arduino IDE:
Bước 1: Định cấu hình Arduino Uno làm ISP:
Vì ATtiny85 chỉ là một bộ vi điều khiển, nó yêu cầu một ISP (Lập trình trong hệ thống) được lập trình. Vì vậy, để lập trình ATtiny85, trước tiên chúng ta cần cấu hình Arduino Uno làm ISP để hoạt động như một lập trình viên cho ATtiny85. Để thực hiện điều đó, hãy kết nối Arduino Uno với Máy tính xách tay và mở Arduino IDE. Sau đó, điều hướng đến Tệp> Ví dụ> ArduinoISP và tải lên mã Arduino ISP.
Bước 2: Sơ đồ mạch cho bộ nạp khởi động nhấp nháy trên ATtiny85:
Sơ đồ hoàn chỉnh cho bộ nạp khởi động nhấp nháy trên ATtiny85 được đưa ra dưới đây:
Một tụ điện 10 µf được kết nối giữa chân Reset và GND của Arduino. Các kết nối hoàn chỉnh được đưa ra trong bảng dưới đây:
ATtiny85 Pin |
Arduino Uno Pin |
Vcc |
5V |
GND |
GND |
Pin 2 |
13 |
Ghim 1 |
12 |
Ghim 0 |
11 |
Cài lại |
10 |
Bây giờ hãy cắm Arduino Uno vào máy tính xách tay và mở Arduino IDE. Tìm cổng COM mà Uno được kết nối. Trong trường hợp của tôi, đó là COM5.
Sau đó, tải xuống các tệp ATtiny85 Boot-loader từ liên kết đã cho. Mở " Burn_AT85_bootloader.bat " và thay đổi số cổng COM "PCOM5" bằng bất kỳ số cổng COM nào mà Uno của bạn được kết nối. Lưu các thay đổi trước khi thoát.
Bây giờ, hãy chuyển các tệp " Burn_AT85_bootloader.bat " và " ATtiny85.hex " đã chỉnh sửa vào thư mục gốc Arduino IDE (C: \ Program Files (x86) Arduino).
Sau đó, nhấp chuột phải vào " Burn_AT85_bootloader.bat " và chọn "Run as Admin". Phải mất khoảng 5 đến 6 giây để flash bộ nạp khởi động. Nếu mọi việc suôn sẻ, bạn sẽ nhận được thông báo này "AVRdude done. Cảm ơn bạn. Nhấn phím bất kỳ để tiếp tục…".
Với điều này, Boot-loader đã được cài đặt thành công trên Chip ATtiny85. Bây giờ là lúc kết nối USB với ATtiny85 để chúng ta có thể lập trình trực tiếp. Sơ đồ mạch lập trình ATtiny85 qua USB được đưa ra dưới đây:
Sơ đồ mạch cho lập trình viên ATtiny
Sơ đồ này được lấy từ sơ đồ bảng Digispark ATtiny85 nhưng vì chúng tôi hướng tới việc xây dựng một lập trình viên cho ATtiny85, chúng tôi chỉ kết nối Đầu cắm USB Nam với ATtiny85.
R3 là một điện trở kéo lên được kết nối giữa các chân Vcc và PB3 của IC trong khi Điốt Zener (D1-D2) được thêm vào để bảo vệ toàn bộ giao diện USB. Sau khi hàn tất cả các thành phần trên bo mạch hoàn thiện, nó sẽ trông giống như dưới đây:
Cài đặt Trình điều khiển Digispark
Để lập trình ATtiny85 bằng USB, bạn phải cài đặt Trình điều khiển Digispark trên máy tính xách tay của mình, nếu chưa có, bạn có thể tải xuống bằng liên kết ở trên. Sau đó, giải nén tệp zip và nhấp đúp vào ứng dụng “ DPinst64.exe ” để cài đặt trình điều khiển.
Khi các trình điều khiển được cài đặt thành công, hãy cắm bo mạch ATtiny85 của bạn vào máy tính xách tay. Bây giờ, hãy truy cập Trình quản lý thiết bị trên Windows của bạn và thiết bị ATtiny85 sẽ được liệt kê trong “thiết bị libusb-win32” là “Trình tải khởi động Digispark”. Nếu bạn không thể tìm thấy 'thiết bị libusb-win32' trên trình quản lý thiết bị, hãy chuyển đến Xem và nhấp vào 'Hiển thị thiết bị ẩn.'
Thiết lập Arduino IDE để lập trình ATttiny85
Để lập trình Bảng ATtiny85 với Arduino IDE, trước tiên, chúng ta cần thêm Hỗ trợ bảng Digispark vào Arduino IDE. Để làm điều đó, hãy chuyển đến Tệp> Tùy chọn và thêm liên kết bên dưới vào URL Trình quản lý Bảng bổ sung và nhấp vào 'OK.'
Sau đó, vào công cụ> Board> Board Manager và tìm kiếm 'Digistump AVR' và cài đặt phiên bản mới nhất.
Sau khi cài đặt nó, bây giờ bạn sẽ có thể thấy một mục mới trong menu Board có tiêu đề 'Digispark'.
Bây giờ, đi tới tệp> Ví dụ> Cơ bản và mở ví dụ Blink.
Thay đổi số pin trên đó từ LED_BUILTIN thành 0.
Bây giờ quay lại Công cụ -> Bảng và chọn bảng “ Digispark (Mặc định - 16mhz) ”. Sau đó nhấp vào nút tải lên trong Arduino IDE.
Lưu ý: Kết nối bo mạch ATtiny85 với máy tính, chỉ khi Arduino IDE hiển thị thông báo “Thiết bị plugin ngay bây giờ”.
Sau khi mã được tải lên, đèn LED được kết nối với ATtiny85 sẽ bắt đầu nhấp nháy.
Đây là cách bạn có thể xây dựng bảng Lập trình Arduino ATtiny85 của riêng mình. Dưới đây là một đoạn video hoạt động tương tự. Nếu bạn có bất kỳ câu hỏi nào, hãy để lại trong phần bình luận. Đối với bất kỳ câu hỏi kỹ thuật nào khác, bạn cũng có thể bắt đầu thảo luận trên diễn đàn của chúng tôi.