Αντιστάσεις pull up (Pull up resistors)
Οι αντιστάσεις pull up είναι πολύ συνηθισμένες όταν χρησιμοποιούνται μικροελεγκτές (MCU) ή οποιαδήποτε συσκευή ψηφιακής λογικής. Θα εξηγήσουμε πότε και πού να χρησιμοποιήσετε αντιστάσεις pull up και, στη συνέχεια, θα κάνουμε έναν απλό υπολογισμό για να δείξουμε γιατί είναι σημαντικά τα pull-ups.
Τι είναι μια αντίσταση Pull up
Ας υποθέσουμε ότι έχετε ένα MCU με ένα pin διαμορφωμένο ως είσοδο. Εάν δεν υπάρχει τίποτα συνδεδεμένο με τον ακροδέκτη και το πρόγραμμά σας διαβάζει την κατάσταση του ακροδέκτη, θα είναι ψηλά (τραβηγμένο στο VCC) ή χαμηλό (τραβηγμένο στη γείωση); Αυτό το φαινόμενο αναφέρεται ως αιωρούμενο (floating). Για να αποφευχθεί αυτή η άγνωστη κατάσταση, μια αντίσταση pull-up ή pull-down θα διασφαλίσει ότι η ακίδα βρίσκεται είτε σε υψηλή είτε σε χαμηλή κατάσταση, ενώ χρησιμοποιεί επίσης χαμηλή ποσότητα ρεύματος.
Για απλότητα, θα εστιάσουμε στα pull-ups καθώς είναι πιο συνηθισμένα από τα pull-down. Λειτουργούν χρησιμοποιώντας τις ίδιες έννοιες, εκτός από το ότι η αντίσταση pull up είναι συνδεδεμένη με την υψηλή τάση (συνήθως είναι 3,3 V ή 5 V και συχνά αναφέρεται ως VCC) και η αντίσταση pull-down συνδέεται στη γείωση.
Τα pull-ups χρησιμοποιούνται συχνά με κουμπιά και διακόπτες.
Με μια αντίσταση pull up, η ακίδα εισόδου θα διαβάζει υψηλή κατάσταση όταν δεν πατηθεί το κουμπί. Με άλλα λόγια, μια μικρή ποσότητα ρεύματος ρέει μεταξύ του VCC και του ακροδέκτη εισόδου (όχι στη γείωση), επομένως ο ακροδέκτης εισόδου διαβάζει κοντά στο VCC. Όταν πατηθεί το κουμπί, συνδέει την ακίδα εισόδου απευθείας στη γείωση. Το ρεύμα ρέει μέσω της αντίστασης προς τη γείωση, επομένως η ακίδα εισόδου διαβάζει μια χαμηλή κατάσταση. Λάβετε υπόψη ότι εάν η αντίσταση δεν υπήρχε, το κουμπί σας θα συνέδεε το VCC στη γείωση, κάτι που είναι πολύ κακό και είναι επίσης γνωστό ως βραχυκύκλωμα .
Λοιπόν, τι τιμή αντίστασης πρέπει να επιλέξετε;
Η σύντομη και εύκολη απάντηση είναι ότι θέλετε μια τιμή αντίστασης της τάξης των 10 kΩ για το pull-up.
Μια χαμηλή τιμή αντίστασης ονομάζεται ισχυρή έλξη (περισσότερο ρεύμα ρέει), μια υψηλή τιμή αντίστασης ονομάζεται αδύναμη έλξη (ρέει λιγότερο ρεύμα).
Η τιμή της αντίστασης pull up πρέπει να επιλεγεί για να πληροί δύο προϋποθέσεις-συνθήκες:
Όταν πατηθεί το κουμπί , η ακίδα εισόδου τραβιέται χαμηλά. Η τιμή της αντίστασης R1 ελέγχει πόσο ρεύμα θέλετε να ρέει από το VCC, μέσω του κουμπιού και μετά στη γείωση.
Όταν δεν πατηθεί το κουμπί , η ακίδα εισόδου τραβιέται ψηλά. Η τιμή της αντίστασης pull up ελέγχει την τάση στον pin εισόδου.
Για την συνθήκη 1, δεν θέλετε η τιμή της αντίστασης να είναι πολύ χαμηλή. Όσο χαμηλότερη είναι η αντίσταση, τόσο περισσότερη ισχύς θα χρησιμοποιηθεί όταν πατήσετε το κουμπί. Γενικά θέλετε μια μεγάλη τιμή αντίστασης (10kΩ), αλλά δεν τη θέλετε πολύ μεγάλη ώστε να έρχεται σε σύγκρουση με την συνθήκη 2. Μια αντίσταση 4MΩ μπορεί να λειτουργήσει ως pull-up, αλλά η αντίστασή της είναι τόσο μεγάλη που μπορεί να μην κάνει τη δουλειά της στο 100% του χρόνου.
Ο γενικός κανόνας για τη συνθήκη 2 είναι να χρησιμοποιήσετε μια αντίσταση pull up (R1) που είναι μια τάξη μεγέθους (1/10η) μικρότερη από την σύνθετη αντίσταση εισόδου (R2) του ακροδέκτη εισόδου. Ένας ακροδέκτης εισόδου σε έναν μικροελεγκτή έχει σύνθετη αντίσταση που μπορεί να κυμαίνεται από 100k-1MΩ. Η σύνθετη αντίσταση είναι απλώς ένας φανταχτερός τρόπος να πούμε αντίσταση και αντιπροσωπεύεται από το R2 στην παραπάνω εικόνα. Έτσι, όταν το κουμπί δεν πατιέται, μια πολύ μικρή ποσότητα ρεύματος ρέει από το VCC μέσω του R1 και στον ακροδέκτη εισόδου. Η αντίσταση pull up R1 και η σύνθετη αντίσταση pinυ εισόδου R2 διαιρούν την τάση και αυτή η τάση πρέπει να είναι αρκετά υψηλή ώστε η ακίδα εισόδου να διαβάζει υψηλή κατάσταση .
Για παράδειγμα, εάν χρησιμοποιείτε αντίσταση 1MΩ για το pull-up R1 και η σύνθετη αντίσταση R2 της ακίδας εισόδου είναι της τάξης του 1MΩ (που σχηματίζει έναν διαιρέτη τάσης), η τάση στον ακροδέκτη εισόδου θα είναι περίπου το μισό του VCC και ο μικροελεγκτής μπορεί να μην καταγράψει τον ακροδέκτη σε υψηλή κατάσταση. Σε ένα σύστημα 5V, τι διαβάζει το MCU στον ακροδέκτη εισόδου εάν η τάση είναι 2,5V; Είναι υψηλό ή χαμηλό; Το MCU δεν γνωρίζει και μπορεί να διαβάσετε είτε υψηλό είτε χαμηλό. Μια αντίσταση 10k έως 100kΩ για το R1 θα πρέπει να αποφύγει τα περισσότερα προβλήματα.
Δεδομένου ότι οι αντιστάσεις pull up χρειάζονται τόσο συχνά, πολλά MCU, όπως ο μικροελεγκτής ATmega328 στην πλατφόρμα Arduino, διαθέτουν εσωτερικά pull-up που μπορούν να ενεργοποιηθούν και να απενεργοποιηθούν. Για να ενεργοποιήσετε τα εσωτερικά pull-ups σε ένα Arduino, μπορείτε να χρησιμοποιήσετε την ακόλουθη γραμμή κώδικα στη συνάρτηση setup():
pinMode(5, INPUT_PULLUP); // Enable internal pull-up resistor on pin 5
Ένα άλλο πράγμα που πρέπει να επισημανθεί είναι ότι όσο μεγαλύτερη είναι η αντίσταση για το pull-up, τόσο πιο αργός είναι ο pin να ανταποκρίνεται στις αλλαγές τάσης. Αυτό συμβαίνει επειδή το σύστημα που τροφοδοτεί τον ακροδέκτη εισόδου είναι ουσιαστικά ένας πυκνωτής που συνδέεται με την αντίσταση pull up, σχηματίζοντας έτσι ένα φίλτρο RC και τα φίλτρα RC χρειάζονται κάποιο χρόνο για να φορτιστούν και να αποφορτιστούν. Εάν έχετε ένα σήμα πραγματικά γρήγορης αλλαγής (όπως USB), μια αντίσταση pull up υψηλής αξίας μπορεί να περιορίσει την ταχύτητα με την οποία η ακίδα μπορεί να αλλάξει αξιόπιστα την κατάσταση. Αυτός είναι ο λόγος για τον οποίο θα βλέπετε συχνά αντιστάσεις 1k έως 4,7KΩ σε γραμμές σήματος USB.
Όλοι αυτοί οι παράγοντες παίζουν στην απόφαση για την τιμή της αντίστασης pull up που θα χρησιμοποιηθεί.
Υπολογισμός τιμής αντίστασης pull up
Ας υποθέσουμε ότι θέλετε να περιορίσετε το ρεύμα σε περίπου 1 mA όταν πατήσετε το κουμπί στο παραπάνω κύκλωμα, όπου Vcc = 5V. Ποια τιμή αντίστασης πρέπει να χρησιμοποιήσετε;
Είναι εύκολο να δείξετε πώς να υπολογίσετε την αντίσταση pull up χρησιμοποιώντας το νόμο του Ohm :
V=I.R
Αναφερόμενοι στο παραπάνω σχήμα, ο νόμος του Ohm τώρα είναι:
VCC=I1.R1
Αναδιάταξη της παραπάνω εξίσωσης με κάποια απλή άλγεβρα προς επίλυση για την αντίσταση:
Θυμηθείτε να μετατρέψετε όλες τις μονάδες σας σε βολτ, αμπέρ και Ωμ πριν από τον υπολογισμό (π.χ. 1mA = 0,001 Α). Η λύση είναι να χρησιμοποιήσετε αντίσταση 5 kΩ.
Τι είναι οι αντιστάσεις pull down;
Οι αντιστάσεις pull down λειτουργούν με τον ίδιο τρόπο όπως οι αντιστάσεις pull up, εκτός από το ότι τραβούν τον pin σε μια λογική χαμηλή τιμή. Συνδέονται μεταξύ της γείωσης και της κατάλληλης ακίδας σε μια συσκευή. Ένα παράδειγμα φαίνεται στο παρακάτω σχήμα.

Σε αυτό το σχήμα, ένας διακόπτης με μπουτόν συνδέεται μεταξύ
της τάσης τροφοδοσίας και ενός ακροδέκτη μικροελεγκτή. Σε ένα τέτοιο κύκλωμα,
όταν ο διακόπτης είναι κλειστός, η είσοδος του μικροελεγκτή βρίσκεται σε λογική
υψηλή τιμή, αλλά όταν ο διακόπτης είναι ανοιχτός, η αντίσταση pull-down έλκει
την τάση εισόδου στη γείωση (λογική μηδενική τιμή), αποτρέποντας μια
απροσδιόριστη κατάσταση στην είσοδο. Η αντίσταση pull-down πρέπει να έχει
μεγαλύτερη αντίσταση από την αντίσταση του λογικού κυκλώματος, διαφορετικά
μπορεί να είναι σε θέση να μειώσει την τάση υπερβολικά και η τάση εισόδου στον
ακροδέκτη θα παραμείνει σε μια σταθερή λογική χαμηλή τιμή - ανεξάρτητα από τη
θέση του διακόπτη.
Τιμές αντίστασης Pull-up και Pull-down
Θα συνεχίσουμε την αναφορά για την κατάλληλη τιμή τηςpull-up (ή pull-down) αντίστασης επισημαίνοντας ότι περιορίζεται από δύο παράγοντες. Ο πρώτος παράγοντας είναι η απαγωγή ισχύος. Εάν η τιμή αντίστασης είναι πολύ χαμηλή, ένα υψηλό ρεύμα θα ρέει μέσω της αντίστασης έλξης, θερμαίνοντας τη συσκευή και καταναλώνοντας μια περιττή ποσότητα ισχύος όταν ο διακόπτης είναι κλειστός. Αυτή η κατάσταση ονομάζεται ισχυρό pull-up και αποφεύγεται όταν απαιτείται χαμηλή κατανάλωση ενέργειας. Ο δεύτερος παράγοντας είναι η τάση του ακροδέκτη όταν ο διακόπτης είναι ανοιχτός. Εάν η τιμή της αντίστασης έλξης είναι πολύ υψηλή, σε συνδυασμό με μεγάλο ρεύμα διαρροής του pinυ εισόδου, η τάση εισόδου μπορεί να γίνει ανεπαρκής όταν ο διακόπτης είναι ανοιχτός. Αυτή η κατάσταση ονομάζεται αδύναμη έλξη. Η πραγματική τιμή της αντίστασης του pull-up εξαρτάται από την σύνθετη αντίσταση του ακροδέκτη εισόδου, η οποία σχετίζεται στενά με το ρεύμα διαρροής του ακροδέκτη.
Ένας εμπειρικός κανόνας είναι να χρησιμοποιείτε μια αντίσταση που είναι τουλάχιστον 10 φορές μικρότερη από την τιμή της σύνθετης αντίστασης της ακίδας εισόδου. Σε οικογένειες διπολικής λογικής που λειτουργούν σε λειτουργία στα 5 V, η τυπική τιμή της αντίστασης έλξης είναι 1-5 kΩ. Για εφαρμογές με διακόπτες και αισθητήρες αντίστασης, η τυπική τιμή της αντίστασης έλξης είναι 1-10 kΩ. Εάν έχετε αμφιβολίες, ένα καλό σημείο εκκίνησης όταν χρησιμοποιείτε διακόπτη είναι 4,7 kΩ. Ορισμένα ψηφιακά κυκλώματα, όπως οι οικογένειες CMOS, έχουν μικρό ρεύμα διαρροής εισόδου, επιτρέποντας πολύ υψηλότερες τιμές αντίστασης, από περίπου 10 kΩ έως 1 MΩ. Το μειονέκτημα όταν χρησιμοποιείται μεγαλύτερη τιμή αντίστασης είναι ότι η ακίδα εισόδου ανταποκρίνεται αργά στις αλλαγές τάσης. Αυτό είναι το αποτέλεσμα της σύζευξης μεταξύ της αντίστασης έλξης και της συνολικής χωρητικότητας pinυ και καλωδίου στον κόμβο μεταγωγής που σχηματίζει ένα κύκλωμα RC. Όσο μεγαλύτερο είναι το γινόμενο των R και C, τόσο περισσότερος χρόνος χρειάζεται για τη φόρτιση και την εκφόρτιση της χωρητικότητας, και κατά συνέπεια τόσο πιο αργό είναι το κύκλωμα. Σε κυκλώματα υψηλής ταχύτητας, μια μεγάλη αντίσταση έλξης μπορεί μερικές φορές να περιορίσει την ταχύτητα με την οποία ο pin μπορεί να αλλάξει αξιόπιστα κατάσταση.
Σχόλια
Δημοσίευση σχολίου