|
Σε αυτή την σελίδα θα αναφερθούμε στον
σειριακό προγραμματισμό του μικροεπεξεργαστή ( ICSP : In-Circuit Serial
Programming ) PIC16F84A. Για τον
προγραμματισμό αυτό χρειάζεται συσκευή προγραμματισμού η οποία λειτουργεί
αυτόματα. Τα παρακάτω μπορείτε να τα προσπεράσετε
εάν δεν σας ενδιαφέρει να μάθετε περισσότερα για τον σειριακό
προγραμματισμό.
_files/blank_1.gif)
Specification of ICSP - Προδιαγραφές
σειριακού προγραμματισμού του PIC, επάνω στο κύκλωμα
|
Τα πέντε παρακάτω ποδαράκια
χρησιμοποιούνται για τον σειριακό προγραμματισμό του
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.
|
_files/blank_50x1.gif) |
(1) Ποδαράκια
RB6, RB7 και MCLR σε 0V(Low). |
| (2) Μετάβαση του
MCLR pin από 0V(Low) σε +13V(VHH). |
| Ενεργοποίηση κατάστασης προγραμματισμού
(Program/Verify mode). |
_files/blank_50x1.gif) |
Το ποδαράκι RB6 λειτουργεί σαν
είσοδος χρονισμού, και το RB7 για την εισαγωγή εντολών και
δεδομένων κατα την διάρκεια του σειριακού
προγραμματισμού. |
|
Όταν ο μικροεπεξεργαστής βρίσκεται σε κατάσταση
προγραμματισμού/επαλήθευσης η πηγή εσωτερικού χρονισμού δεν
χρησιμοποιείται. Ο έλεγχος της εισόδου - εξόδου των δεδομένων γίνεται με
την χρήση πηγής εξωτερικού χρονισμού στο ποδαράκι RB6. Στην περίπτωση
που ο μικροεπεξεργαστής είναι κολλημένος σε πλακέτα και δεν μπορεί να
αποσυνδεθεί το κύκλωμα εξωτερικού χρονισμου που θα τον οδηγεί κατα την
λειτουργία του, το ποδαράκι MCLR (master clear) πρέπει να πάρει την τάση
προγραμματισμού (VHH = +13V) τουλάχιστον 72msec πρίν την
εφαρμογή της τάσης λειτουργίας (+5V).
_files/blank_1.gif)
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.
_files/pic2_41e.gif)
Οι εντολές για προγραμματισμό/επαλήθευση
του κώδικα είναι οι ακόλουθες εννέα.
| Εντολή |
ψηφιολέξη
_files/pic2_42.gif) |
δεδομένα |
| Load Configuration |
_files/pic2_43.gif) |
0, data( 14 ), 0 |
| Load Data for Program
Memory |
_files/pic2_44.gif) |
0, data( 14 ), 0 |
| Read Data from Program
Memory |
_files/pic2_45.gif) |
0, data( 14 ), 0 |
| Increment Address |
_files/pic2_46.gif) |
None |
| Begin Programming |
_files/pic2_47.gif) |
None |
| Load Data for Data
Memory |
_files/pic2_48.gif) |
0, data( 14 ), 0 |
| Read Data from Data
Memory |
_files/pic2_49.gif) |
0, data( 14 ), 0 |
| Bulk Erase Program
Memory |
_files/pic2_4a.gif) |
None |
| Bulk Erase Data
Memory |
_files/pic2_4b.gif) |
None |
Ακολουθία προγραμματισμού / επαλήθευσης
configuration data.
_files/pic2_4de.gif)
Όταν ο μετρητής προγράματος (PC - Program counter)
γίνει μεγαλλίτερος ή ίσος με την διεύθυνση 2000h (PC >= 2000h),
το υψηλοτερο bit(14th bit) του PC γίνεται '1', και
"δείχνει" το configuration memory. Ο μοναδικός τρόπος για να
"δείξει" το user program memory είναι να μηδενίσετε τον PIC (reset)
και να επανενεργοποιήσετε την κατάσταση
προγραμματισμού/επαλήθευσης.
|
_files/blank_1.gif)
|