Home Pic in Greek Οδηγός χρήσης Pic Προγραμματισμός PIC


 

Προγραμματισμός PIC 


 

  
Η συσκευή προγραμματισμού χρησιμοποιείται για να μεταφέρει "φορτώσει" τον μεταγλωττισμένο κώδικα (Αρχείο.hex) στην μνήμη προγράμματος του PIC.
Στην περίπτωση του PIC16F84A, η μεταφορά μπορεί να γίνει και επάνω στο κύκλωμα με με την λειτουργία ([ICSPICircuit  Serial  Programming ),
Σειριακού προγραμματισμού εντός κυκλώματος, πάντοτε με την χρήση της συσκευής προγραμματισμού.



Μεταφορά κώδικα στην μνήμη προγράμματος του PIC

    Μετά την μεταγλώττιση του κώδικα, δημιουργείται ένα αρχείο σε γλώσσα μηχανής HEX file για παράδειγμα (Test.hex).
    Το αρχείο αυτό "φορτώνεται" στην μνήμη προγράμματος του PIC. Για να πραγματοποιηθεί αυτή η μεταφορά γίνονται τα παρακάτω:

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

(2) Ο μικροεπεξεργαστής μεταβαίνει σε κατάσταση προγραμματισμού / επαλήθευσης.

(3) Εφαρμόζεται η τάση προγραμματισμού / επαλήθευσης (+13V).

(4) Μετατρέπονται τα δεδομένα σε ηλεκτρική μορφή.

(5) Μεταφέρονται τα δεδομένα στον μικροεπεξεργαστή με την λειτουργία ICSP.

(6) Γίνεται επαλήθευση των δεδομένων της μνήμης προγράμματος του PIC με τα δεδομένα του αρχείου HEX.





Εξοπλισμός που χρειάζεται

    Ένας προσωπικός υπολογιστής, η συσκευή προγραμματισμού, και το λογισμικό (MPLAB) χρειάζονται για την μεταφορά του μεταγλωττισμένου κώδικα (Αρχείο.hex) στην μνήμη προγράμματος του μικροεπεξεργαστή.


    Η διαδικασία "φορτώματος" εξαρτάται πάντοτε από τη συσκευή προγραμματισμού και το λογισμικό που την συνοδεύει.
    Όπως είδατε παραπάνω οι λειτουργίες (3) και (4) γίνονται πάντοτε από την συσκευή προγραμματισμού. Υπάρχουν συσκευές προγραμματισμού που κάνουν μόνες τους όσες λειτουργίες αναφέρονται μετά την (2).
    Γενικότερα όμως, οι λειτουργίες (1), (2), (5) and (6) γίνονται από τον προσωπικό υπολογιστή και το λογισμικό που συνοδεύει την συσκευή προγραμματισμού, ενώ από την τελευταία γίνονται οι (3) και (4).





Συσκευές προγραμματισμού

    Ο "PRO MATE : Universal Device Programmer" και το  "PICSTART Plus : Low-Cost Development Kit" πωλούνται από την Microchip.
    Το MPLAB είναι σχεδιασμένο για να αξιοποιεί πλήρως αυτές τις δύο συσκευές προγραμματισμού.


Στην φωτογραφία αριστερά βλέπετε το PICSTART Plus.

Το PICSTART Plus στην συσκευασία του περιλαμβάνει:
1. Συσκευή προγραμματισμού PICSTART Plus 
2. Σειριακό καλώδιο RS-232 επικοινωνίας με τον προσωπικό υπολογιστή 
3. Τροφοδοτικό 9V DC
4. Λογισμικό MPLAB software, ένα ολοκληρωμένο αναπτυξιακό περιβάλλον που ενσωματώνει κειμενογράφο, διαχείριση Project, μεταγλωττιστή (MPASM), και εξομοιωτή (MPLAB-SIM)
5. Μικροεπεξεργαστές PIC για προγραμματισμό






Δομή αρχείου γλώσσας μηχανής (HEX file) 

    Κάθε αρχείο HEX που δημιουργείται έχει την παρακάτω δομή.

    :BBAAAATTHHHHHHHH ............ HHCC

Θέση
Δεδομένων
Νόημα Περιγραφή
BB Μέγεθος εγγραφής Διψήφια δεκαεξαδική απεικόνιση του αριθμού των ψηφιολέξεων που υπάρχουν σε κάθε γραμμή του αρχείου. Τα δεδομένα που υπάρχουν σε κάθε γραμμή μπορεί να αποτελούνται το πολύ από 8 words ή 16 (Bytes) ψηφιολέξεις.
Σε περίπτωση που είναι περισσότερες από 16 τότε ξεκινά νέα γραμμή.
Άρα το μεγαλύτερο που μπορούν να δείξουν τα BB είναι το '10h'.
AAAA Διεύθυνση μνήμης Τετραψήφια δεκαεξαδική διεύθυνση η οποία απεικονίζει την διεύθυνση μνήμης για την εκκίνηση της εγγραφής δεδομένων.
1 word προγράμματος είναι 2 bytes.(Επειδή χρησιμοποιούνται μόνο τα 14bits, τα 2 περισσότερο σημαντικά bits έχουν την τιμή 0). 'Όσον αφορά τη διεύθυνση της μνήμης προγράμματος, γίνεται ολίσθηση κατά 1 bit. 
Για παράδειγμα η διεύθυνση '0001h', συμβολίζεται σαν '0002h' στην AAAA.
Η δεύτερη γραμμή είναι ολοκληρωμένη, αποτελείται από 16 ψηφιολέξεις.
Για παράδειγμα αν η διεύθυνση μνήμης για την εκκίνηση της εγγραφής είναι '000Ch', απεικονίζεται στην ίδια εγγραφή με '000Fh', και στην νέα εγγραφή ξεκινά από τη '0010h'. 
:04000C008D018E01D3
:100010008F01900191019201930194019601970142
:08002000980199019A019B016E
:00000001FF
TT Είδος εγγραφής Διψήφια δεκαεξαδική απεικόνιση του τέλους αρχείου δείχνει πάντοτε '00' και αλλάζει σε '01' μόνο στο τέλος του αρχείο, είναι το χαρακτηριστικό σημάδι του end-of-file.
Γενικότερα το, ':00000001FF' δείχνει την τελευταία εγγραφή στο αρχείο.
HHHH Ψηφιολέξη δεδομένων Διψήφια δεκαεξαδική απεικόνιση των δεδομένων, παρουσιάζεται σε συνδυασμούς low-byte/high-byte.
Στην περίπτωση του  '018C', θα γίνει  '8C01'.
CC Άθροισμα ελέγχου  Διψήφια δεκαεξαδική απεικόνιση του αθροίσματος ελέγχου, είναι το  συμπλήρωμα complement του αθροίσματος των byte κάθε εγγραφής.
Για παράδειγμα στην περίπτωση του ':040002008C018C0A', έχουμε άθροισμα '129h'.
Μόνο το low-byte χρησιμοποιείται. Το συμπλήρωμα του '29h' είναι το 'D7h'. Ο αριθμός D7h' γράφεται στο τέλος της εγγραφής σαν Άθροισμα ελέγχου (Checksum).
Όταν γίνεται η επαλήθευση των δεδομένων, αθροίζονται όλα τα bytes της κάθε εγγραφής εκτός του checksum. Στη συνέχεια προστίθεται το αποτέλεσμα με το checksum και εάν το αποτέλεσμα είναι μηδέν 29h + D7h = 00h (Το κρατούμενο δεν λαμβάνεται υπόψη) τα δεδομένα επαληθεύθηκαν σωστά.