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

Ψηφιακά κυκλώματα που δεν εντάσσονται στις παραπάνω κατηγορίες.
Απάντηση
Άβαταρ μέλους
GeorgeVita
Διαχειριστής
Δημοσιεύσεις: 624
Εγγραφή: 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
AceRG
Δημοσιεύσεις: 4
Εγγραφή: 20 Απρ 2017, 22:02
Ονομα: Rob

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

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

Εξαιρετικό άρθρο και σχεδόν ακριβώς αυτό που αναζητούσα εδώ και καιρό! Έχω ξεκινήσει σχετικά πρόσφατα να ασχολούμαι με κυκλώματα και έψαχνα συμβουλές για δύο (φαινομενικά) εύκολα κυκλώματα. Έχω μια συσκευή που μπορεί να "μιλήσει" σε PC είτε μέσω USB, είτε μέσω σειριακής RS-232 (ή το ένα ή το άλλο, όχι και τα δύο ταυτόχρονα).
Επειδή η συσκευή βρίσκεται σε δυσπρόσιτο σημείο, ήθελα να παρεμβάλω στα αντίστοιχα καλώδια από ένα ζεύγος LED για να έχω μια απλή οπτική ένδειξη όταν κυκλοφορούν δεδομένα. Δεν με ενδιαφέρει το αναβόσβημα των LED να ανταποκρίνεται στο data rate (όπως π.χ. σε HDD) απλώς να βλέπω εύκολα ότι πράγματι υπάρχει ροή.
Για το RS-232 είχα μια καλή βοήθεια από άλλο site αλλά τα παιδιά εκεί δεν μπορούσαν να προτείνουν κάτι για το USB λόγω του πιο "σύνθετου" πρωτόκολλου. Το συγκεκριμένο κύκλωμα που προτείνεις απ' ότι καταλαβαίνω (με τα πολύ λίγα που έχω μάθει μέχρι στιγμής!) είναι ιδανικό αλλά προφανώς χρειάζεται άλλη αντίσταση ώστε να έχουμε πράγματι τάση σύγκρισης μεταξύ 0.3V και 2.8V που αποφεύγεις στη συγκεκριμένη υλοποίηση, αλλά για μένα είναι αυτό που χρειάζεται!

Μπορώ να ρωτήσω τι αντίσταση είναι καλύτερη για την τάση σύγκρισής 0.3 - 2.8V και επίσης που θα έβαζα τα LED στο κύκλωμα? Κρίνοντας από την λύση που έχω για το σειριακό, εκτιμώ ορθά ότι και εδώ απαιτείται LED πολύ μικρής κατανάλωσης δηλαδή 1mA ή λιγότερο, ώστε να μην έχω απώλεια στο σήμα/δεδομένα (το οποίο φυσικά είναι απαραίτητη προϋπόθεση)?

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

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

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

AceRG έγραψε:... τι αντίσταση είναι καλύτερη για την τάση σύγκρισης 0.3 - 2.8V και επίσης που θα έβαζα τα LED στο κύκλωμα; Κρίνοντας από την λύση που έχω για το σειριακό, εκτιμώ ορθά ότι και εδώ απαιτείται LED πολύ μικρής κατανάλωσης δηλαδή 1mA ή λιγότερο, ώστε να μην έχω απώλεια στο σήμα/δεδομένα (το οποίο φυσικά είναι απαραίτητη προϋπόθεση);
Γειά σου Rob, καλώς ήλθες!
Το κύκλωμα του συγκριτή που δείχνω ελέγχεί όριο και όχι "παράθυρο" τάσεως. Η τιμή του ορίου καθορίζεται από το διαιρέτη τάσης 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 είναι:

Εικόνα
AceRG
Δημοσιεύσεις: 4
Εγγραφή: 20 Απρ 2017, 22:02
Ονομα: Rob

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

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

Ευχαριστώ πολύ Γιώργο! Όπως έγραψα, ασχολούμαι με το hardware αρκετό καιρό αλλά κυρίως σαν "black box" με παρεμβάσεις κυρίως σε θέματα καλωδίωσης. Πρόσφατα ξεκίνησα να μαθαίνω σε μεγαλύτερο βάθος θέματα κυκλωμάτων και υλικών οπότε άρθρα όπως αυτό και η συνδρομή σου είναι πολύτιμα!
Παρεμπιπτόντως κατέβασα και το ΚiCAD όπως προτείνεις σε άλλο σου post για να αρχίσω να βλέπω και το σχεδιαστικό κομμάτι.

Και μια πρακτική ερώτηση όσο αφορά τα υλικά: από την μέχρι τώρα διαδικτυακή έρευνα μου, διαπιστώνω σωστά ότι οι καλύτερες πηγές είναι TME, RS-Online και Digi-Key?
Δεν έχω δει κάποιο αξιόλογο ελληνικό on-line κατάστημα, τουλάχιστον ως προς την ποικιλία για κάποια συγκεκριμένα πράγματα (π.χ. βύσματα M8/M12), χωρίς αυτό να σημαίνει ότι το έχω εξαντλήσει φυσικά! Ομοίως έχεις κάποια πρόταση για "ζωντανό" μαγαζί, όχι μόνο για υλικά, αλλά και να έχει ανθρώπους με διάθεση για 10' λεπτά παραπάνω κουβέντα όταν έχεις απορίες πρωτάρη!?
AceRG
Δημοσιεύσεις: 4
Εγγραφή: 20 Απρ 2017, 22:02
Ονομα: Rob

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

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

Α συγνώμη και μια ερώτηση ακόμη! Όπως έγραψα στο αρχικό, η συσκευή είναι απομακρυσμένη και μπορεί να δουλεύει με output μόνο USB ή μόνο σειριακό (όχι και τα δύο ταυτόχρονα). Για να γίνει αυτό, πρέπει να ανοίξεις το καπάκι της συσκευής (βίδες) και να βάλεις ένα jumper στα δύο pin που θέλεις (συνολικά τρία pin).
Σκεφτόμουν να βάλω ένα τριπολικό πριζάκι με καλώδια πάνω στα pin και να το "τραβήξω" σε πιο εύκολα προσβάσιμο χώρο (εκεί που θα είναι τα LED που συζητάμε δηλαδή) με απόληξη σε έναν διακόπτη Slide ώστε η επιλογή να είναι πιο εύκολη. Βλέπεις κάποιο πρόβλημα στη λύση αυτή (ο διακόπτης θα είναι ON-ON).

Ευχαριστώ!
SeAfasia
Δημοσιεύσεις: 160
Εγγραφή: 27 Ιούλ 2015, 22:13
Ονομα: Ντίνος

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

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

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

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

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

AceRG έγραψε:... ένα jumper ... να το "τραβήξω" σε πιο εύκολα προσβάσιμο χώρο (εκεί που θα είναι τα LED που συζητάμε δηλαδή) με απόληξη σε έναν διακόπτη Slide ώστε η επιλογή να είναι πιο εύκολη. Βλέπεις κάποιο πρόβλημα στη λύση αυτή (ο διακόπτης θα είναι ON-ON).
Ανάλογα με την απόσταση και το κύκλωμα. Δοκίμασε στην αρχή με κάποιο θωρακισμένο μαλακό καλώδιο με απλό μπλεντάζ. Αν δέν είναι 0V/GND η μία από τις συνδέσεις του jumper τότε βάλε 2+μπλεντάζ (λ.χ. για Stereo Audio). Οι "ψίχες" του καλωδίου στα 2 pin του jumper και το μπλεντάζ στο σασί της συσκευής.
AceRG έγραψε:... οι καλύτερες πηγές είναι TME, RS-Online και Digi-Key;
http://www.ΤΜΕ.eu για γρήγορη παράδοση, χρέωση μεταφορικών ~€8, κάνουν τακτικά προσφορές.
http://www.mouser.com/gr για ποικιλία, αποστολή λιγότερο από εβδομάδα, τιμολόγηση από Ε.Ε., δωρεάν παράδοση για αξία >€50.
http://www.acdcshop.gr από Ελλάδα, τα περισσότερα είναι από TME, αν είναι ετοιμοπαράδοτα τα έχεις την επόμενη μέρα, μεταφορικά ~€4

Μετά "λόγω τιμής" (ακροβότερα) export.farnell.com και RS components/TCC Hellas (έχουν γραφείο εδώ).

Ολοι έχουν δυνατότητα έκδοσης τιμολογίου (τοπικά ή ενδοκοινοτικά) εφόσον δηλώσεις επαγγελματικό Α.Φ.Μ.

Ξεχνάς την digikey! 101% θα κολλήσει στο τελωνείο με αμοιβή εκτελωνιστή €80+ΦΠΑ.
AceRG
Δημοσιεύσεις: 4
Εγγραφή: 20 Απρ 2017, 22:02
Ονομα: Rob

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

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

Ευχαριστώ Γιώργο! Την Digikey την έχω χρησιμοποιήσει για ένα συγκεκριμένο cable assembly (M8 που λέγαμε πριν) και ευτυχώς ήταν κάτω από 50 δολάρια οπότε δεν κόλλησε τελωνείο. Παρ'όλα αυτά, το καλώδιο έκανε 15 ευρώ και τα μεταφορικά 20!! Εξου και άρχισα να βλέπω την ΤΜΕ και την RS.

Πράγματι το καλώδιο θα το έβαζα με shielding, είναι στάνταρ για την συγκεκριμένη συσκευή οπότε το είχα υπόψη αλλά ευχαριστώ για την επιβεβαίωση. Περισσότερο με απασχολούσε ο διακόπτης για περιπτώσεις arc αλλά έτσι κι αλλιώς η συσκευή πρέπει να είναι κλειστή πριν αλλάξεις θέση στο jumper και με το shielding στο σασί δεν πρέπει να έχει θέμα το συγκεκριμένο. Για την απόσταση εκτιμώ γύρω στα 3 μέτρα max το καλώδιο οπότε θα το δοκιμάσω και βλέπουμε.

Θα τσεκάρω και τα άλλα site που προτείνεις και θα ενημερώσω με το τελικό αποτέλεσμα των κυκλωμάτων! Ευχαριστώ και πάλι και μπορεί να σε ζαλίσω με τίποτα ερωτήσεις ακόμη!
Απάντηση

Επιστροφή στο “Λοιπά ψηφιακά κυκλώματα”