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

Προγραμματιστής VUSBTiny AVR SPI: 3 βήματα
Προγραμματιστής VUSBTiny AVR SPI: 3 βήματα

Βίντεο: Προγραμματιστής VUSBTiny AVR SPI: 3 βήματα

Βίντεο: Προγραμματιστής VUSBTiny AVR SPI: 3 βήματα
Βίντεο: Programando microcontrolador ATTiny2313 com programador STK200 2024, Νοέμβριος
Anonim
Προγραμματιστής VUSBTiny AVR SPI
Προγραμματιστής VUSBTiny AVR SPI

αφού έφτιαξα έναν προγραμματιστή usbtiny isp και τον χρησιμοποίησα για 6 μήνες, κοίταζα να φτιάξω έναν άλλο για μεταφορά. μου αρέσει η απλότητα του σχεδιασμού usbtiny isp, αλλά θα ήθελα να το κάνω ακόμα μικρότερο και να λάβω λιγότερα μέρη. Ένα πράγμα στον αρχικό σχεδιασμό που θέλω να αλλάξω είναι να εξαλείψω τη χρήση κρυστάλλου ρολογιού. Μια λύση που βρήκα είναι ότι τα προγράμματα οδήγησης v-usb υποστηρίζουν τον εσωτερικό ταλαντωτή 16.5Mhz σε συσκευές attiny25/45/85. Έτσι ξεκινάω αυτό το έργο για να έχει το usbtiny isp χρησιμοποιεί v-usb για επικοινωνία usb. τα άμεσα οφέλη είναι ότι εξοικονομεί χώρο και έχει λιγότερους αριθμούς εξαρτημάτων (όχι περισσότερους κρυστάλλους). πρωτόκολλο για τους μικροελεγκτές Atmel ATtiny. Φυσικά, θα λειτουργήσει και στη σειρά ATmega. Το λογισμικό είναι γραμμένο για AVR χρονισμένο στα 12 MHz. Σε αυτή τη συχνότητα, κάθε bit στο δίαυλο USB διαρκεί 8 κύκλους ρολογιού και με πολλά τέχνασμα, είναι δυνατή η αποκωδικοποίηση και η κωδικοποίηση των κυματομορφών USB μέσω λογισμικού. Το πρόγραμμα οδήγησης USB χρειάζεται περίπου 1250 έως 1350 byte χώρου φλας (εξαιρουμένων των προαιρετικών συμβολοσειρών αναγνώρισης), ανάλογα με τη διαμόρφωση και την έκδοση του μεταγλωττιστή και 46 bytes RAM (εξαιρουμένου του χώρου στοίβας). Η διασύνδεση C αποτελείται από 3 έως 5 λειτουργίες, ανάλογα με τη διαμόρφωση.vusb περιγραφή από https://www.obdev.at/products/vusb/ Το V-USB είναι υλοποίηση μόνο λογισμικού μιας συσκευής USB χαμηλής ταχύτητας για Atmel's Μικροελεγκτές AVR, καθιστώντας δυνατή την κατασκευή υλικού USB με σχεδόν οποιοδήποτε μικροελεγκτή AVR, χωρίς να απαιτείται πρόσθετο τσιπ. Βίντεο για την κατασκευή και τη χρήση

Βήμα 1: Χαρακτηριστικά και μέρη

Χαρακτηριστικά και ανταλλακτικά
Χαρακτηριστικά και ανταλλακτικά

* λογική προγραμματισμού από usbtiny isp, ώριμη υποστήριξη avr-dude * μικρό πόδι εκτύπωσης * ελάχιστα στοιχεία * δυνάμεις συσκευής στόχου σημειώστε ότι οι γραμμές io προς το mcus στόχο δεν προστατεύονται. μπορείτε να προσθέσετε αντιστάσεις 1k-2k στο SCK και MOSI και να προστατεύσετε από πιθανές εσφαλμένες συνδέσεις αναφορές που βασίζονται στα έργα που βρέθηκαν στο v-usb από το πλαίσιο https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl/~ dicks/avr/usbtiny/λίστα μερών * attiny45/85 (85 είναι πιο εύκολο να φτάσετε) * 3.6v δίοδοι zener (1n747, BZX79,..αποφύγετε τύπους 1W) * αντίσταση 68ohm x 2 * 1.5K αντίσταση * μίνι breadboard 170 tiepoints * καλώδιο usb (καλώδιο εκτυπωτή usb κατάστημα καλής ποιότητας) * αντιστάσεις 1k/2k για προστασία γραμμών io (προαιρετικά) απαιτούνται εργαλεία * εργάσιμος προγραμματιστής avr (ναι, είναι ένα catch22, χρειαζόμαστε ένα για να φτιάξουμε ένα) * περιβάλλον προγραμματισμού avr

