Κατηγορίες: Κύκλωμα μικροελεγκτή
Αριθμός προβολών: 23111
Σχόλια σχετικά με το άρθρο: 0

Μικροελεγκτές PIC για αρχάριους

 

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

Μικροελεγκτές PIC για αρχάριους

Τι είναι το PIC

Το PIC είναι το όνομα μιας σειράς μικροελεγκτών που κατασκευάζονται από την Microchip Technology Inc (ΗΠΑ). Το όνομα PIC προέρχεται από τον περιφερειακό ελεγκτή διεπαφής.

Οι μικροελεγκτές PIC έχουν αρχιτεκτονική RISC. Το RISC - ένα συντομευμένο σύνολο οδηγιών, χρησιμοποιείται επίσης σε επεξεργαστές για κινητές συσκευές. Υπάρχουν ορισμένα παραδείγματα χρήσης του: ARM, Atmel AVR και άλλοι.

Το 2016, η Microchip αγόρασε την Atmel, κατασκευαστή ελεγκτών AVR. Ως εκ τούτου, η επίσημη ιστοσελίδα παρουσιάζει μικροελεγκτές της οικογένειας και PIC και AVR.

Μικροελεγκτής PIC16F1xxx

Οικογένειες

Μεταξύ των μικροελεγκτών PIC 8-bit, αποτελείται από 3 οικογένειες που διαφέρουν στην αρχιτεκτονική (βάθος bit και σύνολο εντολών).

  • Βασική γραμμή (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Μεσαία εμβέλεια (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Ενισχυμένη μεσαία εμβέλεια (PIC12F1xxx, PIC16F1xxx);

  • High-end ή PIC18 (18Fxxxx, 18FxxJxx και 18FxxKxx).

Σύγκριση των οικογενειών μικροελεγκτών

Τα χαρακτηριστικά δίνονται στον παρακάτω πίνακα.

Χαρακτηριστικά μικροελεγκτή PIC

Εκτός από τους μικροελεγκτές 8 bit, η Microchip παράγει 16-bit:

  • PIC24F;

  • DsPIC30 / 33F για επεξεργασία σήματος.

Οι εκπρόσωποι της οικογένειας 16-bit λειτουργούν σε ταχύτητες από 16 έως 100 MIPS (εκατομμύρια οδηγίες ανά δευτερόλεπτο ολοκληρώθηκαν). Αξίζει να σημειωθεί και χαρακτηριστικά:

  • Κύκλος μηχανής - 2 κύκλοι.

  • Ανάλυση ADC - 16 bit.

  • υποστηρίζουν πολλά πρωτόκολλα επικοινωνίας (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN και SENT), PWM και πολλά άλλα.

Υπάρχει επίσης μια οικογένεια 32 bit μικροελεγκτές - PIC32MX, τα κύρια χαρακτηριστικά:

  • λειτουργούν με συχνότητα έως 120 MHz.

  • Εκτελέστε μέχρι 150 MIPS

  • ADC: 10-bit, 1 Msps (ταχύτητα κβαντισμού), μέχρι 48 κανάλια.



Τι PIC για να αρχίσει με;

Οι αρχάριοι θα πρέπει να αρχίσουν να ελέγχουν μικροελεγκτές PIC από μια γραμμή 8-bit. Σε γενικές γραμμές, ο κατασκευαστής ισχυρίζεται ότι το χαρακτηριστικό της ολόκληρης οικογένειας είναι η εύκολη φορητότητα των προγραμμάτων από τη μια οικογένεια στην άλλη και η αποκοπή ενός αριθμού μοντέλων.

Ένας από τους πιο δημοφιλείς μικροελεγκτές στο ραδιοερασιτεχνικό περιβάλλον είναι το PIC16f628A. Τα τεχνικά χαρακτηριστικά του είναι τα εξής:

  • Υπάρχει ενσωματωμένη γεννήτρια ρολογιού. Μπορείτε να συντονιστείτε για να εργαστείτε με συχνότητα 4 ή 8 MHz.

  • 18 ακίδες, εκ των οποίων 16 εισόδου / εξόδου και 2 - ισχύς.

  • Για να λειτουργεί σε συχνότητες μέχρι 20 MHz, μπορείτε να συνδέσετε έναν συντονιστή χαλαζία, αλλά στην περίπτωση αυτή δεν υπάρχουν 16, αλλά 14 πόδια αριστερά για είσοδο / έξοδο.

  • Υπάρχει ένα γράμμα F στη σήμανση, που σημαίνει ότι χρησιμοποιείται μνήμη FLASH με χωρητικότητα 2048 λέξεων.

  • 14-bit οδηγίες, 35 τεμάχια?

  • 2 συγκριτές.

  • 4 αναλογικές εισόδους.

  • Οι είσοδοι PORTB διαθέτουν αντιστάσεις pull-up.

  • Δύο χρονιστές 8-bit και ένα 16-bit.

  • Κύκλος μηχανής - 4 κύκλοι συντονιστή χαλαζία ή εσωτερικός ταλαντωτής).

  • 224 bytes μνήμης RAM.

  • 128 byte του EEPROM.

  • USART - σειριακό λιμάνι.

  • εσωτερική αναφορά τάσης.

  • που τροφοδοτείται από 3,3 έως 5 V.

Οι λόγοι για τη δημοτικότητά του είναι η χαμηλή τιμή και η δυνατότητα ρολογιού από μια εσωτερική γεννήτρια.

Ποιο pinout του 16f628 φαίνεται παρακάτω:

Σημειώστε στο 16f628

Το εσωτερικό κύκλωμα του μπλοκ αυτού του μικροελεγκτή φαίνεται παρακάτω.

Δομή μικροελεγκτή 16f628

Σε τι πρέπει να δώσω προσοχή στο σχέδιο;

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

Εξετάστε αυτό το μέρος του προγράμματος σε μεγάλο βαθμό.

Θύρες MK

Για παράδειγμα, οι θύρες RB0-RB3 - μπορούν να λειτουργήσουν ως αναλογικά. Εάν είναι απαραίτητο, μια πηγή ρολογιού είναι συνδεδεμένη με RA6, RA7 (συντονιστή χαλαζία) Οι εξόδους του ίδιου του μικροελεγκτή διαμορφώνονται στον τρόπο εισόδου / εξόδου χρησιμοποιώντας τον καταχωρητή TRIS.

Υπάρχουν εντολές για αυτόν τον τύπο:

TRISA = 0; // Όλοι οι ακροδέκτες της θύρας Α έχουν οριστεί ως έξοδοι
TRISB = 0xff; // Όλοι οι ακροδέκτες της θύρας Β ορίζονται ως είσοδοι
TRISA0 = 1; // Έτσι ένας ξεχωριστός ακροδέκτης ορίζεται ως είσοδος (1) ή έξοδος (0)
TRISA5 = 1// εδώ η 5η έξοδος της θύρας Α ορίζεται ως είσοδος

Σε γενικές γραμμές, οι τρόποι λειτουργίας, η συμπερίληψη ενός χρονιστή WDT (watchdog timer), η επιλογή της πηγής ρολογιού του μικροελεγκτή κ.ο.κ. ρυθμίζονται με τη χρήση ειδικών καταχωρητών - SFR και η μνήμη και τα δεδομένα αποθηκεύονται σε GFR - με απλά λόγια, αυτή είναι η στατική μνήμη RAM.

Στο επίσημο δελτίο δεδομένων, στις σελίδες 18-21 θα βρείτε 4 τράπεζες μνήμης για καταχωρητές ειδικού σκοπού SFR και γενικούς καταχωρητές GFR. Η γνώση των μητρώων είναι σημαντική, οπότε εκτυπώστε και μάθετε τις υποδεικνυόμενες σελίδες από Τεχνικό δελτίο.

Για λόγους ευκολίας, οι πίνακες αυτοί παρουσιάζονται υπό μορφή εικόνων παρακάτω (η αρίθμηση των μητρώων, όπως όλα στην ψηφιακή ηλεκτρονική, ξεκινά από το 0, οπότε ο τέταρτος αριθμός είναι 3).

Καταχωρητές ειδικού σκοπού
Καταχωρητές ειδικού σκοπού
Καταχωρητές ειδικού σκοπού
Καταχωρητές ειδικού σκοπού

Πώς να συνδεθείτε και σε ποια γλώσσα να προγραμματίσετε;

Για να εκτελέσετε αυτόν τον μικροελεγκτή, αρκεί να εφαρμόσετε συν σε Vdd και μείον σε Vss. Εάν χρειάζεστε έναν συντονιστή χαλαζία, τότε είναι συνδεδεμένος με τους ακροδέκτες 16 και 15 (OSC1 και OSC2) του μικροελεγκτή PIC16f628, για άλλους ελεγκτές με μεγαλύτερο ή μικρότερο αριθμό ακίδων - κοιτάξτε στο δελτίο δεδομένων. Αλλά αυτό το σημείο πρέπει να υποδεικνύεται κατά τον προγραμματισμό και το υλικολογισμικό.

Μιλώντας για τη φορητότητα και την σύμπτωση του pinout - στο 16f84A - είναι παρόμοιο, και σε πολλά άλλα.

Σύνδεση ενός συντονιστή χαλαζία

Ένα θραύσμα ενός κυκλώματος με έναν εξωτερικό συντονιστή συνδεδεμένο στο pic16f628a:

Κύκλωμα κυκλώματος με έναν εξωτερικό συντονιστή συνδεδεμένο στο pic16f628a

Υπάρχουν δύο κύριες γλώσσες για τον προγραμματισμό μικροελεγκτών PIC - assembler και C, υπάρχουν άλλοι, για παράδειγμα PICBasic, κλπ. Μπορείτε ακόμα να επισημάνετε την απλοποιημένη γλώσσα προγραμματισμού JAL (απλά μια άλλη γλώσσα).

Για παράδειγμα, παρακάτω είναι ένα πρόγραμμα για το "LED που αναβοσβήνει" - ένα είδος "Hello World" για τον μικροελεγκτή PIC στο C.

Ένα παράδειγμα προγράμματος μικροελεγκτή PIC στο C

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

Στη κύρια (κενή) λειτουργία, οι αρχικές παράμετροι έχουν οριστεί στην αρχή, όπως ακριβώς κάναμε στη λειτουργία Void setup () σε άρθρα για το arduino. Στη συνέχεια, στις γραμμές 11-16, δηλώνεται ένας άπειρος ενώ (1) βρόχος, κατά τη διάρκεια του οποίου εκτελείται το πρόγραμμα "LED που αναβοσβήνει".

Στο παράδειγμα, η κατάσταση του λιμένα είναι συνεχώς ανεστραμμένη, δηλ. αν ήταν στο "0", τότε θα πάει στο "1" και αντίστροφα. Στο C για PIC υπάρχουν οι ακόλουθες εντολές διαχείρισης εντολών:

PORTA = 0; // μεταφράζει όλες τις ακίδες της θύρας A σε χαμηλό επίπεδο (log 0)
PORTB = 0xff; // μεταφράζει όλες τις καρφίτσες της θύρας Β σε υψηλό επίπεδο (log 1)
RB5 = 1; // Ο πέμπτος ακροδέκτης της θύρας Β είναι μεγάλος

Και το ίδιο πρόγραμμα μοιάζει με αυτό, αλλά ήδη στη γλώσσα JAL, έχω μεταφράσει στα ρωσικά τα σχόλια από τους προγραμματιστές των ενσωματωμένων παραδειγμάτων στο JALedit (περιβάλλον ανάπτυξης).

Δείγμα προγράμματος JAL

Υπάρχει ένας πειρασμός να επιλέξετε JAL και μπορεί να σας φανεί ευκολότερο. Φυσικά, μπορείτε να υλοποιήσετε οποιαδήποτε έργα σε αυτό, αλλά από την άποψη του οφέλους για εσάς ως ειδικός, είναι μια άχρηστη γλώσσα. Θα επιτύχετε σημαντικά μεγαλύτερα αποτελέσματα, μελετώντας τη σύνταξη και τις αρχές προγραμματισμού στο C (οι περισσότερες από τις γλώσσες που είναι επί του παρόντος δημοφιλείς είναι οι C) ή στο Assembler - πρόκειται για γλώσσα χαμηλού επιπέδου που θα σας κάνει να κατανοήσετε την αρχή της συσκευής και τι συμβαίνει στο πρόγραμμα οποιαδήποτε στιγμή.


Πώς να εργαστείτε

Αν λέτε αρκετά γενικευμένη για να συνεργαστείτε με τους μικροελεγκτές που χρειάζεστε:

1. Επεξεργαστής κειμένου.

2. Ο μεταγλωττιστής.

3. Το πρόγραμμα για τη λήψη υλικολογισμικού στον μικροελεγκτή.

Και έχω διαβάσει ακόμη και τα παλιά βιβλία, όπου ο συγγραφέας, που εργάζεται από κάτω από το DOS, έγραψε κώδικα, συνέλεξε και έλαμψε με διάφορα μέσα. Τώρα, κάτω από όλα τα δημοφιλή λειτουργικά συστήματα, υπάρχουν περιβάλλοντα ανάπτυξης, τόσο εξειδικευμένα (για μια συγκεκριμένη οικογένεια μικροελεγκτών ή οικογένειες από έναν κατασκευαστή) και καθολικά (είτε περιέχουν όλα τα απαραίτητα εργαλεία είτε συνδέονται ως plug-ins).

Για παράδειγμα, σε μια σειρά άρθρων σχετικά με το Arduino, εξετάσαμε το IDE του Arduino, στο οποίο γράψαμε τον κώδικα και με τη βοήθεια του "χύσαμε" το firmware στην "πέτρα". Για τους μικροελεγκτές PIC υπάρχουν προγράμματα όπως:

  • MPASM - χρησιμοποιείται για ανάπτυξη στην γλώσσα Assembler από τη Microchip;

  • Το MPLAB είναι επίσης το Microchip IDE για ελεγκτές PIC. Αποτελείται από πολλά μπλοκ για δοκιμή, έλεγχο, εργασία με κώδικα και σύνταξη προγραμμάτων και λήψη στο μικροελεγκτή. Υπάρχει επίσης μια έκδοση του MPLAB X IDE - διαθέτει μεγάλη λειτουργικότητα και είναι χτισμένη με βάση την πλατφόρμα NetBeans;

  • Το MikroC είναι ένα παγκόσμιο περιβάλλον (όχι μόνο για τα PIK) για ανάπτυξη. Όπως υποδηλώνει το όνομα, είναι "ακονισμένο" για τον προγραμματισμό C και υπάρχουν επίσης προγράμματα όπως το MikroBasic και το MikroPascal για τις αντίστοιχες γλώσσες;

  • JALedit - κατάλληλο για τη γλώσσα JAL που αναφέραμε παραπάνω;

  • Και ένας αριθμός άλλων λιγότερο γνωστών.

MPLAB IDE

Πώς να αναβοσβήνει ένας μικροελεγκτής;

Υπάρχουν ορισμένοι προγραμματιστές για μικροεπεξεργαστές PIC. Επισήμως θεωρείται PICkit. Οι 4 εκδόσεις τους. Αλλά μπορείτε να αναβοσβήνετε και να χρησιμοποιείτε το universal, για παράδειγμα το TL866 (υποστηρίζει σχεδόν όλα όσα μπορεί να χρειαστεί ένας ραδιοερασιτέχνης αρχάριος, ενώ είναι πολύ φτηνός).

Προγραμματιστές για μικροεπεξεργαστές PIC

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

Κύκλωμα προγραμματιστή

Έτσι είναι μέσω USB (στην πραγματικότητα, επίσης com, μόνο μέσω του μετατροπέα στο IC MAX232).

Κύκλωμα προγραμματιστή

Συμπέρασμα

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

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

Δείτε επίσης στο i.electricianexp.com:

  • Τύποι και διάταξη των μικροελεγκτών AVR
  • Προγραμματισμός μικροελεγκτών για αρχάριους
  • Τι είναι οι μικροελεγκτές - σκοπός, συσκευή, λογισμικό
  • Προγραμματιζόμενοι μικροελεγκτές στο JavaScript: ποιο από αυτά επιλέγει, χαρακτηριστικά ...
  • Μέθοδοι ανάγνωσης και διαχείρισης θυρών εισόδου / εξόδου Arduino

  •