Προγραμματιστές μικροελεγκτών AVR. Προγραμματιστές για μικροελεγκτές AVR (USB, COM, LPT) Σπιτικός προγραμματιστής usb για avr

10.09.2021

Σε αυτό το άρθρο θα περιγράψουμε τα στάδια κατασκευής βήμα προς βήμα. Προγραμματιστής USBasp για μικροελεγκτές AVR. Σε ξεχωριστά άρθρα θα παρέχουμε μια περιγραφή της εγκατάστασης προγραμμάτων οδήγησης για τα λειτουργικά συστήματα Windows XP και Windows 7 (x64/x86). Στο τέλος της ανάρτησης υπάρχει ένας σύνδεσμος με την απαραίτητη τεκμηρίωση για την κατασκευή ενός προγραμματιστή USBasp με τα χέρια σας.

Ο προγραμματιστής USBasp, λόγω της ευκολίας κατασκευής του και χρήσης φθηνών και ευρέως διαθέσιμων στοιχείων, έχει γίνει πολύ δημοφιλής στους ραδιοερασιτέχνες. Οι παράμετροι λειτουργίας του δεν είναι κατώτερες από τους επαγγελματίες και ακριβούς προγραμματιστές μικροελεγκτών AVR.

Κύρια χαρακτηριστικά του προγραμματιστή USBasp

  • Λειτουργεί με πολλά λειτουργικά συστήματα– Linux, Mac OS X και Windows – συμπεριλαμβανομένων των Windows 8!
  • Δεν απαιτεί εξωτερική τροφοδοσία.
  • Μπορεί να προγραμματίσει σε ταχύτητες έως 5 kB/s
  • Υπάρχει μια επιλογή (διακόπτης 2) για μείωση της ταχύτητας προγραμματισμού - για επεξεργαστές με χαλαζία μικρότερο από 1,5 MHz
  • Παρέχει τάση προγραμματισμού (Διακόπτης 1) 5 βολτ
  • Υποδεικνύει τη λειτουργία του προγραμματιστή με χρήση LED

Πριν ξεκινήσετε την εργασία, αξίζει να εξοικειωθείτε με τη σειρά όλων των ενεργειών που εκτελούνται, και συγκεκριμένα:

  1. Επιλογή διαγράμματος/σχέδιο πλακέτα τυπωμένου κυκλώματος
  2. Μεταφορά του σχεδίου της πλακέτας τυπωμένου κυκλώματος σε φύλλο φίμπεργκλας
  3. Χάραξη πλακέτας τυπωμένου κυκλώματος σε διάλυμα χλωριούχου σιδήρου
  4. Διάνοιξη οπών
  5. Τοποθέτηση στοιχείων (συγκόλληση)
  6. Προγραμματισμός προγραμματιστής Atmaga8
  7. Σύνδεση του προγραμματιστή σε υπολογιστή
  8. Εγκατάσταση προγραμμάτων οδήγησης – Windows XP, Windows 7
  9. Επιλογή προγράμματος που υποστηρίζει USBasp

Υπάρχουν πολλές εκδόσεις του προγραμματιστή USBasp, αλλά όλες βασίζονται στο κύριο κύκλωμα του Thomas Fischl. Το υλικολογισμικό του προγραμματιστή μικροελεγκτή είναι επίσης η συγγραφή του.

Αρχικό κύκλωμα προγραμματιστή:

Σε αυτήν την περίπτωση, το αρχικό σχήμα επιλέχθηκε ως βάση. Δεδομένου ότι η χρήση βραχυκυκλωτικών στο αρχικό κύκλωμα δεν είναι απολύτως βολική, αποφασίστηκε να χρησιμοποιηθούν διακόπτες DIP. Ορισμένες τιμές αντίστασης άλλαξαν επίσης.
Επιπλέον, στο αρχικό κύκλωμα, οι γραμμές TxD και RxD δρομολογούνται στην υποδοχή ISP, αν και αυτό δεν είναι απαραίτητο (ακριβέστερα, δεν χρησιμοποιούνται στην πράξη).

Ακολουθεί ένα διάγραμμα με τις αλλαγές που έγιναν:

Κατασκευή προγραμματιστή USBasp

Υπάρχουν πολλές εκδόσεις του PCB για αυτόν τον προγραμματιστή, μερικές μπορούν να βρεθούν στον επίσημο ιστότοπο USBasp. Ωστόσο, έφτιαξα το δικό μου με βάση το παραπάνω διάγραμμα.

Δυστυχώς, λόγω της χρήσης διακοπτών DIP, ο σχεδιασμός της πλακέτας έγινε λίγο πιο περίπλοκος, γεγονός που οδήγησε στη χρήση 2 βραχυκυκλωτών για να διασφαλιστεί ότι το PCB ήταν ακόμα μονής όψης.

Παρακάτω είναι το αποτέλεσμα του PCB:

Όπως φαίνεται στο σχήμα, ο προγραμματιστής δεν χρησιμοποίησε στοιχεία SMD. Ο κενός χώρος στον πίνακα «γεμίζει» με πεδίο μάζας, κυρίως για να αποφευχθεί η χάραξη μεγάλο αριθμόχαλκό, και επίσης να μειώσει την επίδραση των παρεμβολών στον προγραμματιστή.

Λίστα στοιχείων που χρησιμοποιούνται στον προγραμματιστή USBasp:

  • R1: 10 χιλ
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2k2
  • C1, C2: 22p
  • Γ3: 10μ
  • C4: 100n
  • LED1: Κόκκινο LED 20mA
  • LED2: Πράσινο LED στα 20mA
  • D2, D3: δίοδοι zener στα 3,6V
  • X1: Υποδοχή USB τύπου Β
  • SV1: υποδοχή IDC-10
  • Q1: Quartz 12MHz, σώμα HC49-S
  • SW1: Διακόπτης βύθισης σε τρεις θέσεις
  • IC1: Atmega8 ( ΣΗΜΕΙΩΣΗ: Ο μικροελεγκτής Atmega8 - PU δεν πρέπει να χρησιμοποιείται λόγω του περιορισμού της μέγιστης ταχύτητας ρολογιού στα 8 MHz!)

Το σχέδιο της πλακέτας τυπωμένου κυκλώματος προγραμματιστή USBasp μεταφέρθηκε σε laminate από υαλοβάμβακα χρησιμοποιώντας τη μέθοδο LUT (). Δεν θα περιγράψουμε πώς να το κάνουμε αυτό, καθώς υπάρχουν πολλές από αυτές τις πληροφορίες στο Διαδίκτυο.

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

Το επόμενο βήμα είναι η χάραξη της σανίδας σε διάλυμα χλωριούχου σιδήρου. Κατά τη χάραξη, είναι επιθυμητό να διατηρείται η θερμοκρασία του διαλύματος τουλάχιστον 40 C, επομένως βυθίστε το βάζο με το διάλυμα σε ζεστό νερό:


Αφού ολοκληρωθεί η διαδικασία χάραξης, πρέπει να αφαιρέσετε το τόνερ με ασετόν.

Το μόνο που μένει τώρα είναι να ανοίξουμε τις τρύπες. Αφού ολοκληρώσετε τη διαδικασία κατασκευής της πλακέτας, μπορείτε να ξεκινήσετε τη συγκόλληση των στοιχείων προγραμματιστή USBasp, ξεκινώντας από τους βραχυκυκλωτήρες.

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

Πρώτη κυκλοφορία του προγραμματιστή USBasp

Τώρα που όλα τα εξαρτήματα έχουν συγκολληθεί, το μόνο που μένει είναι να «φλασάρει» ο μικροελεγκτής Atmegę8 του ίδιου του προγραμματιστή. Για αυτό χρειάζεστε έναν ξεχωριστό προγραμματιστή, θα μπορούσε να είναι, για παράδειγμα, STK 200 (θύρα LPT), STK500, κ.λπ. Ο προγραμματιστής LPT συνδέεται στο USBasp μέσω της υποδοχής IDC-10.

Λάβετε υπόψη ότι η κατανομή των ακίδων στην υποδοχή του αρχικού προγραμματιστή (USBasp) βρίσκεται στα δεξιά, ενώ στην έκδοση που περιγράφεται σε αυτό το άρθρο βρίσκεται στα αριστερά:

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

Κατά τη διάρκεια του προγραμματισμού, ενεργοποιήστε τη λειτουργία SELF στρέφοντας το διακόπτη DIP No. 3 στη θέση ON. Χάρη σε αυτό, καθίσταται δυνατός ο προγραμματισμός του Atmega8. Αφού ολοκληρωθεί ο προγραμματισμός, η θέση του διακόπτη (3) πρέπει να τεθεί στο OFF.

Μπορείτε να κατεβάσετε την πιο πρόσφατη έκδοση υλικολογισμικού από τον επίσημο ιστότοπο. Προτείνουμε την έκδοση για το Atmega8, η οποία βρίσκεται στο αρχείο: usbasp.2011-05-28.tar.gz.

Σημειώστε ότι πριν προγραμματίσετε το Atmega8 πρέπει να ρυθμίσετε τις ασφάλειες που έχουν τις ακόλουθες τιμές:

  • # για Atmega8: HFUSE=0xC9 LFUSE=0xEF
  • # για Atmega48: HFUSE=0xDD LFUSE=0xFF

Εάν ο προγραμματισμός είναι επιτυχής, συνδέστε τον προγραμματιστή στην υποδοχή USB του υπολογιστή, η κόκκινη λυχνία LED θα πρέπει να ανάψει και ο υπολογιστής θα πρέπει να ειδοποιήσει ότι έχει εντοπιστεί νέος εξοπλισμός.

Εγκατάσταση προγραμμάτων οδήγησης προγραμματιστή USBasp

Η μέθοδος εγκατάστασης προγραμμάτων οδήγησης προγραμματιστή περιγράφεται σε ξεχωριστά άρθρα και τα ίδια τα προγράμματα οδήγησης είναι επίσης διαθέσιμα εκεί. Παρακάτω είναι άμεσοι σύνδεσμοι σε αυτά τα άρθρα:

  • Εγκατάσταση προγραμμάτων οδήγησης για τον προγραμματιστή USBasp στα Windows XP
  • Εγκατάσταση προγραμμάτων οδήγησης για προγραμματιστή USBasp Windows 7 x64/x86

Προγράμματα για τη λειτουργία του προγραμματιστή USBasp

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