Βήμα 2: Διάταξη Breadboard, Σχηματική και Κατασκευή

Διάταξη Breadboard, Σχηματική και Κατασκευή
Διάταξη Breadboard, Σχηματική και Κατασκευή
Διάταξη Breadboard, Σχηματική και Κατασκευή
Διάταξη Breadboard, Σχηματική και Κατασκευή

κατασκευή

* ακολουθήστε τη διάταξη του breadboard, δεν υπάρχουν εξαρτήματα, 3 αντιστάσεις, 2 δίοδοι, 1 καπάκι, συν ένα mcu 8 ακίδων. * Πάρτε ένα καλώδιο εκτυπωτή usb κατάστημα, κόψτε το άκρο του εκτυπωτή, θα υπάρχουν 4 εκτεθειμένα καλώδια, ασφαλίστε και μετατρέψτε τα σε αρσενική κεφαλίδα 4 ακίδων, θα το χρησιμοποιήσουμε για να συνδεθούμε στο breadboard. συμβουλευτείτε το σχηματικό για τη διάταξη και την ανάθεση καρφιτσών (J1). * προσέξτε την πολικότητα της διόδου.

χτίζοντας και αναβοσβήνοντας το έργο

το έργο χτίστηκε σε ένα διαυγές κουτί linux ubuntu με εργαλειοθήκη avr-gcc. υποτίθεται ότι έχετε ήδη ένα τέτοιο περιβάλλον ή μπορείτε να μάθετε από το Διαδίκτυο πώς να το ρυθμίσετε. οι πηγαίοι κώδικες διαθέτουν άδεια gnu gpl v2 από κληρονομικότητα.

ο πηγαίος κώδικας ακολουθεί μια σύμβαση που συνιστάται από το v-usb, μπορείτε να κατεβάσετε το πακέτο προέλευσης vusbtiny.tgz και να μην εμφανιστεί σε έναν κατάλογο έργου. μέσα στον πηγαίο κατάλογο, υπάρχει ένα main.c, το οποίο είναι η δική μου έκδοση του τροποποιημένου προγραμματιστή usbtiny. και έναν υπο-κατάλογο usbdrv, ο οποίος περιέχει το επίπεδο v-usb. τηρήστε τον όρο αδειοδότησης από τα δύο παραπάνω έργα κατά την κατασκευή αυτού. η πηγή μου στη λογική του προγραμματιστή βασίζεται στην έκδοση του Dick Streefland και όχι στην έκδοση ladyada (αν και είναι σχεδόν οι ίδιες).

για όσους δεν έχουν build-αλυσίδα, μπορείτε να χρησιμοποιήσετε το παρακάτω δυαδικό

κάντε κλικ για λήψη του vusbtiny.hex

και χρησιμοποιήστε το avrdude για να κάνετε flash firmware

avrdude -c usbtiny -p t45 -e -V -U flash: w: usbtiny.hex

(εάν η συσκευή σας είναι tiny85, αντικαταστήστε -p t45 w/ -p t85)

πηγή μπορείτε να κατεβάσετε εδώ κάντε κλικ για λήψη vusbtiny.tgz

ξεφορτώστε το πακέτο προέλευσης στον κατάλογο εργασίας σας

tar -zxvf vusbtiny.tgz

* do cd vsubtiny, για να μεταβείτε σε κατάλογο εργασίας vusbtiny * ajust makefile για συσκευή -στόχο σύμφωνα με το τσιπ που θα χρησιμοποιήσετε. δηλ. PROGRAMMER_MCU = t45 ή t85 * κάντε ένα make * επισυνάψτε τον αγαπημένο σας προγραμματιστή ISP * τροποποιήστε το makefile και αλλάξτε τις παραμέτρους avrdude σας εάν χρειάζεται. το απόθεμα που αναλαμβάνει ένας προγραμματιστής USBTiny. δηλαδή AVRDUDE_PROGRAMMERID = usbtiny * flash firmware μέσω make install

