| Home Pic in Greek Οδηγός χρήσης Pic Εσωτερικό 16F84A [1] [2] [3] [4] |
Ο εσωτερικός κόσμος του PIC16F84A(4)
Σε αυτή την σελίδα θα αναφερθούμε στον σειριακό προγραμματισμό του μικροεπεξεργαστή ( ICSP : In-Circuit Serial Programming ) PIC16F84A. Για τον προγραμματισμό αυτό χρειάζεται συσκευή προγραμματισμού η οποία λειτουργεί αυτόματα. Τα παρακάτω μπορείτε να τα προσπεράσετε εάν δεν σας ενδιαφέρει να μάθετε περισσότερα για τον σειριακό προγραμματισμό. Specification of ICSP - Προδιαγραφές σειριακού προγραμματισμού του PIC, επάνω στο κύκλωμα Ο κώδικας στον PIC16F84A αποθηκεύεται στην μνήμη flash.
Τα πέντε παρακάτω ποδαράκια χρησιμοποιούνται για τον σειριακό προγραμματισμό του PIC
Όνομα Pin | Αριθμός Pin | Κατά την διάρκεια προγραμματισμού
--- | --- | ---
Λειτουργία | Τύπος Pin | Περιγραφή Pin
RB6 | 12 | CLOCK | I | Είσοδος χρονισμού
RB7 | 13 | DATA | I/O | Είσοδος/έξοδος δεδομένων
MCLR | 4 | VTEST MODE | P | Κατάσταση προγραμματισμού
VDD | 14 | VDD | P | Τροφοδοσία +5V DC
VSS | 5 | VSS | P | OV DC - Γείωση
I = Είσοδος,O = έξοδος,P = Τάση Για να μεταβεί ο PIC σε κατάσταση προγραμματισμού πρέπει να εφαρμόσετε τάση, πρώτα +5V στο ποδαράκι VDD και μετά την τάση προγραμματισμού ( VHH = +13V ) στο ποδαράκι MCLR.
Program/Verify Mode - Κατάσταση προγραμματισμού / επαλήθευσης
| (1) Ποδαράκια RB6, RB7 και MCLR σε 0V(Low).
(2) Μετάβαση του MCLR pin από 0V(Low) σε +13V(VHH).
Ενεργοποίηση κατάστασης προγραμματισμού (Program/Verify mode).
Serial Program/Verify Operation - Λειτουργία σειριακού προγραμματισμού / επαλήθευσης
| Το ποδαράκι RB6 λειτουργεί σαν είσοδος χρονισμού, και το RB7 για την εισαγωγή εντολών και δεδομένων κατα την διάρκεια του σειριακού προγραμματισμού.
Όταν ο μικροεπεξεργαστής βρίσκεται σε κατάσταση προγραμματισμού/επαλήθευσης η πηγή εσωτερικού χρονισμού δεν χρησιμοποιείται. Ο έλεγχος της εισόδου - εξόδου των δεδομένων γίνεται με την χρήση πηγής εξωτερικού χρονισμού στο ποδαράκι RB6. Στην περίπτωση που ο μικροεπεξεργαστής είναι κολλημένος σε πλακέτα και δεν μπορεί να αποσυνδεθεί το κύκλωμα εξωτερικού χρονισμου που θα τον οδηγεί κατα την λειτουργία του, το ποδαράκι MCLR (master clear) πρέπει να πάρει την τάση προγραμματισμού (VHH = +13V) τουλάχιστον 72msec πρίν την εφαρμογή της τάσης λειτουργίας (+5V). Detail specification of Program/Verify mode About serial method - Λίγα λόγια για τον σειριακό προγραμματισμό Τα ποδαράκια RB6 (Είσοδος χρονισμού - Clock input) και RB7(Είσοδος/έξοδος δεδομένων - Data input/output) χρησιμοποιούνται για την εγγραφή και ανάγνωση του προγράμματος στον μικροεπεξεργαστή. Η αποστολή και λήψη των δεδομένων γίνεται σειριακά, ένα bit εκκίνησης (Start bit) και ένα τερματισμού (Stop bit) ενσωματώνονται στην ακολουθία των 14άρων bit και το τελικο μέγεθος της είναι 16 bits. Το μέγεθος για την μνήμη δεδομένων είναι ένα byte(8 bits), αλλά το μέγεθος που μεταφέρεται είπαμε πως είναι 16 bits για να συμβαδίζει με την μνήμη προγράμματος. Τα πρώτα 8 bits μετά το bit εκκίνησης (Start bit) χρησιμοποιούνται ενώ τα υπόλοιπα αγνοούνται. Όλες οι εντολές και τα δεδομένα μεταφέρονται με πρώτο το λιγότερο σημαντικό ψηφίο (LSB) (least significant bit first). Κάθε bit εντολής και δεδομένων μεταφέρεται με κάθε κατερχόμενο μέτωπο παλμού χρονισμού που εμφανίζεται στο ποδαράκι RB6. Κατά την διάρκεια της ανάγνωσης το λιγότερο σημαντικό bit LSB μεταφέρεται στο ποδαράκι RB7 με το ανερχόμενο μέτωπο παλμού κάθε δεύτερου παλμού χρονισμου που εμφανίζεται στο ποδαράκι RB6. Command Mapping - Εντολές προγραμματισμού / Επαλήθευσης Οι εντολές για προγραμματισμό/επαλήθευση του κώδικα είναι οι ακόλουθες εννέα.
Εντολή | ψηφιολέξη | δεδομένα
--- | --- | ---
Load Configuration |  | 0, data( 14 ), 0
Load Data for Program Memory |  | 0, data( 14 ), 0
Read Data from Program Memory |  | 0, data( 14 ), 0
Increment Address |  | None
Begin Programming |  | None
Load Data for Data Memory |  | 0, data( 14 ), 0
Read Data from Data Memory |  | 0, data( 14 ), 0
Bulk Erase Program Memory |  | None
Bulk Erase Data Memory |  | None
Program flow chart - Ακολουθία προγραμματισμού / επαλήθευσης κώδικα (Block διάγραμμα) Ακολουθία προγραμματισμού / επαλήθευσης configuration data.
Όταν ο μετρητής προγράματος (PC - Program counter) γίνει μεγαλλίτερος ή ίσος με την διεύθυνση 2000h (PC >= 2000h), το υψηλοτερο bit(14th bit) του PC γίνεται '1', και "δείχνει" το configuration memory. Ο μοναδικός τρόπος για να "δείξει" το user program memory είναι να μηδενίσετε τον PIC (reset) και να επανενεργοποιήσετε την κατάσταση προγραμματισμού/επαλήθευσης.