Ο προγραμματιστής βασίζεται σε πρόγραμμα οδήγησης από την Objective Development και είναι πλήρως συμβατός σε εντολές με τον αρχικό προγραμματιστή AVR910 από την ATMEL. Περιγραφή της συσκευής. Η ασφάλεια προστατεύει τις γραμμές τροφοδοσίας της θύρας USB από τυχαία βραχυκυκλώματα στα κυκλώματα τροφοδοσίας του προγραμματιστή. Οι δίοδοι VD1, VD2 είναι πυρίτιο ανορθωτή και έχουν σχεδιαστεί για να μειώνουν την τροφοδοσία του μικροελεγκτή στα 3,6 V. Σύμφωνα με την τεκμηρίωση, ο ελεγκτής μπορεί να λειτουργήσει σε αυτήν την τάση τροφοδοσίας μέχρι μια συχνότητα λίγο μεγαλύτερη από 14 MHz. LED VL1 (" R.D."), VL2 (" WR") σηματοδοτούν τις τρέχουσες ενέργειες του προγραμματιστή και υποδεικνύουν τις λειτουργίες ανάγνωσης και εγγραφής. LED VL3 (" PWR”) υποδεικνύει ότι τροφοδοτείται ρεύμα στο .

Jumper J1 - ( Τροποποιώ) χρησιμοποιείται για τον αρχικό προγραμματισμό του προγραμματιστή ελέγχου MK. Όταν είναι κλειστό, ένας εξωτερικός προγραμματιστής συνδέεται στην υποδοχή ISP και το πρόγραμμα ελέγχου φορτώνεται στο MK. Μετά τον προγραμματισμό του προγραμματιστή ελέγχου MK, αυτός ο βραχυκυκλωτήρας πρέπει να ανοίξει και ο βραχυκυκλωτήρας J2 - NORMal πρέπει να κλείσει.

Jumper J3 ΧΑΜΗΛΟ SCKμειώνει τη συχνότητα ρολογιού της θύρας SPI του προγραμματιστή MK στα ~20 kHz. Όταν ο βραχυκυκλωτήρας είναι ανοιχτός, η συχνότητα SPI είναι κανονική, όταν είναι κλειστός, μειώνεται. Μπορείτε να αλλάξετε το βραχυκυκλωτήρα εν κινήσει, καθώς το πρόγραμμα ελέγχου του προγραμματιστή MK ελέγχει την κατάσταση της γραμμής PB0 κάθε φορά που γίνεται πρόσβαση στη θύρα SPI. Δεν συνιστάται η εναλλαγή του βραχυκυκλωτήρα κατά την εγγραφή/ανάγνωση ενός προγραμματιζόμενου μικροελεγκτή σε λειτουργία, καθώς αυτό πιθανότατα θα οδηγήσει σε παραμόρφωση των δεδομένων που γράφονται/διαβάζονται. Το Jumper J3 εισάγεται για να επιτρέπει τον προγραμματισμό μικροελεγκτών AVR χρονισμένους από έναν εσωτερικό ταλαντωτή 128 kHz.

Οι αντιστάσεις R10 - R14 έχουν σχεδιαστεί για να ταιριάζουν με τα επίπεδα σήματος του μικροελεγκτή του προγραμματιστή και των εξωτερικών κυκλωμάτων (προγραμματιζόμενος μικροελεγκτής ή άλλος προγραμματιστής). Η συχνότητα ρολογιού της θύρας SPI του προγραμματιστή MK με ανοιχτό jumper J3 είναι 187,5 kHz. Αυτό επιτρέπει στους ελεγκτές να προγραμματίζονται με ταχύτητες ρολογιού που κυμαίνονται από περίπου 570 kHz για το ATtiny/ATmega, 750 kHz για το 90S και 7,5 MHz για το 89S. Οι ελεγκτές προγραμματίζονται από 10 έως 30 δευτερόλεπτα (όταν χρησιμοποιείται το βοηθητικό πρόγραμμα AVRProg v.1.4 από το πακέτο AVR Studio) μαζί με επαλήθευση ανάλογα με την ποσότητα της μνήμης FLASH και τη συχνότητα ρολογιού.

Ένα τετράγωνο κύμα με συχνότητα 1 MHz εξέρχεται στην έξοδο LED του βύσματος ISP για να «αναβιώσει» τα MK που είχαν προγραμματίσει λανθασμένα bits ασφαλειών που είναι υπεύθυνα για το χρονισμό. Το σήμα παράγεται συνεχώς και δεν εξαρτάται από τον τρόπο λειτουργίας του προγραμματιστή. Ο προγραμματιστής δοκιμάστηκε με τα προγράμματα AVRProg v.1.4 (περιλαμβάνεται στο πακέτο AVRStudio), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). Για την κανονική λειτουργία του ελεγκτή στο κύκλωμα, είναι απαραίτητο να προγραμματιστούν τα bit (ρυθμιστεί σε "0") SPIEN, CKOPT, SUT0Και BODEN. Τυπικά μικροελεγκτές που προέρχονται από το εργοστάσιο, π.χ. νέο, έχουν ήδη προγραμματιστεί bit SPIEN. Τα υπόλοιπα bit πρέπει να αποπρογραμματιστούν (ρυθμιστεί σε "1").

Οδηγίες εγκατάστασης και λειτουργίας. Φλας το χειριστήριο. Συνδέστε τον φρεσκοψημένο προγραμματιστή στον υπολογιστή μέσω USB. Το λειτουργικό σύστημα θα βρει μια νέα συσκευή - AVR910 USB Programmer, όταν σας ζητηθεί να βρει αυτόματα το πρόγραμμα οδήγησης, να αρνηθεί και να καθορίσει τη διαδρομή προς το αρχείο inf, ανάλογα με το λειτουργικό σύστημα που είναι εγκατεστημένο στον υπολογιστή σας.

Το φόρουμ περιέχει όλα τα αρχεία, καθώς και την πλακέτα τυπωμένου κυκλώματος για τον προγραμματιστή μας avr. Εδώ θα σας δείξω την τεχνολογία για τη συναρμολόγηση του προγραμματιστή AVR USB και τη συσκευασία του σε θήκη. Πρώτα, κατεβάστε το αρχείο και φτιάξτε μια πλακέτα τυπωμένου κυκλώματος.

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

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