μετά το αναβοσβήσιμο του υλικολογισμικού, πρέπει να ρυθμίσουμε σωστά την ασφάλεια, χρησιμοποιούμε επαναφορά του pin 1 ως io σε αυτό το έργο

* ρολόι ppl που χρησιμοποιείται όπως απαιτείται από το στρώμα v-usb για χρονισμό usb * το pin reset είναι απενεργοποιημένο καθώς πρέπει να το χρησιμοποιούμε ως io

avrdude -c usbtiny -p t45 -V -U lfuse: w: 0xe1: m -U hfuse: w: 0x5d: m -U efuse: w: 0xff: m

αυτή η ρύθμιση απενεργοποιεί τον περαιτέρω προγραμματισμό μέσω 5V SPI καθώς χρειαζόμαστε τον ακροδέκτη RESET (pin1) για io. θα χρειαστείτε πρόσβαση σε έναν προγραμματιστή HVSP για να ανακτήσετε την ασφάλεια.

Βήμα 3: Χρήση και εφαρμογή

Χρήση και εφαρμογή
Χρήση και εφαρμογή
Χρήση και εφαρμογή
Χρήση και εφαρμογή
Χρήση και εφαρμογή
Χρήση και εφαρμογή

αναβοσβήνει απευθείας στο breadboard

εάν χρησιμοποιείτε το vusbtiny για να αναβοσβήνει συσκευές AVR 8 ακίδων, μπορείτε απλά να πατήσετε τη συσκευή προορισμού σας πάνω από τη συσκευή προγραμματιστή. ο προγραμματιστής είχε σχεδιαστεί έτσι ώστε οι ακίδες προγραμματισμού να ταιριάζουν με τους στόχους. Υπάρχει όμως ένα κόλπο, θα χρειαστεί να απομονώσετε τους ακροδέκτες 2 και 3 στον προγραμματιστή mcu, καθώς είναι οι ακροδέκτες USB D+ και D- που συνδέονται με τον υπολογιστή. Χρησιμοποιώ μια κοπή ταινίας για να το πετύχω, μπορείτε να το δείτε στις φωτογραφίες. παρακάτω δείχνει ένα tiny13v που "οδηγά" στο tiny45, έτοιμο για λήψη υλικολογισμικού.

Ο ISP αναβοσβήνει μέσω βραχυκυκλωτήρα

για να προγραμματίσετε ένα κύκλωμα-στόχο μέσω ISP (προγραμματισμός εντός συστήματος), χρειάζεστε ένα καλώδιο ISP. εδώ δεν χρησιμοποιώ τις τυπικές κεφαλίδες 2x3 ή 2x5 pin. Αντ 'αυτού, χρησιμοποιώ έναν βραχυκυκλωτήρα 1x6, ο οποίος είναι πιο φιλικός προς το breadboard, μπορείτε να δημιουργήσετε κεφαλίδα 2x3 ή 2x5 pin, αντιστοιχίζοντάς τις στο J2, όπως φαίνεται στη διάταξη και τα σχήματα του breadboard. η παρακάτω φωτογραφία δείχνει ένα μικροσκοπικό2313 έτοιμο για λάμψη μέσω ISP.

αντιμετώπιση προβλημάτων

* δεν μπορεί να αναβοσβήνει το υλικολογισμικό; ελέγξτε τον αρχικό προγραμματιστή σας, ίσως χρειαστεί να ρυθμίσετε το χρόνο μέσω της σημαίας -B στο avrdude. προσπαθήστε να διαβάσετε το τσιπ 1ο, μπορεί να είναι μια κακή ασφάλεια, μπορεί το τσιπ σας να χρειάζεται εξωτερικό σήμα ρολογιού. ίσως χρειαστεί να επαναφέρετε το τσιπ σας στην προεπιλεγμένη 1η. * ελέγξτε τις συνδέσεις * εάν χρησιμοποιείτε διαφορετικές καρφίτσες io, ελέγξτε τον κωδικό και τις συνδέσεις * μπορείτε να αντικαταστήσετε διόδους zener w/ 500mw, τύπους 400mw * μπορείτε να δοκιμάσετε να μειώσετε την τιμή R3 σε 1,2K ή λιγότερο * είναι πιο πιθανό να αντιμετωπίσετε προβλήματα χρονισμού avrdude, δοκιμάστε -Β σημαία του avrdude, έχετε ένα πιο κοντό καλώδιο USB όλα βοηθούν

Συνιστάται: