Πώς να προγραμματίσετε ένα AVR (arduino) με άλλο Arduino: 7 βήματα
Πώς να προγραμματίσετε ένα AVR (arduino) με άλλο Arduino: 7 βήματα

Βίντεο: Πώς να προγραμματίσετε ένα AVR (arduino) με άλλο Arduino: 7 βήματα

Βίντεο: Πώς να προγραμματίσετε ένα AVR (arduino) με άλλο Arduino: 7 βήματα
Βίντεο: Lesson 95: Using L293D 4 DC Motors Shield for Arduino UNO and Mega | Arduino Step By Step Course 2025, Ιανουάριος
Anonim

Αυτές οι οδηγίες είναι χρήσιμες εάν:

* έχετε το arduino με το atmega168 και αγοράσατε ένα atmega328 στο τοπικό σας κατάστημα ηλεκτρονικών ειδών. Δεν διαθέτει arduino bootloader * θέλετε να κάνετε ένα έργο που δεν χρησιμοποιεί arduino - απλά ένα κανονικό τσιπ AVR (όπως το USBTinyISP) - έχετε ένα καθαρό attiny2313/attiny48 κ.λπ. στο οποίο θέλετε να κάψετε firmware. Κανονικά θα έπρεπε να έχετε έναν ISP (Προγραμματιστή συστήματος) όπως το USBTinyISP για να προγραμματίσετε το νέο σας τσιπ. Έχοντας το arduino, μπορείτε να το μάθετε να είναι προγραμματιστής χάρη σε μια εξαιρετική δουλειά του Randall Bohn. Δημιούργησε το Mega -ISP - ένα σκίτσο arduino που λειτουργεί σαν προγραμματιστής.

Βήμα 1: Τι χρειάζεστε;

* ένα λειτουργικό Arduino (ή ένας κλώνος - χρησιμοποιώ το BBB - BareBonesBoard και ένα RBBB - RealBareBonesBoard by ModernDevices) * ένα τσιπ που θέλετε να προγραμματίσετε (δοκιμάστηκε με atmega8, atmega168, atmega368, attiny2313, attiny13) * ένα breadboard ή ένας πίνακας με κεφαλίδα ISP * 3 leds + 3 αντιστάσεις * καλώδια breadboard

Βήμα 2: Δημιουργία του Mega-isp Programmer σε Breadboard

Υπάρχουν δύο τρόποι για να συνδέσετε το Arduino σας για να προγραμματίσετε ένα τσιπ.

Μπορείτε να συνδέσετε το τσιπ avr σε ένα breadboard και να συνδέσετε 5v και GND στις αντίστοιχες ακίδες (ελέγξτε το φύλλο δεδομένων!) + Μια αντίσταση έλξης για επαναφορά και να συνδέσετε τις καρφίτσες από το arduino σας στο τσιπ. Αυτές είναι οι γραμμές στο Arduino και η λειτουργία τους 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Επαναφορά) Or μπορείτε να δημιουργήσετε μια κεφαλίδα ISP 2x3pin που μπορείτε να συνδέσετε σε έναν πίνακα που παρέχει έναν (έναν άλλο πίνακα arduino). Το pinout για την κεφαλίδα του ISP βρίσκεται στην τρίτη εικόνα Υπάρχουν 3 led που υποδεικνύουν την κατάσταση του προγραμματιστή. καρφίτσα 9 - μπλε led - είναι η ακρόαση του προγραμματιστή. καρφίτσα 8 - κόκκινο led - υποδεικνύει ένα σφάλμα καρφίτσα 7 - πράσινο led - δείχνει ότι ο προγραμματισμός λαμβάνει χώρα (ήμουν τεμπέλης και δεν ταίριαξα με τα χρώματα στη ρύθμισή μου) Εδώ είναι τα σχέδια που έγιναν στο Fritzing Μπορείτε επίσης να κάνετε MEGA-isp ασπίδα. Ο Yaroslav Osadchyy σχεδίασε την ασπίδα στον αετό. Μπορείτε να λάβετε τα αρχεία αετών στον ιστότοπό του:

Βήμα 3: Μεταφόρτωση του σκίτσου

Κατεβάστε το σκίτσο από τον mega-isp google code. (Avrisp.03.zip κατά τη στιγμή της γραφής). Αποσυσκευάστε το και εκτελέστε το arduino ide και ανοίξτε το avrisp.pde. Ανεβάστε το στον πίνακα arduino. Ο καρδιακός παλμός led πρέπει να αρχίσει να χτυπά.

Βήμα 4: Χρήση με το Avrdude

Για να χρησιμοποιήσετε το avrdude (και όλα τα GUI που το χρησιμοποιούν) πρέπει να επιλέξετε τον προγραμματιστή «avrisp». το ασφαλέστερο bitrate είναι το 19200.

Για να δοκιμάσετε το νέο σας atmega168 από τη γραμμή εντολών δοκιμάστε: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 είναι η θύρα που συνδέεται το arduino με το linux box μου (το δικό σας μπορεί να είναι com5). Αυτό μπορεί να ελεγχθεί στο arduino IDE στο Tools -> Serial Port. Θα πρέπει να πάρετε: [kabturek@hal -9000]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: Η συσκευή AVR έχει προετοιμαστεί και είναι έτοιμη να δεχτεί οδηγίες Ανάγνωση | ################################################### | 100% 0.13s avrdude: Υπογραφή συσκευής = 0x1e9406 avrdude: safemode: Ασφάλειες ΟΚ avrdude ολοκληρώθηκε. Σας ευχαριστώ. Αυτό σημαίνει ότι όλα είναι εντάξει. Εάν λάβετε σφάλματα - ελέγξτε το τελευταίο βήμα.

Βήμα 5: Κάψιμο υλικολογισμικού USBtinyISP σε Attiny2313

Το USBTinyISP είναι ένας εξαιρετικός προγραμματιστής από τη LadyAda που είναι πραγματικά φθηνό - 22 $. Είχα μια εφεδρική attiny2313 και μερικά μέρη, έτσι αποφάσισα να φτιάξω ένα μόνος μου. Εάν δεν έχετε εμπειρία στην κατασκευή PCB, συμβουλεύεστε να αγοράσετε το κιτ γιατί είναι υψηλότερης ποιότητας από ό, τι μπορείτε να φτιάξετε μόνοι σας:). Αγοράστε τουλάχιστον το PCB εάν θέλετε να φτιάξετε ένα. Μπορείτε να το πάρετε από το Adafruit. Συνδέστε το ATtiny2313Στην τελευταία εικόνα μπορείτε να δείτε το attiny2313 με κόκκινες τις καρφίτσες που χρησιμοποιούνται για τον ISP. Η εικόνα προέρχεται από το σεμινάριο LadyAda avr. Κάψιμο του υλικολογισμικού: Αποσυσκευάστε το υλικολογισμικό USBTinyISP. Μεταβείτε στο spi dir και εκτελέστε $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 για να ελέγξετε αν όλα είναι εντάξει με το τσιπ. Τώρα ρυθμίστε τις ασφάλειες: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Τώρα πρέπει να συνδέσετε τον εξωτερικό ταλαντωτή 12 mhz στο τσιπ Το Και κάψτε το υλικολογισμικό: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Το attiny2313 διαθέτει υλικολογισμικό USBTinyISP.

Βήμα 6: Κάψιμο του Arduino Bootloader

Εξαπάτησα λίγο γιατί χρησιμοποίησα ένα RBBB για να απλοποιήσω τις συνδέσεις. Το σχήμα είναι στην εικόνα #2. Εάν χρησιμοποιείτε 2 arduinos, χρησιμοποιήστε την εικόνα #3 και συνδέστε τον ακροδέκτη ISP στο ICSP 2x3header στο δεύτερο (slave) arduino. Συνδέστε μόνο την τροφοδοσία usb στον πρώτο πίνακα. Ο τρόπος GUI Αυτό είναι λίγο περίπλοκο γιατί δεν μπορείτε απλά να χρησιμοποιήσετε το Tools-> Burn Bootloader-> w/ AVR ISP γιατί η προεπιλεγμένη ταχύτητα είναι πολύ μεγάλη για mega-isp. Βρείτε το avrdude.conf που συνοδεύει το arduino IDE (στο arduino/hardware/tools/avrdude.conf) και αλλάξτε το όριο για τον προγραμματιστή avrisp από 115200 σε 19200 (γύρω από τη γραμμή 312) Βρείτε και αλλάξτε στο avrdude.conf προγραμματιστή id = "avrisp" ? desc = "Atmel AVR ISP"; baudrate = 115200; # προεπιλογή είναι 115200 type = stk500; ? προς: προγραμματιστής id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # προεπιλογή είναι 115200 type = stk500; ? Τώρα μπορείτε να χρησιμοποιήσετε το Tools -> Burn Bootloader -> w/AVR ISP (αφού επιλέξετε την κατάλληλη πλακέτα από το μενού Tools) Commanline Μπορείτε επίσης να χρησιμοποιήσετε τη γραμμή εντολών: Επεξεργασία arduino/hardware/bootloaders/atmega/Makefile και αλλαγή ISPTOOL/PORT /SPEED σε: # εισαγάγετε τις παραμέτρους για το avrdude isp tool ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 όχι, μπορείτε να γράψετε $ make diecimila_isp για να κάψετε ασφάλειες και το bootloader. Δοκιμάστε τώρα να συνδέσετε νέο arduino σε usb και κάψε το blinky!

Βήμα 7: Αντιμετώπιση προβλημάτων

Σφάλματα Avrdude: avrdude: ser_open (): δεν μπορώ να ανοίξω τη συσκευή "/dev/ttyUSB0": Δεν υπάρχει τέτοιο αρχείο ή κατάλογος Έχετε καθορίσει λάθος θύρα (-P) ή το arduino σας δεν είναι συνδεδεμένο. ελέγξτε τη σύνδεση avrdude: Υπογραφή συσκευής = 0x000000 avrdude: Yikes! Μη έγκυρη υπογραφή συσκευής. Ελέγξτε ξανά τις συνδέσεις και δοκιμάστε ξανά ή χρησιμοποιήστε -F για να παρακάμψετε αυτόν τον έλεγχο. Αυτό είναι ένα είδος γενικού σφάλματος. Το τσιπ σας δεν αναγνωρίζεται. Ελέγξτε τη σύνδεση στον πίνακα (GND/5V συνδεδεμένο με ακίδες;) Θα λάβετε αυτό το σφάλμα όταν το τσιπ σας έχει ρυθμιστεί να χρησιμοποιεί έναν εξωτερικό ταλαντωτή και δεν λειτουργεί (δεν υπάρχει ούτε ένας ή δεν ταλαντεύεται σωστά - καπάκια 22pf λείπει ?)