Εάν δεν υπάρχει ειδικός εξοπλισμός μέτρησης, μπορείτε να ελέγξετε χρησιμοποιώντας ένα LED. Η λυχνία LED συνδέεται με την άνοδο στην ακίδα LED και η κάθοδος σε οποιαδήποτε ακίδα GND του βύσματος ISP. Όταν εφαρμόζεται ρεύμα, το LED πρέπει να ανάβει σε πλήρη ένταση. Όταν κλείνουμε τα πόδια με τσιμπιδάκια κρυσταλλικός ταλαντωτήςΗ λυχνία LED θα πρέπει είτε να ανάβει σε "πλήρη λάμψη", είτε να μην λάμπει.

Χωρίς σφάλματα, ο συναρμολογημένος προγραμματιστής με σωστά προγραμματισμένο μικροελεγκτή δεν χρειάζεται να διαμορφωθεί. Αλλά εάν η είσοδος RESET ενός προγραμματιζόμενου MK συνδέεται με την τάση τροφοδοσίας μέσω μιας αντίστασης, τότε η τιμή της αντίστασης δεν πρέπει να είναι μικρότερη από 10 kOhm - αυτό οφείλεται στο μειωμένη τάσητροφοδοσία ρεύματος στον ελεγκτή ελέγχου στο κύκλωμα προγραμματιστή και εισαγωγή περιοριστικών αντιστάσεων στον δίαυλο σύνδεσης ISP.

Συζητήστε το άρθρο AVR USB PROGRAMMER

Ας μάθουμε τι είναι η διεπαφή ISP και ας δούμε έναν φθηνό και βολικό προγραμματιστή USB ISP. Ας δούμε τα σχηματικά διαγράμματα των απλούστερων προγραμματιστών για Μικροελεγκτές AVRχρησιμοποιώντας τις θύρες COM και LPT του υπολογιστή. Αυτές οι πληροφορίες είναι αρκετές για να αναβοσβήνουν τα περισσότερα μοντέλα μικροελεγκτών AVR όχι μόνο στο Linux, αλλά και σε άλλα λειτουργικά συστήματα.

Διασύνδεση προγραμματισμού ISP εντός συστήματος

Για να γράψετε ένα πρόγραμμα στον μικροελεγκτή AVR θα χρειαστείτε έναν προγραμματιστή.

Προγραμματιστής- είναι μικρό ηλεκτρονικό κύκλωμα, που σας επιτρέπει να συνδέσετε τον μικροελεγκτή σε μία από τις θύρες του υπολογιστή (COM, LPT, USB) για μετέπειτα ανάγνωση και εγγραφή του υλικολογισμικού (προγραμματισμός).

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

Η πιο αξιόπιστη και βολική επιλογή είναι ένας προγραμματιστής που συνδέεται σε θύρα USB, αφού σε καινούργια επιτραπέζιους υπολογιστέςκαι οι φορητοί υπολογιστές δεν έχουν πλέον εγκατεστημένες θύρες COM και LPT.

Στις έτοιμες συσκευές, ο προγραμματιστής συνδέεται με τον μικροελεγκτή μέσω μιας διεπαφής ISP(Σε προγραμματισμό συστήματος) - διεπαφή προγραμματισμού εντός συστήματος. Η διεπαφή ISP αποτελείται από πολλούς αγωγούς μέσω των οποίων λαμβάνονται ένα σήμα ρολογιού και δεδομένα για τη σύνδεση του προγραμματιστή με τον μικροελεγκτή.

Κατά κανόνα, η διεπαφή ISP τοποθετείται σε πλακέτες με τη μορφή δέκα ή έξι ακίδων, στις οποίες συνδέεται ο προγραμματιστής μέσω κατάλληλης υποδοχής μέσω καλωδίου.

Ρύζι. 4. Διασύνδεση ISP στην πλακέτα.

Σκοπός των ακίδων στη διεπαφή ISP:

  1. VCC - τροφοδοτικό συν, συνήθως +5V.
  2. GND - ισχύς μείον, γείωση (Γείωση).
  3. MOSI - εισαγωγή δεδομένων (Master Out Slave In).
  4. MISO - έξοδος δεδομένων (Master In Slave Out).
  5. SCK - σήμα ρολογιού (σειριακό ρολόι).
  6. RST - για παροχή σήματος επαναφοράς.

Για τον προγραμματισμό εντός κυκλώματος του μικροελεγκτή, αρκούν μόνο 4 ακίδες, αφού ο μικροελεγκτής μπορεί να τροφοδοτηθεί από το ίδιο το κύκλωμα όπου είναι εγκατεστημένο.

Πώς να συνδέσετε τον προγραμματιστή στο τσιπ μικροελεγκτή AVR εάν δεν είναι κολλημένος στο κύκλωμα; - πολύ απλά, χρησιμοποιώντας τις ίδιες ακίδες της διεπαφής ISP, εάν χρειάζεται, τροφοδοτώντας τον μικροελεγκτή από την πηγή τροφοδοσίας.

Προγραμματιστής USB ISP ASP

Για να δουλέψω με τσιπ AVR, αγόρασα έναν φθηνό προγραμματιστή USB ISP για περίπου 10 $. Μια τέτοια συσκευή πωλείται τώρα σε πολλά εγχώρια και ξένα ηλεκτρονικά καταστήματα, επομένως δεν πρέπει να υπάρχουν προβλήματα με την αγορά.

Ρύζι. 5. USB ISP - προγραμματιστής με καλώδιο για εντός κυκλώματος Προγραμματισμός AVRμικροελεγκτές από την ATMEL.

Αυτός ο προγραμματιστής είναι ασφαλής στη χρήση, μικρός σε μέγεθος και υποστηρίζεται από τα περισσότερα προγράμματα για μικροελεγκτές AVR που αναβοσβήνουν. USB ISP λειτουργεί σε λειτουργικά συστήματα Συστήματα Linux, Mac OS X και Windows. Για Linux, δεν χρειάζεται να εγκαταστήσετε κανένα πρόγραμμα οδήγησης, αφού συνδέσετε τον προγραμματιστή Θύρα USBΗ συσκευή θα εντοπιστεί αμέσως και θα είναι έτοιμη για χρήση.

Παρακάτω θα δώσω το pinout των υποδοχών του προγραμματιστή USB ISP - θα μας φανεί χρήσιμο αργότερα κατά τη σύνδεση στον μικροελεγκτή.

Ρύζι. 6. Θέση των ακίδων επάνω Υποδοχή USB ISP (pinout).

Ρύζι. 7. Θέση των επαφών στις υποδοχές σύνδεσης που είναι συνδεδεμένες στον προγραμματιστή USB ISP.

Τι να κάνετε εάν δεν μπορείτε να αγοράσετε έναν προγραμματιστή USB ISP;- μπορείτε να προγραμματίσετε μικροελεγκτές χρησιμοποιώντας απλούς αυτοσχέδιους προγραμματιστές που συνδέονται σε μια θύρα COM ή LPT, αλλά είναι καλύτερο να φτιάξετε μόνοι σας έναν ISP USB και να προγραμματίσετε το τσιπ μικροελεγκτή για αυτό μια φορά με έναν απλό οικιακό προγραμματιστή μέσω μιας θύρας COM ή LPT.

Ρύζι. 8. Σχηματικό διάγραμμασπιτικός προγραμματιστής USB ASP ISP.

Λεπτομερείς πληροφορίες για την κατασκευή USB ASP, καθώς και πλακέτες τυπωμένων κυκλωμάτων, προγράμματα οδήγησης και υλικολογισμικό για τον μικροελεγκτή μπορείτε να βρείτε στον επίσημο ιστότοπο: http://www.fischl.de/usbasp/

Επιπλέον, υπάρχουν πολλοί πόροι σε αυτόν τον δωρεάν προγραμματιστή στο Διαδίκτυο, υπάρχουν πολλές έτοιμες διατάξεις πλακέτας τυπωμένου κυκλώματος, συμπεριλαμβανομένου του προγράμματος SprintLayout, επομένως δεν θα σταθούμε σε αυτό λεπτομερώς σε αυτό το άρθρο.

Προγραμματιστής που χρησιμοποιεί θύρα COM

Αυτός ο προγραμματιστής ονομάζεται επίσης "προγραμματιστής Gromov", προς τιμήν εκείνου που βρήκε αυτό το σχήμα, του δημιουργού του προγράμματος Algorithm Builder ( γραφικό περιβάλλονγια προγραμματισμό AVR με χρήση Windows αλγοριθμική γλώσσα) - Γ.Λ. Γκρόμοβα.

Αυτός ο προγραμματιστής σάς επιτρέπει να προγραμματίζετε τσιπ AVR χρησιμοποιώντας τη θύρα COM του υπολογιστή - διεπαφή RS232. Για να συναρμολογήσετε έναν τέτοιο προγραμματιστή, θα χρειαστείτε τουλάχιστον εξαρτήματα - 3 διόδους, 7 αντιστάσεις, μια υποδοχή DB-9 ή DB-25 (ανάλογα με την υποδοχή σύνδεσης που είναι εγκατεστημένη στον υπολογιστή σας) και μια υποδοχή ISP για σύνδεση στον μικροελεγκτή (ή μόνο μερικοί αγωγοί για τσιπ). Οποιεσδήποτε δίοδοι χαμηλής ισχύος μπορούν να χρησιμοποιηθούν στο κύκλωμα.

Ρύζι. 9. Σχηματικό διάγραμμα του προγραμματιστή μικροελεγκτή AVR μέσω θύρας COM υπολογιστή.

Για πληρότητα των πληροφοριών, παρακάτω θα παράσχω το pinout των θυρών RS-232 για τις επιλογές DB-9 και DB-25.

Ρύζι. 10. RS232 - Θύρα COM, διάταξη ακίδων DB-9.

Ρύζι. 11. Θύρα RS232 COM DB-25 - θέση ακίδων στους συνδέσμους.

Προγραμματιστής που χρησιμοποιεί θύρα LPT

Όπως γνωρίζουμε, η θύρα LPT ενός υπολογιστή έχει σχεδιαστεί για τη σύνδεση ενός τοπικού εκτυπωτή (Local Printer Port), αλλά παρόλα αυτά χρησιμοποιείται συχνά για σύνδεση διάφορες συσκευέςκαι σπιτικά προϊόντα. Σε αυτή την περίπτωση, μπορούμε να το χρησιμοποιήσουμε για να προγραμματίσουμε μικροελεγκτές AVR, έχοντας συναρμολογήσει πολύ απλό διάγραμμαπου δίνεται παρακάτω.

Ρύζι. 12. Σχηματικό διάγραμμα προγραμματιστή για μικροελεγκτές AVR που χρησιμοποιεί τη θύρα LPT ενός υπολογιστή.

Όπως μπορείτε να δείτε, το κύκλωμα είναι ακόμα πιο απλό από ό,τι στην έκδοση με, εδώ χρειαζόμαστε μόνο 4 αντιστάσεις χαμηλής ισχύος και έναν σύνδεσμο (αρσενικό, με ακίδες) για σύνδεση στη θύρα LPT του υπολογιστή.

Ρύζι. 13. Θέση ακίδων για συνδέσμους θύρας LPT.

Όλα τα εξαρτήματα και οι συνδέσεις μπορούν να τοποθετηθούν στο περίβλημα του βύσματος LPT και για τη σύνδεση με τον μικροελεγκτή, μπορεί να βγει ένα καλώδιο με βύσμα για τη διεπαφή ISP ή απλώς τους απαραίτητους αγωγούς για τη σύνδεση στο μικροτσίπ.

Λογισμικό και Σημειώσεις

Αφού συνδέσετε τον προγραμματιστή COM ή LPT στον μικροελεγκτή, πρέπει να θυμάστε να τροφοδοτείτε το ίδιο το μικροτσίπ. Μπορείτε να χρησιμοποιήσετε μπαταρίες ή τροφοδοτικό με σταθεροποιητή ως πηγή ενέργειας για τον μικροελεγκτή, αυτό θα είναι το πιο ασφαλές τόσο για τη θύρα του υπολογιστή όσο και για το τσιπ. Έχουμε ήδη συζητήσει πώς να το χρησιμοποιήσουμε.

Στο Linux υπάρχει ένα πολύ ισχυρό πρόγραμμα που μπορεί να λειτουργήσει με προγραμματιστές USB ASP, COM και LPT - αυτό το πρόγραμμα AVRDUDE, θα συζητηθεί στις επόμενες ενότητες.

Για Υλικολογισμικό AVRτσιπ για Windows που χρησιμοποιούν δεδομένα COM και Προγραμματιστές LPTχρειάζεστε το πρόγραμμα UniProf από τον Nikolaev, το οποίο είναι καθολικός προγραμματιστήςγια το AVR (avr.nikolaew.org).

ΠΡΟΣΟΧΗ! Να είστε εξαιρετικά προσεκτικοί και προσεκτικοί όταν συναρμολογείτε και χρησιμοποιείτε προγραμματιστές που χρησιμοποιούν τη θύρα COM ή LPT ενός υπολογιστή, ένα απλό λάθος μπορεί εύκολαπυρπόλησαν αυτά τα λιμάνια. Για κανονική λειτουργίαΓια τέτοιους προγραμματιστές, θα πρέπει να προσπαθήσετε να χρησιμοποιήσετε τα μικρότερα δυνατά καλώδια από την υποδοχή προς το κύκλωμα προγραμματιστή και τον μικροελεγκτή. Συνιστάται ο μικροεπεξεργαστής του υπολογιστή να έχει συχνότητα όχι μεγαλύτερη από 1-2 GHz και συνιστάται η χρήση Win2000 ή WinXP ως λειτουργικό σύστημα για τον προγραμματισμό των τσιπ.

Είναι επίσης σημαντικό να γνωρίζετε ότι οι προσαρμογείς USB-RS232 (Θύρα USB-COM) πιθανότατα δεν θα λειτουργούν με τον προγραμματιστή της Gromov μόνο αυτοί με νεότερα τσιπ, επομένως είναι καλύτερο να αναζητήσετε ένα μηχάνημα με εγγενή θύρα COM.

Σύναψη

Οι προγραμματιστές που συζητούνται στο άρθρο είναι μόνο μερικοί από τους πιο οικονομικούς και απλές λύσειςαπό μια μεγάλη λίστα προγραμματιστών AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, προγραμματιστές FTDI και άλλοι.

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

Στο επόμενο άρθρο θα μάθουμε πώς να συνδεθείτε διαφορετικά μοντέλαΜικροελεγκτές AVR στον προγραμματιστή, μάθετε πού μπορείτε να βρείτε πληροφορίες σχετικά με το pinout των μικροελεγκτών.

22 Σεπτεμβρίου 2011 στις 08:11 μ.μ

Μικροσκοπικός προγραμματιστής USB για μικροελεγκτές AVR

  • Προγραμματισμός μικροελεγκτή

Όπως ένα θέατρο ξεκινά με μια κρεμάστρα, έτσι και ο προγραμματισμός των μικροελεγκτών ξεκινά με την επιλογή ενός καλού προγραμματιστή. Δεδομένου ότι αρχίζω να κατέχω τους μικροελεγκτές από την ATMEL, έπρεπε να εξοικειωθώ πλήρως με αυτό που προσφέρουν οι κατασκευαστές. Προσφέρουν πολλά ενδιαφέροντα και νόστιμα πράγματα, μόνο σε εξωφρενικές τιμές. Για παράδειγμα, ένα κασκόλ με έναν μικροελεγκτή είκοσι ποδιών με ένα ζευγάρι αντιστάσεις και διόδους ως λουρί κοστίζει σαν «αεροπλάνο». Ως εκ τούτου, προέκυψε το ερώτημα σχετικά με αυτοσυναρμολόγησηπρογραμματιστής Μετά από μακρά μελέτη των εξελίξεων έμπειρων ραδιοερασιτεχνών, αποφασίστηκε να συναρμολογηθεί ένας καλά αποδεδειγμένος προγραμματιστής USBASP, ο εγκέφαλος του οποίου είναι ο μικροελεγκτής Atmega8 (υπάρχουν επίσης επιλογές υλικολογισμικού για atmega88 και atmega48). Η ελάχιστη καλωδίωση του μικροελεγκτή σάς επιτρέπει να συναρμολογήσετε έναν αρκετά μικροσκοπικό προγραμματιστή που μπορείτε να έχετε πάντα μαζί σας, όπως μια μονάδα flash.

Ο συγγραφέας αυτού του προγραμματιστή είναι ο Γερμανός Thomas Fichl, η σελίδα ανάπτυξής του με διαγράμματα, αρχεία πλακέτας τυπωμένων κυκλωμάτων και προγράμματα οδήγησης.
Μόλις αποφασίστηκε να συναρμολογηθεί ένας μικροσκοπικός προγραμματιστής, ξαναδημιούργησα το κύκλωμα για τον μικροελεγκτή Atmega8 στο πακέτο TQFP32 (το pinout του μικροελεγκτή διαφέρει από το pinout στο πακέτο DIP):

