Οδηγός καλής κατασκευής και συνδεσμολογίας του Sampling Rate Indicator Ver.1.0

takis

Supreme Member
11 August 2006
3,671
--------------------
καλυτερα με ποδαρακια τρυπας

sorry που δεν τα διαβαζω αμεσως αλλα με εχει τσακισει μια ιωση 3 ημερες και ειμαι εκτος λειτουργιας
 

lemon

Supreme Member
3 March 2009
4,041
Οπότε ας περιμένουμε να βρει χρόνο ο Δημήτρης για να μην μπλέξεις και με άλλη κατασκευή.
Από ότι βλέπω η πλακέτα του Soekris θα σε καλύψει και το μόνο που θα κάνεις είναι να τραβήξεις τα ανάλογα καλώδια προς την πλακέτα δειγματοληψίας και να σου γράψουμε 2-3 γραμμές κώδικα παραπάνω για να καλύψεις τις εναλλαγές που χρειάζεσαι για τις εισόδους.
 

takis

Supreme Member
11 August 2006
3,671
--------------------
Τάκη, αν θέλεις απλά να κάνεις switch σήματα από 2 toslink receivers, σου κάνει η πλακέτα που έχεις (του Soekris).

Θα σου έγραφα περισσότερα αλλά είμαι εμπλοκή στην εταιρεία όλο το ΠΣΚ.

Δημητρη αλλο πραγμα θελω να κανω εχω μια spdif και μια toslink η οποια το ιδιο το πλακετακι που την εχει επανω την συνοδευη με ενα ολοκληρωμενο που μετατρεπει την εξοδο τις toslink σε spdif ,εγω λοιπον θελω να μπορω να κανω επιλογη μεταξυ αυτων των δυο με ηλεκτρονικο τροπο αν γινεται χωρις την χρηση καποιου ρελε
αν αυτο γινεται με την πλακετα εισοδου που εχω για το Soekris θα ηταν τελεια λυση


και επισης να ενεργοποιησω το κομματι του τηλεχερισμου του Indicator Ver.1.0 ετσι ωστε να αλλαζω απο την λειτουργεια του mambo μεταξυ spdif σε i2s

το εγραψα καπως ποιο ξεκαθαρα θελω να πιστευω γιατι απο οτι ειδα ειχες γραψει για εναλλαγη σε δυο toslink
 

lemon

Supreme Member
3 March 2009
4,041
Δυστυχώς δεν είμαι και πολύ οικείος με τα ολοκληρωμένα μέσω τρύπας, 2-3 που κοίταξα μεταξύ των οποίων και αυτό που πρότεινε το μέλος Peter52, δεν λειτουργούν με ένα Sense που είναι το ζητούμενο.
Οπότε ότι σου προτείνω είναι με το γνωστό smd 74FST3257 multiplexer που φορά και το μάμπο σου.
Εάν βρεις τρύπας που λειτουργεί με ένα sense, ΟΚ μπορείς να το αντικαταστήσεις.

Σου περιγράφω τη λογική και τι πρέπει να κάνεις.

  • Τα spdif1/2 θα αλλάζουν με το πρώτο 74FSTΧΧ το οποίο θα αλλάζει είσοδο μέσω του S (Sense) του, με προγραμματισμό του digital I9
  • To usb θα αλλάζει μέσω του δεύτερου 74FSTΧΧ που έχει επάνω του το μάμπο και πάλι μέσω του S (Sense) του, με προγραμματισμό του digital I10.


Θεωρούμε ότι:

Πλήκτρο 1 στο τηλεχειριστήριο σου = SOURCE1_CODE (spdif1)
Πλήκτρο 2 στο τηλεχειριστήριο σου = SOURCE2_CODE (spdif2)
Πλήκτρο 3 στο τηλεχειριστήριο σου = SOURCE3_CODE (usb)

Στον κώδικα αυτά θα περιγράφονται όπως παρακάτω:
#define POWER_CODE 0xB288313B // Code for power on/off
#define SOURCE1_CODE 0xD3D0795A // Code for spdif 1
#define SOURCE2_CODE 0xDBEB8A52 // Code for spdif 2
#define SOURCE3_CODE 0xA10C940B // Code for usb

Εννοείται ότι την τιμή κάθε CODE, θα πρέπει να τη βρεις σύμφωνα με το δικό σου τηλεχειριστήριο και να τη βάλεις μετά το 0x

Φτιάχνεις μια πλακέτα που θα ακολουθεί τη λογική του παρακάτω σχεδίου (στην αρχή θα το δοκιμάσεις σε veroboard πλακέτα).

multiplexer.jpg

Εάν χρησιμοποιήσεις τις εισόδους 1 και 2 τότε, στο 1Β1 θα φέρεις το θετικό του spdif1 και στο 1Β2 θα φέρεις το θετικό του spdif2. H έξοδος του θετικού που θα πηγαίνει στο θετικό της spdif εισόδου του μάμπο θα είναι η .
Ακολούθως θα ακολουθήσεις τα ίδια για το ground του κάθε σήματος, spdif1 στο 2Β1, spdif2 στο 2Β2 και έξοδος στο προς το μάμπο.
Οι λοιπές είσοδοι-έξοδοι που δεν θα χρησιμοποιηθούν θα πάνε στο gnd.

  1. Όταν στο S του πολυπλέκτη της πλακέτας δεν θα πηγαίνει τάση από το digital pinI9 θα επιλέγεται η spdif1, εάν θα πηγαίνει τάση θα επιλέγεται η spdif2.
  2. Ακολούθως όταν στο S του πολυπλέκτη του μάμπο θα πηγαίνει τάση από το digital pinI10 θα επιλέγεται η usb, εάν όχι θα επιλέγεται η τρέχουσα spdif.


Ο κώδικας που πρέπει να μπει και θα αντικαταστήσει τα

else if ((results.value == SOURCE1_CODE) && (poweron == true)) { // What to do if the Source 1 button is pressed
//Serial.write("Input 1\n");
digitalWrite(I9, LOW);
digitalWrite(I10, LOW);
source = 0;
}

else if ((results.value == SOURCE2_CODE) && (poweron == true)) { // What to do if the Source 2 button is pressed
//Serial.write("Input 2\n");
digitalWrite(I9, HIGH);
digitalWrite(I10, HIGH);
source = 1;
}

Θα πρέπει να είναι ο παρακάτω:

// What to do if the Button 1 is pressed
else if ((results.value == SOURCE1_CODE) && (poweron == true)) { // What to do if the Source 1 button is pressed
//Serial.write("SPDIF 1");
digitalWrite(I9, LOW);
digitalWrite(I10, LOW);
source = 1;
}

// What to do if the Button 2 is pressed
else if ((results.value == SOURCE2_CODE) && (poweron == true)) { // What to do if the Source 2 button is pressed
//Serial.write("SPDIF 2");
digitalWrite(I9, HIGH);
digitalWrite(I10, LOW);
source = 2;
}
// What to do if the Button 3 is pressed
else if ((results.value == SOURCE3_CODE) && (poweron == true)) { // What to do if the Source 2 button is pressed
//Serial.write("USB");
digitalWrite(I10, HIGH);
source = 3;
}

Θα τραβήξεις ένα καλώδιο από το πιν του I9 και θα το πας στον πρώτο πολυπλέκτη της πλακέτας που θα φτιάξεις.
Θα τραβήξεις άλλον ένα καλώδιο από το πιν του I10 και θα το φέρεις στο μεσαίο pin που έχει το μάμπο με την τριπλέτα στη σειρά.

Στο multiplexer της πλακέτας που θα φτιάξεις θα δώσεις τροφοδοσία από τα 5V του μάμπο, το ρεύμα επαρκεί γιατί τραβάνε ελάχιστο ρεύμα.