- Τι είναι οι ασφάλειες στο AVR - Μια λεπτομερής εξήγηση
- Fuse Bits στο Arduino
- Απαιτούμενα στοιχεία για τον έλεγχο ασφάλειες στο AVR
- Σχηματική δοκιμή των Fuse Bits στο AVR
- Δοκιμή των ασφαλειών στο AVR
Σε αυτό το σεμινάριο, θα μιλήσουμε για ασφάλειες. Όταν ήμουν στο κολέγιο και έμαθα για όλα τα ωραία πράγματα στα ηλεκτρονικά, άκουσα τον όρο ασφάλεια στο AVR για πρώτη φορά, η αρχική μου σκέψη για το θέμα ήταν, ω! υπάρχει κάτι μέσα στο AVR που θα χτυπήσει αν έκανα κάτι λάθος. Τότε, δεν υπήρχαν πολλοί διαθέσιμοι πόροι στο Διαδίκτυο για να περάσουν. Έψαξα αρκετά για να ανακαλύψω ότι αυτές οι ασφάλειες αφορούσαν ορισμένα ειδικά κομμάτια μέσα στον AVR Microcontroller. Αυτά τα bits είναι σαν μικροσκοπικοί διακόπτες μέσα στο AVR και ενεργοποιώντας / απενεργοποιώντας τα, μπορούμε να ενεργοποιήσουμε / απενεργοποιήσουμε ορισμένες ειδικές δυνατότητες του AVR. Η ενεργοποίηση και απενεργοποίηση σημαίνει ρύθμιση και επαναφορά.
Θα εκμεταλλευτούμε αυτήν την ευκαιρία για να συζητήσουμε όλα όσα υπάρχουν σχετικά με τα Fuse bits στο AVR. Για απλότητα, θα πάρουμε το παράδειγμα ενός πίνακα Arduino που στεγάζει το δημοφιλές μικροελεγκτή ATmega328P. Εδώ, θα μάθετε πώς να ρυθμίζετε αυτές τις ασφάλειες για να ενεργοποιήσετε και να απενεργοποιήσετε ορισμένες από αυτές τις λειτουργίες που έρχονται σε πολύ βολικό σε πραγματικές εφαρμογές. Λοιπόν, ας πάμε κατευθείαν σε αυτό.
Στις προηγούμενες δημοσιεύσεις μας, έχουμε δημιουργήσει πολλά έργα μικροελεγκτών AVR, όπως η ενότητα Interfacing GSM με μικροελεγκτή AVR και η διασύνδεση HC-05 με μικροελεγκτή AVR. Μπορείτε να τα ελέγξετε αν θέλετε να μάθετε περισσότερα για αυτά τα έργα.
Τι είναι οι ασφάλειες στο AVR - Μια λεπτομερής εξήγηση
Όπως συζητήσαμε νωρίτερα, οι ασφάλειες στον μικροελεγκτή είναι σαν μικροί διακόπτες που μπορούν να ενεργοποιηθούν και να απενεργοποιηθούν για να ενεργοποιηθούν και να απενεργοποιηθούν διάφορες δυνατότητες στον μικροελεγκτή AVR. Αυτό είναι το μέρος όπου προκύπτει η επόμενη ερώτησή μας, οπότε πώς ρυθμίζουμε ή επαναφέρουμε αυτές τις ασφάλειες; Η απάντηση σε αυτήν την ερώτηση είναι απλή: Το κάνουμε με τη βοήθεια των καταχωρητών ασφαλειών.
Στο IC του ATmega328P, υπάρχουν συνολικά 19 bit ασφαλειών και χωρίζονται σε τρία ασφάλεια byte. Αυτά ορίζονται ως "Extended Fuse Bytes", "High Fuse Byte" και "Low Fuse Byte".
Αν δείτε τον Πίνακα-27 του δελτίου δεδομένων ATmega328 / P Rev: 7810D – AVR – 01/15, μπορείτε να βρείτε όλες τις μικρές λεπτομέρειες σχετικά με τα μπιτ ασφαλειών. Ωστόσο, η παρακάτω εικόνα θα σας δώσει μια καλύτερη ιδέα για την ενότητα ασφαλειών bit του φύλλου δεδομένων.
Τώρα καθώς έχετε μάθει λίγα πράγματα για τα μπιτ ασφαλειών, ας δούμε το δελτίο δεδομένων και να μάθουμε όλες τις απαραίτητες λεπτομέρειες για αυτό το IC.
Τα εκτεταμένα μπιτ ασφαλειών:
Μόλις κάνετε κλικ στην καρτέλα Fuse Bits και μετακινηθείτε προς τα κάτω λίγο, θα βρείτε τον Πίνακα 27-5: που δείχνει τον πίνακα για το "Extended Fuse Byte" κοινώς γνωστό ως " EFUSE". Η παρακάτω εικόνα δείχνει ακριβώς αυτό.
Σε αυτόν τον πίνακα, υπάρχουν μόνο τρία χρησιμοποιήσιμα κομμάτια και τα άλλα τρία είναι δεσμευμένα. Αυτά τα τρία bit ασχολούνται με το επίπεδο Brownout Detection. Όπως μπορείτε να δείτε στη Σημείωση αν κοιτάξουμε στον Πίνακα 28-5, μπορούμε να βρούμε περισσότερες λεπτομέρειες σχετικά με αυτό.
Όπως μπορείτε να δείτε στον παραπάνω πίνακα, έχουμε τον πίνακα για Brownout Detection. Η ανίχνευση Brownout είναι μια δυνατότητα που επαναφέρει τον μικροελεγκτή όταν η τάση τροφοδοσίας πέσει κάτω από ένα ορισμένο επίπεδο τάσης. Στο ATmega328P IC, μπορούμε να απενεργοποιήσουμε εντελώς την ανίχνευση brownout ή να την ρυθμίσουμε στα επίπεδα που εμφανίζονται στον παραπάνω πίνακα.
Τα ψηφία υψηλής ασφάλειας:
Όπως μπορείτε να δείτε στην παρακάτω εικόνα, ο πίνακας 27-6: του φύλλου δεδομένων δείχνει τα κομμάτια Higher Fuse του ATmega328P IC
Η υψηλή ασφάλεια ασχολείται με διάφορες εργασίες εντός του μικροελεγκτή ATmega328. Σε αυτήν την ενότητα, θα μιλήσουμε για τα υψηλότερα μπιτ ασφαλειών και τη λειτουργία τους. Ας ξεκινήσουμε με τα κομμάτια BOOTRST, BOOTSZ0 και BOOTSZ1. Αυτά τα τρία bits είναι υπεύθυνα για τον καθορισμό του μεγέθους εκκίνησης. Το μέγεθος εκκίνησης αναφέρεται στην ποσότητα μνήμης που προορίζεται για την εγκατάσταση του bootloader.
Ένα bootloader είναι ένα ειδικό λογισμικό που τρέχει πάνω από τον μικροελεγκτή και διαχειρίζεται διαφορετικές εργασίες. Όμως, στην περίπτωση του Arduino, ο bootloader χρησιμοποιείται για τη μεταφόρτωση του σκίτσου Arduino μέσα στον μικροελεγκτή. Σε ένα από τα προηγούμενα άρθρα μας, σας παρουσιάσαμε πώς να κάψετε το Bootloader στο ATmega328P χρησιμοποιώντας το Arduino. Μπορείτε να το ελέγξετε αν σας ενδιαφέρει το θέμα. Επιστρέφοντας στο θέμα μας, οι σκοποί άλλων bit στο υψηλό byte καθίστανται αρκετά σαφείς, το EESAVE bit είναι να διατηρήσει τη μνήμη EEPROM ενώ εκτελείται κύκλος διαγραφής τσιπ. Το bit WDTON είναι να ενεργοποιήσετε ή να απενεργοποιήσετε το χρονόμετρο Watchdog.
Ο χρονοδιακόπτης φύλαξης είναι ένας ειδικός χρονοδιακόπτης στο ATmega328P IC που έχει το ξεχωριστό ρολόι του και λειτουργεί ανεξάρτητα. Εάν το χρονόμετρο παρακολούθησης είναι ενεργοποιημένο, τότε πρέπει να το διαγράψετε με μια συγκεκριμένη περίοδο, διαφορετικά, ο χρονοδιακόπτης παρακολούθησης θα επαναφέρει τον μικροελεγκτή. Αυτό είναι ένα χρήσιμο χαρακτηριστικό που περιλαμβάνεται σε πολλούς μικροελεγκτές εάν ο επεξεργαστής κολλήσει. ο φύλακας θα το επαναφέρει για να αποφευχθεί οποιαδήποτε ζημιά στην τελική εφαρμογή.
Το bit DWEN είναι εκεί για να ενεργοποιήσετε το καλώδιο εντοπισμού σφαλμάτων. Αυτό είναι ένα προπαρασκευαστικό πρωτόκολλο που ενσωματώνεται εσωτερικά στο υλικό τους, το οποίο χρησιμοποιείται για τον προγραμματισμό και τον εντοπισμό σφαλμάτων στους επεξεργαστές. Με αυτήν τη δυνατότητα ενεργοποιημένη, μπορείτε να αναβοσβήνετε και να διορθώσετε τον επεξεργαστή με ένα μόνο καλώδιο συνδεδεμένο. Αλλά για να το χρησιμοποιήσετε, θα χρειαστείτε ειδικό υλικό που είναι προπαρασκευαστικό για το Atmel.
Τα υπόλοιπα δύο bits είναι εκείνα τα bits που πρέπει να αποφύγετε εκτός εάν γνωρίζετε ακριβώς τι κάνετε. Αυτά είναι τα RSTDISBL bit-7 και το SPIEN bit-5. Το RSTDISBL (Εξωτερική επαναφορά απενεργοποίησης) όπως υποδηλώνει το όνομα απενεργοποιεί τον εξωτερικό πείρο επαναφοράς υλικού και το bit SPIEN χρησιμοποιείται για την απενεργοποίηση της διεπαφής προγραμματισμού SPI. Η απενεργοποίηση οποιουδήποτε από αυτά τα δύο bit μπορεί να καταστρέψει πλήρως το AVR λοιπόν, το να αφήνεις μόνο τους είναι καλή ιδέα.
Τα byte χαμηλής ασφάλειας:
Όπως μπορείτε να δείτε στην παρακάτω εικόνα, ο πίνακας 27-7: του φύλλου δεδομένων δείχνει τα κομμάτια Lower Fuse του ATmega328P IC.
Αυτό το byte ασφαλειών είναι υπεύθυνο για τη ρύθμιση της πηγής ρολογιού και ορισμένων άλλων παραμέτρων του ρολογιού μέσα στο AVR. Σε αυτήν την ενότητα, θα μάθουμε για όλα αυτά.
Το 7ο bit ή η σημαία CKDIV8 μπορεί να ρυθμιστεί ώστε να διαιρεί την πηγή ρολογιού με το 8, αυτό έρχεται σε πολύ βολικό πράγμα που ίσως γνωρίζετε ήδη εάν έχετε δοκιμάσει τον προγραμματισμό του AVR μόνοι σας. Το επόμενο bit είναι το bit CKOUT και είναι το 6ο bit στο Low Fuse Byte. Με τον προγραμματισμό θα εκπέμπει το σήμα εσωτερικού ρολογιού στο PORTB0 του μικροελεγκτή.
Τα bits-5 και bit-4 SUT1 και SUT0 ελέγχουν τον χρόνο εκκίνησης του μικροελεγκτή. Αυτό αποτρέπει τυχόν ενέργειες εκκίνησης που ενδέχεται να πραγματοποιηθούν ή να μην πραγματοποιηθούν πριν η τάση τροφοδοσίας φτάσει σε ένα αποδεκτό ελάχιστο επίπεδο τάσης κατωφλίου. Και τα τέσσερα τελευταία CKSEL0 - 4 bit χρησιμοποιούνται για την επιλογή της πηγής ρολογιού του μικροελεγκτή. Ο παρακάτω πίνακας σας δίνει μια καλύτερη κατανόηση αυτών των τεσσάρων bit που είναι υπεύθυνα για τη ρύθμιση της πηγής ρολογιού, μπορείτε να βρείτε αυτόν τον πίνακα στην ενότητα Πηγή ρολογιού του φύλλου δεδομένων.
Τώρα, προτού προχωρήσουμε περαιτέρω, υπάρχει ένα ακόμη πράγμα που πρέπει να περάσω είναι ο πίνακας καθυστέρησης εκκίνησης ταλαντωτών. Με καθυστέρηση εκκίνησης, αναφερόμαστε στα bits 4 και 5 του χαμηλότερου byte ασφαλειών. Οι καθυστερήσεις πρέπει να ρυθμιστούν ανάλογα με την κατάσταση στην οποία θα λειτουργήσει το κύκλωμα και τον τύπο του ταλαντωτή που χρησιμοποιείτε. Οι προεπιλεγμένες τιμές ρυθμίζονται σε αργή αυξανόμενη ισχύ με 6 κύκλους ρολογιού όταν εκτελείται μια ακολουθία ενεργοποίησης ή απενεργοποίησης. Στη συνέχεια, υπάρχει μια άλλη καθυστέρηση 14 κύκλων ρολογιού με καθυστέρηση 65 Ms μετά την εκκίνηση.
Φτου! Ήταν πολλές πληροφορίες για να χωνέψεις. Αλλά προτού προχωρήσουμε περαιτέρω, ας τελειώσουμε αυτήν την ενότητα με μια γρήγορη σημείωση.
Σημείωση:
Εάν έχετε δει προσεκτικά το φύλλο δεδομένων, πρέπει να έχετε παρατηρήσει, ο προγραμματισμός ενός bit ασφάλειας σημαίνει να το χαμηλώσετε, δηλαδή 0 (μηδέν), το οποίο είναι το αντίθετο από αυτό που κάνουμε γενικά για να κάνουμε μια θύρα υψηλή ή χαμηλή. Πρέπει να το έχετε κατά νου κατά τη διαμόρφωση των ασφαλειών σας.
Fuse Bits στο Arduino
Έχουμε μιλήσει πολύ για ασφάλειες στην παραπάνω ενότητα, αλλά σε αυτήν την ενότητα, ας μιλήσουμε για το πώς να τις διαμορφώσετε και πώς να τις γράψετε σε έναν μικροελεγκτή. Για αυτό, θα χρειαστούμε ένα εργαλείο που ονομάζεται Avrdude. Είναι ένα εργαλείο που μπορεί να χρησιμοποιηθεί για ανάγνωση, εγγραφή και τροποποίηση της μνήμης σε μικροελεγκτές AVR. Λειτουργεί με SPI και έχει μια μεγάλη λίστα υποστήριξης για διαφορετικούς τύπους προγραμματιστών. μπορείτε να κατεβάσετε το εργαλείο από τον παρακάτω σύνδεσμο. Επίσης, θα χρησιμοποιούμε τον αγαπημένο μας μικροελεγκτή Arduino.
- Λήψη Avrdude Version 6.3 Windows-ming32
Τώρα, που έχετε Avrdude, πρέπει να το εξαγάγετε και να ανοίξετε ένα παράθυρο εντολών σε αυτόν το φάκελο. Επίσης, εάν σκοπεύετε να το χρησιμοποιήσετε αργότερα, μπορείτε να προσθέσετε τη διαδρομή φακέλου στην ενότητα μεταβλητής περιβάλλοντος παραθύρων. Αλλά θα το βάλω στην επιφάνεια εργασίας μου και θα ανοίξω ένα παράθυρο εντολών εκεί. Μόλις το κάνουμε αυτό, θα συνδέσουμε τον προγραμματιστή USBasp στον υπολογιστή μας και θα διασφαλίσουμε ότι διαθέτουμε το κατάλληλο πρόγραμμα οδήγησης για τον προγραμματιστή USBasp. Μόλις το κάνουμε αυτό, θα πρέπει να ξεκινήσουμε και θα διαβάσουμε πρώτα την προεπιλεγμένη τιμή ασφάλειας. Για να το κάνετε αυτό, πρέπει να εκτελέσετε την ακόλουθη εντολή.
avrdude.exe -c usbasp -p m328p -U lfuse: r: low_fuse_val.txt: h -U hfuse: r: high_fuse_val.txt: h-U efuse: r: ext_fuse_val.txt: h
Εάν όλα είναι σωστά, αυτή η εντολή θα διαβάσει τα byte ασφαλειών και θα τα τοποθετήσει σε τρία ξεχωριστά αρχεία κειμένου. Η παρακάτω εικόνα θα σας δώσει μια καλύτερη ιδέα για τη διαδικασία.
Όπως μπορείτε να δείτε, το Avrdude διάβασε τα bit ασφαλείας στο Arduino nano και τα έσωσε σε τρία ξεχωριστά αρχεία κειμένου. Τώρα, τα ανοίξαμε και αποκτήσαμε τρεις τιμές. για EFUSE: 0xFD, για HFUSE: 0XDA, για LFUSE: 0xFF. Αυτή ήταν η προεπιλεγμένη τιμή ασφάλειας που έχουμε για ένα Arduino nano. Τώρα, ας μετατρέψουμε αυτά τα bits σε δυαδικά και συγκρίνουμε τα με την προεπιλεγμένη τιμή τους από το φύλλο δεδομένων. Ο παρακάτω πίνακας δείχνει ακριβώς αυτό.
Για ευκολία, τα bit ασφάλειας γράφονται σε δεκαεξαδικές τιμές, αλλά αν τα μετατρέψουμε σε δυαδικές τιμές και τα συγκρίνουμε με το φύλλο δεδομένων, θα γνωρίζουμε τι συμβαίνει. Ας ξεκινήσουμε με το Lower Fuse Byte. Όπως μπορείτε να δείτε από την παραπάνω συμβολοσειρά, ορίζεται σε 0XFF και η δυαδική τιμή θα είναι 0B11111111.
Σύγκριση μετοχών χαμηλότερης ασφάλειας με το Arduino:
Byte χαμηλής ασφάλειας |
Όχι bit |
Προεπιλεγμένη τιμή στο AVR |
Προεπιλεγμένη τιμή του Arduino |
CKDIV8 |
7 |
0 (προγραμματισμένο) |
1 (μη προγραμματισμένο) |
ΚΚΟΥΤ |
6 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
SUT1 |
5 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
SUT0 |
4 |
0 (προγραμματισμένο) |
1 (μη προγραμματισμένο) |
CKSEL3 |
3 |
0 (προγραμματισμένο) |
1 (μη προγραμματισμένο) |
CKSEL2 |
2 |
0 (προγραμματισμένο) |
1 (μη προγραμματισμένο) |
CKSEL1 |
1 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
CKSEL0 |
0 |
0 (προγραμματισμένο) |
1 (μη προγραμματισμένο) |
Το Higher Fuse Byte έχει οριστεί σε 0XDA σε δυαδικό ψηφίο που είναι 0B11011010.
Υψηλότερη ασφάλεια byte στο δυαδικό:
Υψηλή ασφάλεια byte |
Όχι bit |
Προεπιλεγμένη τιμή στο AVR |
Προεπιλεγμένη τιμή του Arduino |
RSTDISBL |
7 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
DWEN |
6 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
ΠΕΔΙΟ |
5 |
0 (προγραμματισμένο) |
0 (προγραμματισμένο) |
WDTON |
4 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
EESAVE |
3 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
BOOTSZ1 |
2 |
0 (προγραμματισμένο) |
0 (προγραμματισμένο) |
BOOTSZ0 |
1 |
0 (προγραμματισμένο) |
1 (μη προγραμματισμένο) |
BOOTRST |
0 |
1 (μη προγραμματισμένο) |
0 (προγραμματισμένο)) |
Η ρύθμιση για το Extended Fuse Byte έχει οριστεί σε 0XFD, στο δυαδικό είναι 0B11111101.
Εκτεταμένο Fuse Byte στο Binary:
Εκτεταμένο Fuse Byte |
Όχι bit |
Προεπιλεγμένη τιμή στο AVR |
Προεπιλεγμένη τιμή του Arduino |
- |
7 |
1 |
1 |
- |
6 |
1 |
1 |
- |
5 |
1 |
1 |
- |
4 |
1 |
1 |
- |
3 |
1 |
1 |
BODLEVEL2 |
2 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
BODLEVEL1 |
1 |
1 (μη προγραμματισμένο) |
0 (προγραμματισμένο) |
BODLEVEL0 |
0 |
1 (μη προγραμματισμένο) |
1 (μη προγραμματισμένο) |
Τώρα, αυτό σηματοδοτεί το τέλος αυτής της ενότητας. Μέχρι τώρα, έχουμε μάθει πολλά για τον μικροελεγκτή AVR και τα bit fuse του. Λοιπόν, ας ολοκληρώσουμε αυτό το άρθρο δοκιμάζοντας τη θεωρία μας αλλάζοντας και πειραματιζόμαστε με μερικά από τα κομμάτια ασφαλειών στο Arduino Nano.
Απαιτούμενα στοιχεία για τον έλεγχο ασφάλειες στο AVR
Έχουμε μιλήσει πολύ για τις ασφάλειες στο παραπάνω μέρος. Αλλά για να προχωρήσουμε περαιτέρω στο άρθρο, χρειαζόμαστε ορισμένα στοιχεία υλικού και κάποια εργαλεία λογισμικού. Σε αυτήν την ενότητα, θα μιλήσουμε για αυτά. Παρακάτω εμφανίζεται μια λίστα με τα απαιτούμενα στοιχεία με εικόνες.
- Breadboard - 1
- Arduino Nano - 1
- Προγραμματιστής USBasp AVR - 1
- Καλώδιο USB - 1
- AVR 10-Pin to 6- Pin Converter - 1
- Avrdude (Εργαλείο λογισμικού για προγραμματισμό AVR)
- LED - 1
- Αντίσταση 330R - 1
- Καλώδια βραχυκύκλωσης
Σχηματική δοκιμή των Fuse Bits στο AVR
Η ρύθμιση δοκιμής υλικού φαίνεται παρακάτω σε αυτήν τη ρύθμιση. Έχουμε συνδέσει το Arduino Nano στον υπολογιστή με καλώδιο USB και έχουμε επίσης συνδέσει τον προγραμματιστή USBasp με τον υπολογιστή. Ο στόχος αυτού του άρθρου είναι ο προγραμματισμός των ασφαλειών bit στο AVR. Για αυτόν τον λόγο, έχουμε συνδέσει τον προγραμματιστή USBasp με το Arduino. Η παρακάτω εικόνα θα σας δώσει μια καλύτερη ιδέα για τη ρύθμιση.
Δοκιμή των ασφαλειών στο AVR
Η ρύθμιση δοκιμής φαίνεται παρακάτω. Όπως μπορείτε να δείτε, έχουμε συνδέσει τον προγραμματιστή Arduino και το USBasp και στο USB του φορητού υπολογιστή μου.
Ας ανοίξουμε τώρα το Arduino IDE και ανεβάστε ένα βασικό σκίτσο αναβοσβήνει. Το περιεχόμενο του βασικού σκίτσου αναβοσβήνει είναι αυτονόητο, επομένως δεν έβαλα λεπτομέρειες σχετικά με αυτό.
Θα δείτε στο βίντεο ότι το led στο pin no 13 αναβοσβήνει όπως θα έπρεπε. Τώρα ας τροποποιήσουμε τις ρυθμίσεις ασφάλειας και να τις ορίσουμε στις προεπιλεγμένες τιμές. Και όπως είδαμε προηγουμένως στο φύλλο δεδομένων. το EFUSE είναι 0XFF. το HFUSE είναι D9. Το LFUSE είναι: 62. Τώρα ας το διαμορφώσουμε με το Avrdude, να το αναβοσβήσουμε και να δούμε τι συμβαίνει. Ο κωδικός που θα χρησιμοποιήσουμε είναι-
avrdude -c usbasp -p m328P -U lfuse: w: 0x62: m -U hfuse: w: 0xd9: m -U efuse: w: 0xff: m
Μόλις το κάνω αυτό, θα δείτε ότι η λυχνία LED θα αναβοσβήνει πολύ αργά επειδή έχουμε υπολογίσει και προγραμματίσει την τιμή για ένα ρολόι 16Mhz και τώρα αφού κάψουμε τις ασφάλειες, είναι μόνο ένας εσωτερικός ταλαντωτής RC 1Mhz. Γι 'αυτό το LED αναβοσβήνει τόσο αργά. Τώρα ας προσπαθήσουμε να ανεβάσετε ξανά ένα σκίτσο. Θα δούμε ότι το Arduino εμφανίζει σφάλμα και ο κώδικας δεν έχει μεταφορτωθεί. Διότι αλλάζοντας τις ασφάλειες, έχουμε επίσης βλάψει τις ρυθμίσεις του bootloader. Μπορείτε να το δείτε στην παρακάτω εικόνα.
Για να το διορθώσουμε αυτό και να επαναφέρουμε το Arduino όπως ήταν πριν, πρέπει να κάψουμε ξανά το bootloader για το Arduino. Για να το κάνετε αυτό, μεταβείτε στο Εργαλεία -> Προγραμματιστής - USBasp και μόλις το κάνουμε αυτό, μπορούμε πάλι να πάμε στα εργαλεία και να κάνουμε κλικ στην επιλογή εγγραφής εκκίνησης. Αυτό θα κάψει ξανά το stock bootloader στο Arduino σας και όλα θα επιστρέψουν όπως ήταν πριν.
Αφού ο bootloader αναβοσβήνει πίσω στο Arduino, επέστρεψε στην αρχική του κατάσταση και η τελευταία εικόνα σας δείχνει ένα LED που αναβοσβήνει αφού το bootloader κάηκε ξανά.
Και αυτό σηματοδοτεί το τέλος αυτού του άρθρου. Ελπίζω να απολαύσατε το άρθρο και να μάθετε κάτι νέο. Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με το άρθρο, μην διστάσετε να υποβάλετε ένα σχόλιο παρακάτω.