Το Jumper J1 χρησιμοποιείται εάν είναι απαραίτητο να αναβοσβήνει ένας μικροελεγκτής με συχνότητα ρολογιού κάτω από 1,5 MHz. Παρεμπιπτόντως, αυτός ο άλτης μπορεί να εξαλειφθεί εντελώς τοποθετώντας το 25ο σκέλος του MK στο έδαφος. Τότε ο προγραμματιστής θα λειτουργεί πάντα σε μειωμένη συχνότητα. Προσωπικά, παρατήρησα ότι ο προγραμματισμός με μειωμένη ταχύτητα διαρκεί ένα κλάσμα του δευτερολέπτου περισσότερο, και ως εκ τούτου τώρα δεν τραβάω το βραχυκυκλωτήρα, αλλά ράβω συνεχώς με αυτό.
Οι δίοδοι Zener D1 και D2 χρησιμοποιούνται για να ταιριάζουν τα επίπεδα μεταξύ του προγραμματιστή και του Δίαυλος USB, θα λειτουργήσει χωρίς αυτά, αλλά όχι σε όλους τους υπολογιστές.
Η μπλε λυχνία LED δείχνει ότι το κύκλωμα είναι έτοιμο για προγραμματισμό, το κόκκινο LED ανάβει κατά τον προγραμματισμό. Οι επαφές προγραμματισμού βρίσκονται στην υποδοχή IDC-06, το pinout συμμορφώνεται με το πρότυπο ATMEL για μια υποδοχή ISP 6 ακίδων:

Αυτός ο σύνδεσμος περιέχει επαφές για την τροφοδοσία προγραμματιζόμενων συσκευών από εδώ Θύρα USBυπολογιστή, επομένως πρέπει να είστε προσεκτικοί και να αποφύγετε τα βραχυκυκλώματα. Ο ίδιος σύνδεσμος χρησιμοποιείται επίσης για τον προγραμματισμό του μικροελεγκτή ελέγχου για να γίνει αυτό, απλώς συνδέστε τις ακίδες Reset στην υποδοχή και στον μικροελεγκτή (δείτε την κόκκινη διακεκομμένη γραμμή στο διάγραμμα). Στο κύκλωμα του συγγραφέα αυτό γίνεται με jumper, αλλά δεν μπέρδεψα την πλακέτα και την αφαίρεσα. Για ένα μόνο υλικολογισμικό, αρκεί ένας απλός βραχυκυκλωτήρας. Η σανίδα αποδείχθηκε ότι είναι διπλής όψης, διαστάσεων 45x18 mm.

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

Το υλικολογισμικό του μικροελεγκτή ελέγχου
Έτσι, μετά τη συναρμολόγηση της συσκευής, το πιο σημαντικό πράγμα που μένει είναι να αναβοσβήνει ο μικροελεγκτής ελέγχου. Φίλοι που έχουν ακόμα υπολογιστές με Θύρα LPT:) Ο απλούστερος προγραμματιστής πέντε καλωδίων για AVR
Ο μικροελεγκτής μπορεί να αναβοσβήνει από την υποδοχή προγραμματισμού συνδέοντας τις ακίδες επαναφοράς του μικροελεγκτή (29 πόδια) και την υποδοχή. Το υλικολογισμικό υπάρχει για τα μοντέλα Atmega48, Atmega8 και Atmega88. Συνιστάται να χρησιμοποιήσετε μία από τις δύο τελευταίες πέτρες, καθώς η υποστήριξη για την έκδοση Atmega48 έχει διακοπεί και τελευταία έκδοσηΤο υλικολογισμικό χρονολογείται από το 2009. Και οι εκδόσεις για την 8η και την 88η πέτρα ενημερώνονται συνεχώς και ο συγγραφέας φαίνεται να σχεδιάζει να προσθέσει έναν εντοπισμό σφαλμάτων εντός κυκλώματος στη λειτουργικότητα. Παίρνουμε το firmware από τη γερμανική σελίδα. Για να ανεβάσω το πρόγραμμα ελέγχου στον μικροελεγκτή, χρησιμοποίησα το πρόγραμμα PonyProg. Κατά τον προγραμματισμό, πρέπει να ξεκινήσετε το κρύσταλλο για να λειτουργεί εξωτερική πηγήχρονισμός στα 12 MHz. Στιγμιότυπο οθόνης του προγράμματος με ρυθμίσεις βραχυκυκλωτήρα ασφαλειών στο PonyProg:

Αφού αναβοσβήνει το υλικολογισμικό, το LED που είναι συνδεδεμένο στο πόδι 23 του μικροελεγκτή θα πρέπει να ανάψει. Αυτό θα είναι ένα σίγουρο σημάδι ότι ο προγραμματιστής έχει προγραμματιστεί επιτυχώς και είναι έτοιμος για χρήση.

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

Θα εμφανιστεί αμέσως ένα παράθυρο που θα σας προειδοποιεί ότι το πρόγραμμα οδήγησης που εγκαθίσταται δεν διαθέτει ψηφιακή υπογραφήγια μικρά μαλακά:

Αγνοούμε την προειδοποίηση και συνεχίζουμε την εγκατάσταση, μετά από μια μικρή παύση θα εμφανιστεί ένα παράθυρο που μας ενημερώνει ότι η λειτουργία εγκατάστασης του προγράμματος οδήγησης ολοκληρώθηκε με επιτυχία

Αυτό είναι όλο, ο προγραμματιστής είναι τώρα έτοιμος για χρήση.

Προγραμματιστής Khazama AVR
Για να δουλέψω με τον προγραμματιστή, επέλεξα το Khazama AVR Programmer flasher. Ένα υπέροχο πρόγραμμα με μινιμαλιστική διεπαφή.

Λειτουργεί με όλους τους δημοφιλείς μικροελεγκτές AVR, σας επιτρέπει να αναβοσβήσετε το φλας και το eeprom, να προβάλετε τα περιεχόμενα της μνήμης, να διαγράψετε το τσιπ και επίσης να αλλάξετε τη διαμόρφωση των ασφαλειών. Γενικά, ένα εντελώς τυπικό σετ. Η ρύθμιση της ασφάλειας πραγματοποιείται επιλέγοντας την πηγή ρολογιού από την αναπτυσσόμενη λίστα, επομένως η πιθανότητα κλειδώματος του κρυστάλλου κατά λάθος μειώνεται απότομα. Οι ασφάλειες μπορούν επίσης να αλλάξουν τοποθετώντας πλαίσια ελέγχου στο κάτω πεδίο, αλλά δεν μπορείτε να τοποθετήσετε πλαίσια ελέγχου σε ανύπαρκτη διαμόρφωση και αυτό είναι επίσης ένα μεγάλο πλεονέκτημα όσον αφορά την ασφάλεια.

Οι ασφάλειες εγγράφονται στη μνήμη MK, όπως μπορείτε να μαντέψετε, πατώντας το κουμπί Εγγραφή όλων. Το κουμπί Αποθήκευση αποθηκεύει την τρέχουσα διαμόρφωση και το κουμπί Φόρτωση επιστρέφει την αποθηκευμένη. Είναι αλήθεια ότι δεν μπορούσα να βρω μια πρακτική χρήση για αυτά τα κουμπιά. Το κουμπί Προεπιλογή έχει σχεδιαστεί για να καταγράφει την τυπική διαμόρφωση ασφάλειας, αυτή με την οποία προέρχονται οι μικροελεγκτές από το εργοστάσιο (συνήθως 1 MHz από το εσωτερικό RC).
Σε γενικές γραμμές, όλο το διάστημα που χρησιμοποιώ αυτόν τον προγραμματιστή, έχει αποδειχθεί ότι είναι ο καλύτερος όσον αφορά τη σταθερότητα και την ταχύτητα λειτουργίας. Λειτουργούσε χωρίς προβλήματα τόσο σε αρχαίο επιτραπέζιο υπολογιστή όσο και σε νέο φορητό υπολογιστή.

Μπορείτε να κάνετε λήψη του αρχείου PCB στο SprintLayout χρησιμοποιώντας

Οι μικροελεγκτές της ATMEL έχουν κερδίσει μεγάλη δημοτικότητα. Μπορούν να προγραμματιστούν απευθείας στην πλακέτα πριν από τη χρήση. τελειωμένη συσκευήμέσω ενός απλού καλωδίου ISP που συνδέεται στη θύρα LPT προσωπικός υπολογιστήςή ένα ελαφρώς πιο περίπλοκο καλώδιο συνδεδεμένο στη θύρα COM. Αλλά στις μέρες μας όλο και περισσότερο μητρικές πλακέτεςπαράγεται χωρίς και τα δύο, και σε φορητούς υπολογιστές το LPT εξαφανίστηκε εδώ και πολύ καιρό, αντικαταστάθηκε από μια διεπαφή USB. Ωστόσο, υπάρχουν και είναι διαθέσιμοι προγραμματιστές για αυτή τη διεπαφή.

Για κλίμακα, υπάρχει ένα κανονικό LED 5 mm κοντά.
Αυτός ο προγραμματιστής USBASP υποστηρίζει τους ακόλουθους μικροελεγκτές:

Λίστα υποστηριζόμενων MK

Attiny12, Attiny12, Attiny13, Attiny15, Attiny22, Attiny2313, Attiny24, Attiny25, Attiny26, Attiny261, Attiny28, Attiny44, Attiny45, Attiny461, Attiny84, Attiny85, Attiny861
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168, ATmega169, ATmega32, ATmegaATme324, ATmegaATme324,
ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega2601 03, ATmega406, 15, ATmega8535
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
AT89S51, AT89S52
AT86RF401




Ένα καλώδιο πτήσης 10 πυρήνων με συνδέσμους παρέχεται μαζί με τον προγραμματιστή.


Ο προγραμματιστής τροφοδοτείται από τη θύρα USB του υπολογιστή.


Στην πλακέτα προγραμματιστή υπάρχει μια θέση για την αποκόλληση ενός ρυθμιστή τάσης 3,3 V LDO, αλλά ο ίδιος δεν είναι συγκολλημένος.
Ο προγραμματιστής υποστηρίζεται από το πρόγραμμα AVRDUDE. Το ίδιο το πρόγραμμα είναι ένα πρόγραμμα κονσόλας, αλλά υπάρχει ένα . Το βοηθητικό πρόγραμμα avrdude βρίσκεται στο φάκελο /hardware/tools/ στη διανομή Arduino IDEή κατεβάστε από το Διαδίκτυο.
Πριν ξεκινήσετε να εργάζεστε με τον προγραμματιστή, θα χρειαστεί να κάνετε λήψη του προγράμματος οδήγησης από το .
Ο προγραμματιστής υποστηρίζεται επίσης από το περιβάλλον ανάπτυξης Arduino.


Υπάρχει υλικολογισμικό για τον προγραμματιστή που ονομάζεται , το οποίο το μετατρέπει σε συμβατό με STK500 και αποδεκτό από το ιδιόκτητο περιβάλλον ανάπτυξης ATMEL AVR Studio, αλλά λόγω της μεγάλης μεταβλητότητας του κινεζικού υλικού, μπορείτε να το χρησιμοποιήσετε μόνο με δική σας ευθύνη και κίνδυνο. Σκοπεύω να αγοράσω +32 Προσθήκη στα αγαπημένα Μου άρεσε η κριτική +17 +42