Πίνακας περιεχομένων:

Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP: 9 βήματα (με εικόνες)
Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP: 9 βήματα (με εικόνες)

Βίντεο: Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP: 9 βήματα (με εικόνες)

Βίντεο: Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP: 9 βήματα (με εικόνες)
Βίντεο: Programming ATtiny85 using Arduino NANO 2024, Ιούλιος
Anonim
Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP
Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP
Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP
Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP

Πρόλογος

Πρόσφατα ανέπτυξα μερικά έργα IoT βασισμένα σε ESP8266 και διαπίστωσα ότι ο βασικός επεξεργαστής δυσκολευόταν να εκτελέσει όλες τις εργασίες που χρειαζόμουν για τη διαχείρισή του, έτσι αποφάσισα να διανείμω μερικές από τις λιγότερο σημαντικές δραστηριότητες σε διαφορετικούς μικροελεγκτές με αυτόν τον τρόπο απελευθερώνοντας το ESP8266 για να συνεχίσει τη δουλειά του να είναι συσκευή IoT.

Δεδομένου ότι ήθελα να δημοσιεύσω το έργο μου σε όσο το δυνατόν μεγαλύτερο κοινό, επέλεξα να χρησιμοποιήσω το Arduino IDE ως πλατφόρμα επιλογής ανάπτυξης, καθώς έχει μια τόσο ευρέως υποστηριζόμενη κοινότητα.

Περιορισμοί σχεδιασμού

Προκειμένου να παράσχω μια εύλογη διάδοση συσκευών στόχου που θα επιτρέπουν την επιλογή του κατάλληλου μικροελεγκτή για την εφαρμογή που έχω, αποφάσισα τα ακόλουθα μέρη Atmel. ATMega328P, ATTiny84 και ATTiny85. Για να περιορίσω την πολυπλοκότητα του απαραίτητου προγραμματιστή, περιόρισα την επιλογή του ρολογιού σε εσωτερικό για όλες τις συσκευές και 16MHz εξωτερικό μόνο για τα ATMega328P και ATTiny84.

Αυτό που ακολουθεί είναι μια συλλογή σημειώσεων σχετικά με τον προγραμματισμό με το Arduino και μια περιγραφή του τρόπου με τον οποίο δημιούργησα έναν απλό προγραμματιστή με βάση το Arduino Uno για αυτές τις συσκευές (φωτογραφίες παραπάνω).

Τι μέρη χρειάζομαι;

