- Απαιτούμενα στοιχεία για τον προγραμματισμό του ATtiny85 μέσω USB
- ATtiny85 Μικροελεγκτής IC - Εισαγωγή
- Αναβοσβήνει Boot-loader στο ATtiny85 Χρησιμοποιώντας το Arduino Uno
- Διάγραμμα κυκλώματος για προγραμματιστή ATtiny
- Εγκατάσταση προγραμμάτων οδήγησης Digispark
- Ρύθμιση του Arduino IDE στο πρόγραμμα ATttiny85
Η οικογένεια ATtiny είναι μια σειρά από τους μικρότερους μικροελεγκτές στην αγορά AVR. Αυτοί οι μικροελεγκτές είναι σε θέση να χρησιμοποιούν πολλές από τις βιβλιοθήκες που είναι διαθέσιμες στην πλατφόρμα Arduino. Το τσιπ μικροελεγκτή ATtiny85 είναι 8-pin, 8-bit, AVR microcontroller. Το μικρό του μέγεθος και η χαμηλή κατανάλωση ενέργειας το καθιστούν ιδανικό για φορητά έργα με μικρά ίχνη και χαμηλές απαιτήσεις ισχύος. Όμως, η εισαγωγή του κωδικού σας στο τσιπ μπορεί να είναι λίγο μια πρόκληση, καθώς δεν διαθέτει διεπαφή USB όπως πίνακες μικροελεγκτών.
Στο προηγούμενο σεμινάριό μας, προγραμματίσαμε το ATtiny85 χρησιμοποιώντας το Arduino Uno. Αλλά η σύνδεση του Attiny85 με το Arduino και η χρήση του Arduino ως ISP μπορεί να είναι δύσκολη και χρονοβόρα. Έτσι, σε αυτό το σεμινάριο, πρόκειται να δημιουργήσουμε μια πλακέτα προγραμματισμού ATtiny85, ώστε να μπορούμε να προσθέσουμε απευθείας και να προγραμματίσουμε όπως άλλες πλακέτες μικροελεγκτών.
Απαιτούμενα στοιχεία για τον προγραμματισμό του ATtiny85 μέσω USB
- Arduino UNO (Μόνο για πρώτη φορά κατά τη μεταφόρτωση του bootloader)
- ATtiny85 IC
- USB A-type Plug Male
- 3 αντιστάσεις (2 × 47Ω & 1 × 1kΩ)
- 3 δίοδοι (2 × δίοδος Zener & δίοδος 1 × IN5819)
- Βάση IC 8 ακίδων
- Ψωμί
- Καλώδια αλτών
ATtiny85 Μικροελεγκτής IC - Εισαγωγή
Ο ATtiny85 του Atmel είναι ένας μικροελεγκτής υψηλής απόδοσης και χαμηλής ισχύος 8-bit που βασίζεται στην Advanced RISC Architecture. Αυτό το τσιπ μικροελεγκτή διαθέτει μνήμη flash 8KB ISP, 512B EEPROM, 512-Byte SRAM, 6 γραμμές I / O γενικής χρήσης, 32 μητρώα εργασίας γενικής χρήσης, ένα χρονόμετρο / μετρητή 8-bit με τρόπους σύγκρισης, ένα 8-bit υψηλής ταχύτητας χρονοδιακόπτης / μετρητής, USI, εσωτερικές και εξωτερικές διακοπές, μετατροπέας 10-bit A / D 4 καναλιών, προγραμματιζόμενος χρονοδιακόπτης παρακολούθησης με εσωτερικό ταλαντωτή, τρεις τρόπους εξοικονόμησης ενέργειας με δυνατότητα επιλογής λογισμικού και εντοπισμός σφαλμάτωνWIRE για αποσφαλμάτωση on-chip. Το ATtiny85 Pinout δίνεται παρακάτω:
Οι περισσότερες ακίδες I / O του chip έχουν περισσότερες από μία λειτουργίες. Η περιγραφή της ακίδας ATtiny85 για κάθε πείρο δίνεται στον παρακάτω πίνακα:
Pin No. |
Όνομα καρφιτσώματος |
Περιγραφή καρφίτσας |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0, Source5 RESET: Επαναφορά καρφίτσας ADC0: κανάλι εισόδου ADC 0 dW: εντοπισμός σφαλμάτων WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0, Source3 XTAL1: Κρυστάλλινος ταλαντωτής Pin1 CLKI: Είσοδος εξωτερικού ρολογιού ADC3: κανάλι εισόδου ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pin Change Interrupt 0, Source 4 XTAL2: Κρυστάλλινος ταλαντωτής Pin 2 CLKO: Έξοδος ρολογιού συστήματος OC1B: Χρονόμετρο / Μετρητής 1 Σύγκριση εξόδου αγώνα B ADC2: κανάλι εισόδου ADC 2 |
4 |
GND |
Καρφίτσα γείωσης |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI Master Data Output / Slave Data Input DI: Εισαγωγή δεδομένων USI (λειτουργία τριών καλωδίων) SDA: Εισαγωγή δεδομένων USI (λειτουργία δύο καλωδίων) AIN0: Αναλογικός συγκριτής, θετική είσοδος OC0A: Χρονόμετρο / Μετρητής0 Σύγκριση εξόδου αντιστοίχισης Α AREF: Εξωτερική αναλογική αναφορά PCINT0: Pin Change Interrupt 0, Source 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: Εισαγωγή SPI Master Data / Slave Data Output DO: Έξοδος δεδομένων USI (λειτουργία τριών καλωδίων) AIN1: Αναλογικός συγκριτής, αρνητική είσοδος OC0B: Χρονοδιακόπτης / Μετρητής0 Σύγκριση εξόδου αγώνα B OC1A: Χρονόμετρο / Μετρητής 1 Σύγκριση εξόδου αντιστοίχισης Α PCINT1: Pin Change Interrupt 0, Source 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Είσοδος σειριακού ρολογιού USCK: Ρολόι USI (λειτουργία τριών καλωδίων) SCL: Ρολόι USI (Λειτουργία δύο καλωδίων) ADC1: κανάλι εισόδου ADC 1 T0: Χρονοδιακόπτης / Μετρητής0 Πηγή ρολογιού INT0: Εξωτερική διακοπή 0 είσοδος PCINT2: Pin Change Interrupt 0, Source 2 |
8 |
VCC |
Πείρος τάσης τροφοδοσίας |
Αναβοσβήνει Boot-loader στο ATtiny85 Χρησιμοποιώντας το Arduino Uno
Για τον προγραμματισμό του ATtiny85 χωρίς Arduino, θα πρέπει πρώτα να ανεβάσουμε ένα bootloader σε αυτό χρησιμοποιώντας μια πλακέτα Arduino UNO, αυτή είναι μια διαδικασία μίας φοράς και αφού γίνει αυτό, δεν θα χρειαζόμαστε ξανά τον πίνακα UNO. Το Boot-loader είναι ένα ειδικό πρόγραμμα που εκτελείται στον μικροελεγκτή που πρέπει να προγραμματιστεί. Ένας από τους πιο βολικούς τρόπους φόρτωσης των δεδομένων του προγράμματος στον μικροελεγκτή είναι μέσω ενός boot-loader. Το boot-loader κάθεται στο MCU και εκτελεί τις εισερχόμενες οδηγίες και, στη συνέχεια, γράφει νέες πληροφορίες προγράμματος στη μνήμη του μικροελεγκτή. Η αναβάθμιση ενός φορτωτή εκκίνησης σε έναν μικροελεγκτή αφαιρεί την ανάγκη για ειδικό εξωτερικό υλικό (Προγραμματιστές Πίνακες) για τον προγραμματισμό του μικροελεγκτή και θα μπορείτε να τον προγραμματίσετε απευθείας χρησιμοποιώντας σύνδεση USB. Το Digispark ATtiny85Ο πίνακας εκτελεί το boot-loader "micronucleus tiny85", που γράφτηκε αρχικά από την Bluebie. Το boot-loader είναι ο κωδικός που έχει ήδη προγραμματιστεί στο Digispark και του επιτρέπει να λειτουργεί ως συσκευή USB έτσι ώστε να μπορεί να προγραμματιστεί από το Arduino IDE. Πρόκειται επίσης να αναβοσβήσουμε τον ίδιο bootloader digispark attiny85 στο ATtiny85.
Ένας οδηγός βήμα προς βήμα για την αναβάθμιση του bootloader στο ATtiny85 χρησιμοποιώντας το Arduino Uno και το Arduino IDE δίνεται παρακάτω:
Βήμα 1: Διαμόρφωση του Arduino Uno ως ISP:
Δεδομένου ότι το ATtiny85 είναι απλώς ένας μικροελεγκτής, απαιτεί έναν προγραμματισμό ISP (In-System Programming). Έτσι, για να προγραμματίσουμε το ATtiny85, πρέπει πρώτα να διαμορφώσουμε το Arduino Uno ως ISP ώστε να λειτουργεί ως προγραμματιστής για το ATtiny85. Για αυτό, συνδέστε το Arduino Uno με φορητό υπολογιστή και ανοίξτε το Arduino IDE. Μετά από αυτό, μεταβείτε στο Αρχείο> Παράδειγμα> ArduinoISP και ανεβάστε τον κωδικό ISP Arduino.
Βήμα 2: Διάγραμμα κυκλώματος για Flashing Boot-loader στο ATtiny85:
Το πλήρες σχήμα για το Flashing Boot-loader στο ATtiny85 δίνεται παρακάτω:
Ένας πυκνωτής 10 μf συνδέεται μεταξύ του ακροδέκτη Reset και GND του Arduino. Οι πλήρεις συνδέσεις δίνονται στον παρακάτω πίνακα:
Καρφίτσα ATtiny85 |
Arduino Uno Pin |
Vcc |
5V |
GND |
GND |
Καρφίτσα 2 |
13 |
Καρφίτσα 1 |
12 |
Καρφίτσα 0 |
11 |
Επαναφορά |
10 |
Τώρα συνδέστε το Arduino Uno στο φορητό υπολογιστή και ανοίξτε το Arduino IDE. Βρείτε σε ποια θύρα COM είναι συνδεδεμένο το Uno. Στην περίπτωσή μου, είναι COM5.
Μετά από αυτό, κατεβάστε τα αρχεία εκκίνησης ATtiny85 από τον δεδομένο σύνδεσμο. Ανοίξτε το " Burn_AT85_bootloader.bat " και αλλάξτε τον αριθμό θύρας COM "PCOM5" με οποιονδήποτε αριθμό θύρας COM είναι συνδεδεμένο το Uno. Αποθηκεύστε τις αλλαγές πριν από την έξοδο.
Τώρα μετακινήστε τα επεξεργασμένα αρχεία " Burn_AT85_bootloader.bat " και " ATtiny85.hex " στο ριζικό φάκελο του Arduino IDE (C: \ Program Files (x86) Arduino).
Μετά από αυτό, κάντε δεξί κλικ στο " Burn_AT85_bootloader.bat " και επιλέξτε "Εκτέλεση ως διαχειριστής". Χρειάζονται περίπου 5 έως 6 δευτερόλεπτα για να αναβοσβήνει ο boot-loader. Εάν όλα πήγαν καλά, θα πρέπει να λάβετε αυτό το μήνυμα "AVRdude ολοκληρώθηκε. Ευχαριστώ. Πατήστε οποιοδήποτε πλήκτρο για να συνεχίσετε…".
Με αυτό, το Boot-loader εγκαθίσταται με επιτυχία στο ATtiny85 Chip. Τώρα ήρθε η ώρα να συνδέσετε το USB με το ATtiny85, ώστε να μπορούμε να το προγραμματίσουμε απευθείας. Το διάγραμμα κυκλώματος για τον προγραμματισμό ATtiny85 μέσω USB δίνεται παρακάτω:
Διάγραμμα κυκλώματος για προγραμματιστή ATtiny
Το σχηματικό προέρχεται από το σχηματικό πίνακα Digispark ATtiny85, αλλά καθώς στοχεύουμε στη δημιουργία ενός προγραμματιστή για το ATtiny85, συνδέουμε μόνο το Male USB Plug με το ATtiny85.
Το R3 είναι μια αντίσταση pull-up που συνδέεται μεταξύ των καρφιών Vcc και PB3 του IC, ενώ οι διόδους Zener (D1-D2) προστίθενται για απόλυτη προστασία διασύνδεσης USB. Μετά τη συγκόλληση όλων των εξαρτημάτων στον πίνακα αρωμάτων, θα μοιάζει με παρακάτω:
Εγκατάσταση προγραμμάτων οδήγησης Digispark
Για να προγραμματίσετε το ATtiny85 χρησιμοποιώντας USB, πρέπει να έχετε εγκατεστημένο το Digispark Drivers στον φορητό υπολογιστή σας, εάν δεν το έχετε, μπορείτε να το κατεβάσετε χρησιμοποιώντας τον παραπάνω σύνδεσμο. Στη συνέχεια, εξαγάγετε το αρχείο zip και κάντε διπλό κλικ στην εφαρμογή " DPinst64.exe " για να εγκαταστήσετε τα προγράμματα οδήγησης.
Μόλις εγκατασταθούν επιτυχώς τα προγράμματα οδήγησης, συνδέστε τον πίνακα ATtiny85 στον φορητό υπολογιστή. Τώρα μεταβείτε στη Διαχείριση συσκευών στα Windows σας και η συσκευή ATtiny85 θα αναφέρεται στην ενότητα "συσκευές libusb-win32" ως "Digispark Bootloader". Εάν δεν μπορείτε να βρείτε "συσκευές libusb-win32" στη διαχείριση συσκευών, μεταβείτε στην ενότητα Προβολή και κάντε κλικ στην επιλογή "Εμφάνιση κρυφών συσκευών".
Ρύθμιση του Arduino IDE στο πρόγραμμα ATttiny85
Για να προγραμματίσουμε το ATtiny85 Board με το Arduino IDE, πρώτα, πρέπει να προσθέσουμε την υποστήριξη του Digispark board στο Arduino IDE. Για αυτό, μεταβείτε στο Αρχείο> Προτιμήσεις και προσθέστε τον παρακάτω σύνδεσμο στις διευθύνσεις URL πρόσθετων διαχειριστών και κάντε κλικ στο "OK".
Μετά από αυτό, μεταβείτε στα εργαλεία> Διοικητικό Συμβούλιο> Διαχειριστής συμβουλίου και αναζητήστε το "Digistump AVR" και εγκαταστήστε την πιο πρόσφατη έκδοση.
Αφού το εγκαταστήσετε, τώρα θα μπορείτε να δείτε μια νέα καταχώρηση στο μενού του πίνακα με τίτλο «Digispark».
Τώρα, μεταβείτε στο αρχείο> Παραδείγματα> Βασικά και ανοίξτε το παράδειγμα Blink.
Αλλάξτε τον αριθμό καρφίτσας εκεί από LED_BUILTIN σε 0.
Τώρα επιστρέψτε στο Εργαλεία -> Πίνακας και επιλέξτε τον πίνακα " Digispark (Προεπιλογή - 16mhz) ". Στη συνέχεια, κάντε κλικ στο κουμπί αποστολής στο Arduino IDE.
Σημείωση: Συνδέστε την πλακέτα ATtiny85 στον υπολογιστή, μόνο όταν το Arduino IDE εμφανίζει ένα μήνυμα που λέει "Plugin device now".
Μόλις φορτωθεί ο κωδικός, το LED που είναι συνδεδεμένο στο ATtiny85 θα αρχίσει να αναβοσβήνει.
Έτσι μπορείτε να δημιουργήσετε τη δική σας πλακέτα προγραμματισμού ATtiny85 Arduino. Παρακάτω δίνεται ένα βίντεο εργασίας. Αν έχετε απορίες, αφήστε τις στην ενότητα σχολίων. Για οποιεσδήποτε άλλες τεχνικές ερωτήσεις, μπορείτε επίσης να ξεκινήσετε μια συζήτηση στα φόρουμ μας.