Home Pic in Greek Οδηγός χρήσης Pic Εσωτερικό 16F84A [1] [2] [3] [4]


 

Ο εσωτερικός κόσμος του PIC16F84A(2)



Specification of the input-output ports - Είσοδοι & Έξοδοι (Πόρτες)



Η PORTA σε κατάσταση εξόδου

Τις πόρτες εισόδου & εξόδου τις χρησιμοποιεί ο μικροεπεξεργαστής για να επικοινωνεί με το υπόλοιπο κύκλωμα. Ο PIC16F84A έχει 13 ποδαράκια εισόδου - εξόδου (input/output pins). Αυτά χωρίζονται σε ένα σετ των πέντε που ονομάζεται A PORT και ένα σετ των οκτώ που ονομάζεται B PORT.  Η A port αντιστοιχεί στον καταχωρητή PORTA και η B port αντιστοιχεί στον καταχωρητή PORTB. Οι δύο αυτοί καταχωρητές συγκροτούνται από 8 bit και κάθε ένα ποδαράκι εισόδου - εξόδου τους (input/output pin) αντιστοιχεί σε ένα bit. Για την PORTA, χρησιμοποιούνται μόνο πέντε από τα οκτώ bit, δηλαδή το bit 0 έως bit 4. Για την PORTB, και τα οκτώ bit χρησιμοποιούνται. Η κατάσταση (αν θα είναι είσοδος ή έξοδος) για κάθε ένα ποδαράκι (pin)  καθορίζεται από τον καταχωρητή TRISA (για την PORTA) και τον καταχωρητή TRISB (για την  PORTB). Εάν δηλώσετε κάποιο ποδαράκι ως  "0" στον καταχωρητή TRISx σημαίνει ότι το ποδαράκι αυτό θα εργαστεί σαν έξοδος ενώ αν το δηλώσετε ως  "1" θα εργαστεί σαν είσοδος. Η δήλωση της κατάστασης για κάθε πόρτα γίνεται με το φόρτωμα (καλλίτερα σε δυαδική μορφή για να αποφύγετε τα λάθη) στον καταχωρητή W του αριθμού που αντιστοιχεί στην επιθυμητή διαμόρφωση και την μεταφορά του στον καταχωρητή TRISx με την χρήση της εντολής MOVWF. Αν για παράδειγμα θέλετε να δηλώσετε στην PORTB τα ποδαράκια RB0 έως RB3 σαν εξόδους και τα RB4 έως RB7 σαν εισόδους θα πρέπει να μεταφέρετε μέσο του W στον TRISB τον δυαδικό αριθμό b'11110000 ή τον δεκαδικό 240 ή τον δεκαεξαδικό F0h.
Το ποδαράκι RA4 μπορεί να λειτουργήσει σαν είσοδος - έξοδος ή σαν είσοδος εξωτερικού χρονισμού (clock input) για τον χρονομετρητή TMR0. Στην B port, τα ποδαράκια RB4 έως RB7 μπορούν σαν είσοδοι να παράγουν παλμούς διακοπής ροής προγράμματος (Interrupts), αν μεταβληθεί η κατάσταση τους (από είσοδος σε έξοδο ή αντίστροφα). Επίσης το ποδαράκι RB0 μπορεί να παράγει παλμό διακοπής (external interrupt).




Specification of A port ( RA0-RA3 ) - Το εσωτερικό της A port (ποδαράκια RA0-RA3 )

Στην αριστερή φωτογραφία απεικονίζονται τα τέσσερα ποδαράκια RA0, RA1, RA2 και  RA3 της A port.
Το κύκλωμα εξόδου συγκροτείται από τον καταχωρητή εξόδου (τύπου συγκράτησης, Latch) και την οδηγό βαθμίδα CMOS.


    The operation of the output circuit - Λειτουργία του κυκλώματος εξόδου (Γενικά)

    Το κύκλωμα CMOS (Complementary-Metal Oxide Semiconductor) συνδυάζει ένα N-channel MOSFET(N-FET) και ένα P-channel MOSFET(P-FET).

Στην περίπτωση του P-FET, όταν η πύλη του πάρει χαμηλό δυναμικό (Low level), τότε αυτό άγει, ενώ όταν πάρει η πύλη υψηλό δυναμικό  (Hi level),δεν άγει. Αντίθετα τώρα, στην περίπτωση του, N-FET, όταν η πύλη του πάρει χαμηλό δυναμικό ( Low level), δεν άγει, ενώ όταν πάρει η πύλη υψηλό δυναμικό  ( Hi level), άγει. Όταν η έξοδος σε κάποιο ποδαράκι είναι 1 (+ 5Volt Hi level), η ανεστραμμένη έξοδος () του data latch register γίνεται 0  (0Volt Low level), το P-FET άγει ενώ το N-FET δεν άγει και έτσι το ποδαράκι δίνει έξοδο 1 (+ 5Volt Hi level). Αντίστροφα όταν η έξοδος είναι 0  (0Volt Low level),η ανεστραμμένη έξοδος () του data latch register γίνεται 1 (+ 5Volt Hi level) το P-FET δεν άγει ενώ το N-FET άγει και δίνει έξοδο 0  (0Volt Low level). Επειδή το κύκλωμα είναι C-MOS η κατανάλωση είναι πολύ μικρή.


    The operation of the input/output mode setting circuit - Λειτουργία κυκλώματος εισόδου - εξόδου

    Η κατάσταση για κάθε ποδαράκι της A PORT δηλώνεται στον καταχωρητή TRISA. Το περιεχόμενο του καταχωρητή TRISA αντιγράφεται στον καταχωρητή TRIS latch. Η ανεστραμμένη έξοδος () του καταχωρητή συγκράτησης δεδομένων εξόδου και η έξοδος  (Q) του καταχωρητή TRIS latch εισάγονται στο P-FET διαμέσου της πύλης OR. Η ανεστραμμένη έξοδος () του καταχωρητή συγκράτησης δεδομένων εξόδου και η ανεστραμμένη έξοδος  (Q) του καταχωρητή TRIS latch εισάγονται στο N-FET διαμέσου της πύλης AND.

      The operation at the time of the output mode - Λειτουργία κυκλώματος σε κατάσταση Εξόδου

 

Όταν ορίζεται ένα ποδαράκι σαν έξοδος, το Bit που του αντιστοιχεί στον καταχωρητή TRISA γίνεται "0".

 Επειδή η έξοδος (Q) του καταχωρητή TRIS είναι εξαρχής (by default) ορισμένη με 0 (Low level), η ανεστραμμένη έξοδος () του data latch register εφαρμόζεται δίχως αλλαγή στο P-FET. Επίσης η ανεστραμμένη έξοδος () του καταχωρητή TRIS είναι 1 (Hi level) και η ανεστραμμένη έξοδος () του data latch register εφαρμόζεται δίχως αλλαγή στο N-FET. Όταν η έξοδος γίνεται 1 (Hi level), το P-FET άγει, ενώ το N-FET δεν άγει και αντίστροφα όταν η έξοδος γίνεται 0 (Low level). 


      The operation at the time of the input mode - Λειτουργία κυκλώματος σε κατάσταση Εισόδου


 

Όταν ορίζεται ένα ποδαράκι σαν έξοδος, το Bit που του αντιστοιχεί στον καταχωρητή TRISA γίνεται "1".

Η έξοδος (Q) του καταχωρητή TRIS είναι 1 (Hi level), η έξοδος της πύλης OR είναι 1 (Hi level) και το P-FET δεν άγει. Επίσης η ανεστραμμένη έξοδος () του καταχωρητή TRIS είναι 0 ( Low level), η έξοδος της πύλης AND είναι 0 ( Low level), και το N-FET δεν άγει. Παρατηρήστε πώς τα P-FET και N-FET δεν άγουν, το ποδαράκι απομονώνεται από το κύκλωμα εξόδου και λειτουργεί σαν είσοδος.


    The operation of the input circuit - Λειτουργία κυκλώματος εισόδου

    Το κύκλωμα εισόδου είναι πάντοτε συνδεδεμένο με τα ποδαράκια του μικροεπεξεργαστή (I/O pin), ακόμα και όταν αυτά λειτουργούν σαν έξοδοι. Το σήμα εισόδου για κάθε ποδαράκι καταχωρείται στον καταχωρητή input data latch με την χρήση μιας ενδιάμεσης μνήμης TTL (buffer).

    The output and the input timing - Χρονισμός εισόδου - εξόδου

    Η μετάβαση από τον καταχωρητή input data στον output data latch και οι ρυθμίσεις στον TRIS latch γίνονται με την χρήση ενός διαύλου δεδομένων (data bus). Ο data bus έχει 8 κανάλια και η μεταφορά των δεδομένων από και προς τα ποδαράκια γίνεται παράλληλα (parallel). Επειδή ο data bus χρησιμοποιείται για πολλές λειτουργίες, η μεταφορά των δεδομένων ελέγχεται από παλμό χρονισμού (timing pulse) που παράγει ο κάθε καταχωρητής (control signal).

Όταν εξάγονται τα περιεχόμενα του καταχωρητή PORTA, πρώτα μεταφέρονται στον data bus. Στην συνέχεια το σήμα ελέγχου του output data latch register (WR PORT) γίνεται 0 ( Low level) από 1 (Hi level), και τα δεδομένα από το δίαυλο data bus μεταφέρονται στον καταχωρητή data latch. Εκεί μένουν αναλλοίωτα, (ακόμα και αν τα δεδομένα του διαύλου data bus αλλάξουν) έως ότου το σήμα ελέγχου γίνει ξανά 0 ( Low level) από 1 (Hi level).

    Το ίδιο ακριβώς συμβαίνει και με τον καταχωρητή TRIS latch. Τα περιεχόμενα του καταχωρητή TRISA, πρώτα μεταφέρονται στον data bus. Στην συνέχεια το σήμα ελέγχου του καταχωρητή TRIS latch (WR TRIS) γίνεται 0 ( Low level) από 1 (Hi level), και τα δεδομένα από το δίαυλο data bus μεταφέρονται στον καταχωρητή TRIS latch.
    Ο αναστροφέας χρησιμοποιείται για την ανάγνωση των περιεχομένων του καταχωρητή TRIS latch. Τα περιεχόμενα του καταχωρητή  TRIS latch μεταφέρονται στον δίαυλο data bus όταν το  RD TRIS γίνει  "1".



Ο αναστροφέας (πύλη NOT) που βρίσκεται ανάμεσα στον καταχωρητή data latch και τον δίαυλο data bus λειτουργεί όταν το σήμα ανάγνωσης (RD PORT) γίνεται 1 (Hi level) από 0 ( Low level). Ταυτόχρονα η είσοδος ελέγχου του καταχωρητή input data latch (EN) γίνεται 0 ( Low level) από 1 (Hi level), η κατάσταση που έχει το ποδαράκι μεταφέρεται στον καταχωρητή nput data latch και τέλος στο δίαυλο data bus διαμέσου του αναστροφέα (πύλη NOT).  Ο καταχωρητής input data latch χρησιμοποιείται διότι δεν επιδρά στα δεδομένα που μεταφέρονται διαμέσου του δίαυλου data bus ακόμα και όταν η κατάσταση που βρίσκεται το ποδαράκι μεταβληθεί κατά την διάρκεια ανάγνωσης του.


 



Specification of A port ( RA4 ) - Το εσωτερικό της A port (ποδαράκι RA4 )

Το ποδαράκι RA4 της A port έχει σύνθετη λειτουργία. Στο σχήμα φαίνεται το κύκλωμα του. Η διαφορά του από τα άλλα ποδαράκια είναι ότι για την οδήγηση της εξόδου υπάρχει μόνο ένα N-FET και σαν ενδιάμεση μνήμη εισόδου (Input Buffer) χρησιμοποιείται ένας Schmitt trigger.

Αυτό το ποδαράκι μπορεί να χρησιμοποιηθεί σαν είσοδος εξωτερικού χρονισμού για τον TMR0. Επειδή χρησιμοποιεί τον Schmitt trigger σαν buffer εισόδου μπορεί εύκολα να ξεχωρίσει το 1 (Hi level) ή το 0 ( Low level), όταν το μέτωπο (ανερχόμενο ή κατερχόμενο) του εξωτερικού σήματος χρονισμού δεν είναι ξεκάθαρο. 
Επειδή δεν υπάρχει P-FET στο κύκλωμα οδήγησης της εξόδου οι αντιστάσεις pull-up (συνδέει το ποδαράκι στην θετική τάση +5Volt μέσο αντίστασης, συνήθως 10K Ohm) πρέπει να συνδεθούν εξωτερικά.





Specification of B port ( RB0-RB3 ) - Το εσωτερικό της Β port (ποδαράκια RB0-RB3 )

Το κύκλωμα εξόδου της B port είναι διαφορετικό από αυτό της A port. Δεν χρησιμοποιεί FET για την οδήγηση της εξόδου και η αλλαγή κατάστασης από είσοδο σε έξοδο και αντίστροφα γίνεται με πύλες. Χαρακτηριστικό της B port είναι πώς έχει ενσωματωμένες μέσα στο σώμα του μικροεπεξεργαστή, pull-up αντιστάσεις που μπορούν να χρησιμοποιηθούν όταν η B port βρίσκεται σε κατάσταση εισόδου.  

Το ποδαράκι RB0 μπορεί να χρησιμοποιηθεί και σαν ποδαράκι εισόδου εξωτερικού παλμού διακοπής ροής προγράμματος (external input interrupt), και συνδέεται με τα εσωτερικά κυκλώματα του μικροεπεξεργαστή μέσο ενδιάμεσης μνήμης Schmitt trigger buffer.

Για να βρεθεί ένα ποδαράκι της B Port σε κατάσταση εξόδου πρέπει ο καταχωρητής TRIS να γίνει "0". Επειδή υπάρχει αναστροφέας στην γραμμή εξόδου η πύλη λειτουργεί, όταν η έξοδος του καταχωρητή TRIS latch είναι 0 ( Low level). Η είσοδος της πύλης NAND για pull-up είναι σε 0 ( Low level), και η έξοδος είναι 1 (Hi level). Επομένως το P-FET δεν άγει και οι pull-up δεν λειτουργούν.
Όταν ο καταχωρητής TRIS γίνει "1", τότε έχουμε κατάσταση εισόδου. Η έξοδος δεν λειτουργεί, και το σήμα εξόδου απομονώνεται από το ποδαράκι. Εάν θα λειτουργήσουν οι  pull-up ή όχι ρυθμίζεται από το RBUP. Το RBPU είναι το bit 7 του  καταχωρητή OPTION-REG, για να ενεργοποιηθούν οι εσωτερικές αντιστάσεις "Pull-up" πρέπει το bit να είναι "0" για να απενεργοποιηθούν πρέπει να είναι "1". στην περίπτωση της απενεργοποίησης "0", η πύλη του P-FET γίνεται 0 ( Low level) και το P-FET άγει. Στην περίπτωση της ενεργοποίησης  "1", συμβαίνει το αντίθετο.

Ρυθμίζοντας το RBPU, ενεργοποιούνται ή απενεργοποιούνται όλες οι εσωτερικές αντιστάσεις pull up της B port. Δεν είναι δυνατόν να γίνει ρύθμιση για κάθε ποδαράκι ξεχωριστά.




Specification of B port ( RB4-RB7 ) - Το εσωτερικό της Β port (ποδαράκια RB4-RB7 )

Τα ποδαράκια RB4 έως RB7  έχουν την δυνατότητα να ανιχνεύουν αλλαγή κατάστασης (από 1 (Hi level) σε το 0 ( Low level και αντίστροφα)του εισερχόμενου σήματος και να δημιουργούν παλμό διακοπής ροής προγράμματος (Interrupt). Η ανίχνευση γίνεται ταυτόχρονα και στα τέσσερα ποδαράκια. Αυτή η δυνατότητα λειτουργεί μόνο όταν τα ποδαράκια βρίσκονται σε κατάσταση εισόδου. 

Ο καταχωρητής OLD data latch και η πύλη Exclusive OR(XOR) χρησιμοποιούνται για την ανίχνευση της αλλαγής κατάστασης σε συνδυασμό με τον καταχωρητή input data latch.

Ο πίνακας αλήθειας της πύλης XOR είναι ο ακόλουθος.




Το σήμα εισόδου διαβάζεται από τον καταχωρητή input data latch μέσο του αναστροφέα όταν το RD Port γίνει 1 (Hi level) από 0 ( Low level). Στη συνεχεία μεταφέρεται στον καταχωρητή OLD data latch όταν το RD Port γίνει 0 ( Low level) από 1 (Hi level).
Επειδή οι έξοδοι των δυο καταχωρητών είναι ίδιες, αν δεν υπάρξει αλλαγή στο σήμα  εισόδου, η έξοδος της πύλης XOR είναι 0 ( Low level).



Όταν η RD Port γίνει από 0 ( Low level) σε 1 (Hi level) ο καταχωρητής input data latch διαβάζει την κατάσταση που έχει το ποδαράκι εισόδου. Η είσοδος σε κάθε πύλη XOR είναι διαφορετική και η έξοδος είναι 1 (Hi level), αυτή η έξοδος είναι και το σήμα ενεργοποίησης (σκανδαλισμός - trigger) του παλμού διακοπής ροής προγράμματος (Interrupt).
Όταν η RD Port γίνει από 1 (Hi level) σε 0 ( Low level)  ο καταχωρητής OLD input data latch διαβάζει την κατάσταση που έχει το ποδαράκι εισόδου. Η είσοδος στις πύλες XOR είναι ίδια και η έξοδος είναι 0 ( Low level).  

Όταν το σήμα εισόδου μεταβληθεί το RD Port γίνεται 0 ( Low level) από 1 (Hi level), και διαβάζεται από τον καταχωρητή  OLD data latch, σε αυτό το σημείο επειδή η μεταβολή δεν έχει ακόμα διαβαστεί από τον καταχωρητή input data latch η κατάσταση των δύο καταχωρητών είναι διαφορετική, η έξοδος της XOR είναι 1 (Hi level), και δημιουργείται ο παλμός διακοπής (Interrupt).
Η έξοδος της πύλης XOR μένει σε αυτή την κατάσταση μέχρι τον επόμενο παλμό ανάγνωσης του RD Port. Παλμός διακοπής μπορεί να δημιουργηθεί ξανά όταν η έξοδος της πύλης XOR γίνει από 0 ( Low level) 1 (Hi level), ακόμα και αν το bit RBIF μηδενίζεται εκείνη την στιγμή από προηγούμενο παλμό (Interrupt). 

Ο εσωτερικός κόσμος του PIC16F84A(3)