Για να δημιουργήσετε τον προγραμματιστή θα χρειαστείτε τα ακόλουθα μέρη

  1. 1 έκπτωση στο Arduino Uno
  2. 2 πρίζες DIP 28 ZIN Insertion Force (ZIF) (για χωρητικότητα ATMega328P, ATTiny85, ATTiny84)
  3. 1 έκπτωση πρωτότυπο ασπίδα Arduino (πήρα το δικό μου εδώ;
  4. 2 LED 5mm 5mm
  5. 2 off 1K αντιστάσεις
  6. 1 αντίσταση 10Κ
  7. 4 εκτός κεραμικών πυκνωτών 22pF
  8. 2 κρυστάλλους 16MHz
  9. 3 από κεραμικούς πυκνωτές 0.1uF
  10. 1 έκπτωση ηλεκτρολυτικός πυκνωτής 47uF
  11. 1 έκαστος ηλεκτρολυτικός πυκνωτής 10uF
  12. Σύρμα περιτύλιξης σύρματος διαφόρων μηκών.

Τι λογισμικό χρειάζομαι;

Arduino IDE 1.6.9

Τι δεξιότητες χρειάζομαι;

  1. Γνώση Arduino IDE
  2. Κάποιες γνώσεις σχετικά με τα ηλεκτρονικά και τον τρόπο συγκόλλησης
  3. Μεγάλη χειροτεχνική επιδεξιότητα
  4. Ένα φορτίο υπομονής και καλής όρασης

Θέματα που καλύπτονται

  1. Γενική Εισαγωγή στον προγραμματισμό μικροελεγκτών Atmel
  2. ISP ή Bootloader: Όλα είναι λίγο μπερδεμένα
  3. Επισκόπηση κυκλώματος
  4. Ρύθμιση του προγραμματιστή σας
  5. Χρησιμοποιώντας τον προγραμματιστή ISP Arduino
  6. Ανάπτυξη κώδικα στο σύστημα -στόχο σας
  7. Gotchas
  8. συμπέρασμα
  9. Χρησιμοποιήθηκαν αναφορές

Αποποίηση ευθυνών

Όπως πάντα, χρησιμοποιείτε αυτές τις οδηγίες με δική σας ευθύνη και αυτές δεν υποστηρίζονται

Βήμα 1: Γενική Εισαγωγή στον Προγραμματισμό Μικροελεγκτών Atmel

Γενική Εισαγωγή στον Προγραμματισμό Μικροελεγκτών Atmel
Γενική Εισαγωγή στον Προγραμματισμό Μικροελεγκτών Atmel
Γενική Εισαγωγή στον Προγραμματισμό Μικροελεγκτών Atmel
Γενική Εισαγωγή στον Προγραμματισμό Μικροελεγκτών Atmel
Γενική Εισαγωγή στον Προγραμματισμό Μικροελεγκτών Atmel
Γενική Εισαγωγή στον Προγραμματισμό Μικροελεγκτών Atmel

Υπάρχουν δύο διαθέσιμες μέθοδοι για τον προγραμματισμό μικροελεγκτών Atmel.

  1. Στον προγραμματισμό συστήματος (ISP),
  2. Αυτοπρογραμματισμός (μέσω ενός bootloader).

Η προηγούμενη μέθοδος (1) προγραμματίζει απευθείας τον μικροελεγκτή μέσω της διασύνδεσης SPI αφού πρώτα θέσει τη συσκευή σε επαναφορά. Εκτός εάν έχει δοθεί διαφορετική εντολή, ένα μεταγλωττισμένο εκτελέσιμο πρόγραμμα πηγής γράφεται στη συσκευή σταδιακά στη μνήμη κώδικα από όπου εκτελείται κατά την εκκίνηση. Υπάρχουν πολλές συσκευές παροχής Internet που μπορούν να προγραμματίσουν συσκευές Atmel, μερικές από τις οποίες είναι (εικόνα 1). AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Η εικόνα 2 δείχνει πώς συνδέεται η συσκευή ISP με το ATMega328P (με παράξενη ένδειξη ICSP) στον πίνακα Arduino Uno R3 (η εικόνα 3 δίνει την ακίδα ISP έξω). Είναι επίσης δυνατό να προγραμματίσετε έναν μικροελεγκτή Atmel μέσω της διεπαφής του SPI χρησιμοποιώντας ένα Arduino Uno ως ISP (εικόνα 4), εδώ το Uno χρησιμοποιείται για τον προγραμματισμό ενός ATMega328P.

Η τελευταία μέθοδος (2) χρησιμοποιεί ένα μικρό στέλεχος κώδικα γνωστό ως «bootloader» που βρίσκεται μόνιμα σε εκτελέσιμη μνήμη κώδικα (συνήθως κλειδωμένο για να αποφευχθεί τυχαία αντικατάσταση της εικόνας 5). Αυτός ο κώδικας εκτελείται πρώτα με την ενεργοποίηση ή την επαναφορά της συσκευής και επιτρέπει στον μικροελεγκτή να προγραμματίσει ξανά τον εαυτό του με νέο κώδικα που λαμβάνεται μέσω μιας από τις διεπαφές του από εξωτερική πηγή. Η μέθοδος εκκίνησης χρησιμοποιείται από το Arduino IDE για τον επαναπρογραμματισμό του Arduinos που έχει χαρτογραφηθεί ως θύρα κοινής χρήσης USB στον υπολογιστή (Or MAC, Linux box κ.λπ., εικόνα 6) και στην περίπτωση του Arduino Uno επικοινωνεί με τη συσκευή Atmel μέσω του σειριακή διεπαφή στις ακίδες IC 2 και 3 του ATMega328P. Επίσης το Arduino Uno (με τον μικροελεγκτή ATMega328P αφαιρεμένο) μπορεί να χρησιμοποιηθεί για τον προγραμματισμό ενός ATMega328P μέσω της μεθόδου εκκίνησης που λειτουργεί αποτελεσματικά ως συσκευή προσαρμογέα USB σε σειριακή (εικόνα 7).

Τι είναι ο σειριακός προσαρμογέας USB σε;

Ο προσαρμογέας USB σε σειριακό είναι ένα υλικό που συνδέεται στη θύρα USB των υπολογιστών σας και μοιάζει με σειριακή θύρα com (παλαιού τύπου από παλαιότερες εποχές όταν οι υπολογιστές χρησιμοποιούσαν πρότυπο σειριακής επικοινωνίας γνωστό ως EIA-232, V24 ή RS232) που σας επιτρέπει να αποστολή και λήψη σειριακών δεδομένων στα ίδια ηλεκτρικά επίπεδα του μικροελεγκτή. Όταν επιλέγετε Εργαλεία -> Θύρα -> COMx από το Arduino IDE συνδέετε/διασυνδέετε τον υπολογιστή σας με το Arduino σας.

Μια τέτοια συσκευή αναφέρεται μερικές φορές ως FTDI (εικόνα 8, η οποία είναι στην πραγματικότητα ένα εμπορικό σήμα) ή CH340G κ.λπ. Η σειρά USB στο Arduino uno επιτυγχάνεται μέσω ενός ATMega16U2-MU (R) IC ZU4 όπως στο Arduino Schematic παρακάτω.

Για λόγους σαφήνειας, η εικόνα 9 προσδιορίζει τις δύο συσκευές Atmel και τις αντίστοιχες υποδοχές ISP τους στο Arduino Uno R3.

Σημείωση 1: Εάν επιλέξετε να ακολουθήσετε τη διαδρομή της συσκευής FTDI, βεβαιωθείτε ότι αγοράζετε από έναν αξιόπιστο πωλητή, καθώς στην αγορά υπήρχαν πολλές φτηνές πλαστές συσκευές που απέτυχαν μετά την εφαρμογή μιας ενημέρωσης των Windows.

Συνιστάται: