Ενδειξη χρήσης θύρας USB (για συνδεδεμένο περιφερειακό)

Άλλα κυκλώματα που δεν εντάσσονται στις παραπάνω κατηγορίες.
Απάντηση
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 270
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

Ενδειξη χρήσης θύρας USB (για συνδεδεμένο περιφερειακό)

Δημοσίευση από GeorgeVita »

Ενδειξη χρήσης θύρας USB (για συνδεδεμένο περιφερειακό)
("peripheral attached" indicator for USB port)

Εικόνα

Για λόγους αυτοματισμού ή ασφάλειας στη χρήση ενός Η/Υ, είναι χρήσιμο να γνωρίζουμε ότι είναι συνδεδεμένο κάποιο περιφερειακό στη θύρα USB. Αναφέρομαι στην παραγωγή ενός λογικού ψηφιακού σήματος για ενεργοποίηση άλλου συστήματος, λ.χ. σε ένα αυτόματο σύστημα εκτυπώσεων, επανεκκίνηση του Η/Υ και του εκτυπωτή μόλις συνδεθεί ένα USB stick.

Η απλή σκέψη είναι να ανιχνεύσουμε το ρεύμα που θα καταναλώσει το περιφερειακό ή ακόμη και να χρησιμοποιήσουμε μηχανικούς διακόπτες ή οπτικά αισθητήρια που θα ενεργοποιηθούν με την βυσμάτωση του περιφερειακού. Το ορθότερο είναι να διαβάσουμε λίγα στοιχεία από την προδιαγραφή της θύρας USB και να βρούμε μια φθηνή λύση χωρίς να δημιουργήσουμε πρόβλημα στην κανονική λειτουργία του υπολογιστή. Παρακάτω αναφέρομαι στα USB ports 1.1 και 2.0.


Βύσματα, ακροδέκτες USB port:

Εικόνα
Παραπάνω φαίνονται οι αρχικοί τύποι αρσενικών βυσμάτων για καλώδιο, USB-A και USB-B (plugs).

Οι συνδέσεις των 4 ακροδεκτών αφορούν:
1: Vcc, τροφοδοσία, +5VDC, κόκκινο καλώδιο
2: D-, δεδομένα, άσπρο καλώδιο
3: D+, δεδομένα, πράσινο καλώδιο
4: GND, γείωση, επίπεδο αναφοράς τάσεων, 0V, μαύρο καλώδιο

Επιπλέον υπάρχει θωράκιση καλωδίου που συνδέεται στα μεταλλικά περιβλήματα των βυσμάτων.


Εσωτερική συνδεσμολογία από την πλευρά του Η/Υ ή HUB (USB host):

Εικόνα

Το πρωτόκολλο USB χρησιμοποιεί διαφορική σηματοδότηση στους ακροδέκτες D+ και D- για τη μετάδοση δεδομένων. Για την λογική κατάσταση "1" (high) το D+ γίνεται θετικότερο του D-, ενώ το λογικό "0" θέτει το D+ σε τάση χαμηλότερη του D-. Από την πλευρά του USB host (Η/Υ ή HUB) οι γραμμές δεδομένων τερματίζονται προς το GND μέσω αντιστάσεων 15ΚΩ, άρα σε κατάσταση ηρεμίας υπάρχει "pull down" σε λογικό "0".


Ρύθμιση ταχύτητας ροής δεδομένων από το περιφερειακό:

Στη θύρα USB μπορούμε να συνδέσουμε "αργά" ή "γρήγορα" περιφερειακά τα οποία εξ' ορισμού πρέπει να το δηλώσουν με τη βυσμάτωσή τους! Αυτό γίνεται με μια αντίσταση 1Κ5 συνδεδεμένη μεταξύ του D+ ή D- και της τάσης τροφοδοσίας τους (συνήθως γύρω στα 3V3) με αποτέλεσμα να ανεβάζουν το επίπεδο τάσης στον ένα ακροδέκτη με αυτό το ασθενές "pull up".

Το "γρήγορο" περιφερειακό έχει pull up στο D+ ενώ το "αργό" περιφερειακό έχει pull up στο D-:

Εικόνα Εικόνα

Αν θεωρήσουμε αμελητέα την αντίσταση του καλωδίου, η "τάση ορισμού ταχύτητας" στον διαιρέτη λόγω pull up/down θα είναι:
Va=3.3Vx15ΚΩ/(15ΚΩ+1Κ5)=3V

Εικόνα


Ενδειξη τοποθέτησης περιφερειακού στη θύρα USB

Σύμφωνα με τα παραπάνω, για να φτιάξουμε ένα ψηφιακό σήμα ένδειξης σύνδεσης περιφερειακού USB, αρκεί να ελέγχουμε ότι η τάση στο D+ ή το D- έχει υπερβεί ένα προκαθορισμένο όριο, λ.χ. 2V. Τι γίνεται όμως όταν μεταδίδονται δεδομένα στη θύρα USB; Τα line drivers του USB host και του περιφερειακού, εναλλάσσουν την τάση στους ακροδέκτες D+ και D- σε τάσεις μεταξύ 0.3V και 2.8V. Αν χρησιμοποιήσουμε τάση σύγκρισης σε αυτά τα επίπεδα, τότε η ένδειξή μας θα αναβοσβήνει ανάλογα με τα δεδομένα. Αυτό σε μερικές εφαρμογές είναι χρήσιμο γιατί δείχνει πότε μεταφέρονται δεδομένα από-προς το περιφερειακό αλλά δεν κάνει για τη αρχική σκέψη μας.

Τελικά επιλέγουμε μια τάση σύγκρισης γύρω στα 0.2V η οποία μας οδηγεί σε διπλό συγκριτή τάσης "rail to rail" με έξοδο ανοικτού συλλέκτη/drain όπως το LMC6772. Δεν μπορεί να χρησιμοποιηθεί κλασικός συγκριτής τάσης (λ.χ.LM319) γιατί με τροφοδοσία 5V μπορεί να διαχειριστεί σήματα μεταξύ 1V και 3V.

Το βασικό κύκλωμα του συγκριτή είναι:

Εικόνα

Για το τελικό κύκλωμα, θα ρυθμίσουμε την τάση σύγκρισης στα 0.2V επιλέγοντας τις R1=27ΚΩ και R2=1Κ1 (τροφοδοσία 5V).
Αρκεί ένας διαιρέτης και για τους δύο συγκριτές. Οι έξοδοι θα παραλληλιστούν και θα χρησιμοποιήσουμε μία κοινή Rext=10ΚΩ για να φτιάξουμε επίπεδα TTL ("1"=5V, "0"=0V) ή θα βάλουμε ένα ενδεικτικό κόκκινο LED σε σειρά με αντίσταση 2Κ7:

Εικόνα


Περισσότερες πληροφορίες:
- Wikipedia, USB
- T.I., LMC6772 datasheet
- T.I., LM319 datasheet
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 270
Εγγραφή: 04 Σεπ 2013, 21:51
Ονομα: Γιώργος
Επικοινωνία:

Re: Ενδειξη χρήσης θύρας USB (για συνδεδεμένο περιφερειακό)

Δημοσίευση από GeorgeVita »

Το κύκλωμα του συγκριτή που δείχνω ελέγχεί όριο και όχι "παράθυρο" τάσεως. Η τιμή του ορίου καθορίζεται από το διαιρέτη τάσης R1-R2 και την τάση τροφοδοσίας. Ο υπολογισμός γίνεται με το νόμο του Ωμ ή απλούστερα με "Online Voltage Divider Calculator" (ας μάθουμε τον βασικό τρόπο υπολογισμού). Κρατάμε τα γενικά μεγέθη σε αυτά τα επίπεδα (άθροισμα αντιστάσεων 20-40ΚΩ).

Για τροφοδοσία 5V, R1=27KΩ, R2=1.8ΚΩ, όριο τάσης=0.313V ή R1=(27KΩ και 1ΚΩ σε σειρά)=28KΩ, R2=1.8ΚΩ για 0.302V
Αν η τροφοδοσία είναι 3.3V, R1=27KΩ, R2=2.7KΩ, όριο τάσης=0.3V

Οσον αφορά το ενδεικτικό LED, το ρεύμα θα προέλθει από την κάποια τάση τροφοδοσίας της συσκευής ή του USB (Vcc, Vusb) και όχι από τους ακροδέκτες δεδομένων οπότε το όριο ρεύματος θα υπολογιστεί από εκεί. Συνήθως λίγα mA στη γραμμή των 5V δεν είναι πρόβλημα. Η τελική συνδεσμολογία για τροφοδοσία 5V, όριο τάσης 0.3V, ένδειξη σε LED με ρεύμα 5mA είναι:

Εικόνα
Απάντηση