Search
Search titles only
By:
Search titles only
By:
Home
Forums
New posts
Search forums
What's new
New posts
Latest activity
Members
Current visitors
Κανονισμός Λειτουργίας
Σωματείο AVClub
Log in
Register
Search
Search titles only
By:
Search titles only
By:
New posts
Search forums
Menu
Install the app
Install
Reply to thread
Home
Forums
Δικάναλος Ήχος
Do It Yourself
Πηγές
Arduino based controller for Sabre ES9018 based DACs (Buffalo 32s, II, III, IIISE)
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="Δημήτρης Δημητρακούδης" data-source="post: 1056390801" data-attributes="member: 146"><p>Πριν περίπου δύο ώρες ολοκλήρωσα με επιτυχία την πρώτη δοκιμή του συστήματος ελέγχου για βουβάλια που όπως ξέρετε μελετώ / αναπτύσσω εδώ και λίγο καιρό:</p><p></p><p>[ATTACH]77736[/ATTACH]</p><p>(αυτό που βλέπετε είναι το άψογο κλείδωμα με σήμα 192KHz από την on board κάρτα ήχου ενός PC, μέσω μάλιστα οπτικής ίνας, και μέσα από το 4-input board της TPA, με τις ιδανικές ρυθμίσεις για ελάχιστο jitter)</p><p></p><p></p><p>Μιλάμε για μια υλοποίηση βασισμένη πάνω στον κώδικα του HiFiDuino (<a href="http://hifiduino.wordpress.com/code/" target="_blank">http://hifiduino.wordpress.com/code/</a> , <a href="http://hifiduino.blogspot.com/" target="_blank">http://hifiduino.blogspot.com/</a>) με κυριότερη διαφορά τη σύνδεση με έγχρωμη οθόνη TFT 2.8" αντί για απλή οθόνη τεσσάρων γραμμών.</p><p></p><p>Ο εν λόγω κώδικας υποστηρίζει τα παρακάτω:</p><p></p><p>- Επισήμως συμβατός με τα Buffalo II και III (θεωρώ ότι θα λειτουργήσει χωρίς πρόβλημα και με το Buffalo32s).</p><p>- Υποστήριξη ρολογιών στα 80MHz ή 100MHz (με πολύ εύκολη προσαρμογή του κώδικα).</p><p>- Υποστήριξη απλής λειτουργίας (μια πλακέτα Buffalo) ή dual mono λειτουργίας (με δύο πλακέτες Buffalo).</p><p>- Χειρισμός μέσω ενός rotary encoder.</p><p>- Τηλεχειρισμός μέσω IR.</p><p>- Πλήρης παραμετροποίηση όλων των παραμέτρων του ES9018. Οι αλλαγές γίνονται κανονικά ενώ το DAC είναι σε λειτουργία.</p><p>- Εμφάνιση ένδειξης Lock.</p><p>- Εμφάνιση του είδους σήματος (π.χ. s/pdif, I2S, DSD).</p><p>- Εμφάνιση του sample rate του σήματος εισόδου.</p><p>- Επιλογή εισόδου (για το Buffalo III). Υποστήριξη έως 8 εισόδων.</p><p>- Λειτουργία mute</p><p></p><p></p><p><strong>Περισσότερες λεπτομέρειες:</strong></p><p></p><p></p><p><u>Οθόνη</u></p><p></p><p>Επέλεξα να χρησιμοποιήσω μια έγχρωμη οθόνη TFT με διαγώνιο 2.8" και ανάλυση 320 x 240. Τη συγκεκριμένη οθόνη την αγόρασα από εδώ: <a href="https://www.adafruit.com/products/335" target="_blank">https://www.adafruit.com/products/335</a></p><p>Αργότερα βρήκα μια φαινομενικά συμβατή στο <a href="http://www.ebay.com/itm/2-8-TFT-LCD-with-SD-card-Touch-Panel-for-Arduino-atmega328-2560-AVR-STM32?item=170751305814&cmd=ViewItem&_trksid=p5197.m7&_trkparms=algo%3DLVI%26itu%3DUCI%26otn%3D5%26po%3DLVI%26ps%3D63%26clkid%3D6931216775913914632#ht_3453wt_1163" target="_blank">ebay</a> σε πολύ καλύτερη τιμή. Μόλις την παραλάβω και επιβεβαιώσω τη συμβατότητα θα σας ενημερώσω.</p><p>Υπόψη, η συγκεκριμένη οθόνη είναι touchscreen, κάτι που δεν εκμεταλλεύομαι στην τρέχουσα έκδοση του κώδικα αλλά εκτός απροόπτου θα φανεί χρήσιμο σε μελλοντική έκδοση. <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" /> </p><p></p><p></p><p><u>Microcontroller:</u></p><p></p><p>Ο μικροελεγκτής που θα χρησιμοποιήσουμε είναι το Arduino MEGA 2560, το οποίο έχει διαστάσεις περίπου 10cm x 5,3cm. Στην περίπτωση που ο διαθέσιμος χώρος είναι ελάχιστος, δεν έχει πρόβλημα να μονταριστεί ακόμα και κάθετα. Καλό είναι να μονταριστεί πίσω από την οθόνη ώστε να κρατηθεί μικρό το μήκος της καλωδιοταινίας που τα συνδέει. Μπορεί να βρεθεί στην εγχώρια αγορά (π.χ. <a href="http://www.skroutz.gr/c/146/mikrohlektronika.html?keyphrase=arduino+mega+2560" target="_blank">http://www.skroutz.gr/c/146/mikrohlektronika.html?keyphrase=arduino+mega+2560</a>) ή εναλλακτικά από το ebay σε πολύ καλύτερες τιμές (κλώνους ουσιαστικά, π.χ. αυτό: <a href="http://www.ebay.com/itm/Arduino-MEGA-2560-ATMEGA2560-ATMEGA8U2-USB-Cable-Y275-/250969441880?pt=LH_DefaultDomain_0&hash=item3a6ef1c658#ht_1716wt_1163" target="_blank">http://www.ebay.com/itm/Arduino-MEGA-2560-ATMEGA2560-ATMEGA8U2-USB-Cable-Y275-/250969441880?pt=LH_DefaultDomain_0&hash=item3a6ef1c658#ht_1716wt_1163</a>).</p><p></p><p></p><p><u>Χειρισμός</u></p><p></p><p>Όλος ο έλεγχος γίνεται από έναν rotary encoder (π.χ. <a href="http://www.ebay.com/itm/2pcs-Rotary-Encoder-with-Switch-5-Pins-H27mm-New-/160759340135?pt=LH_DefaultDomain_0&hash=item256e00dc67#ht_846wt_1163" target="_blank">http://www.ebay.com/itm/2pcs-Rotary-Encoder-with-Switch-5-Pins-H27mm-New-/160759340135?pt=LH_DefaultDomain_0&hash=item256e00dc67#ht_846wt_1163</a>) ο οποίος έχει ενσωματωμένο και διακόπτη (momentary contact). Πιέζεις δηλαδή το knob μέσα (ώστε να κάνεις select στην περίπτωσή μας). Μετά περιστρέφεις το knob για να μετακινηθείς στο μενού και να κάνεις αλλαγές στις ρυθμίσεις.</p><p></p><p></p><p><u>Τηλεχειρισμός</u></p><p>Ο αρχικός κώδικας ήταν γραμμένος ώστε να λειτουργεί με το Apple remote, το οποίο είναι μια εξαιρετική επιλογή (οικονομικό, μικρό, πανέμορφο). Δεν έχει όμως πολλά πλήκτρα. Γιαυτό το λόγο η δικιά μου υλοποίηση αυτή τη στιγμή υποστηρίζει το τηλεκοντρόλ του κλασικού BlueSky. <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick out tongue :p" loading="lazy" data-shortname=":p" /></p><p>Αυτό όμως δεν σημαίνει πολλά πράγματα, καθότι ο κώδικας μπορεί σχετικά εύκολα να προσαρμοστεί σε οποιοδήποτε χειριστήριο δουλεύει με το πρότυπο NEC ή και να αλλάξει στην αρχική του μορφή (Apple remote). Σε αυτή την περίπτωση δεν θα υποστηρίζεται αλλαγή εισόδου (αν δεν κάνω λάθος περισσεύουν 2 πλήκτρα στο Apple remote τα οποία θα μπορούσαν να χρησιμοποιηθούν, αλλά δεν έχω τέτοιο τηλεχειριστήριο ώστε να μπορώ να δω τι μπορεί να γίνει).</p><p>Ως IR δέκτης μπορεί να χρησιμοποιηθεί κάποιο από τα κλασικά εξαρτήματα που κυκλοφορούν, π.χ. <a href="http://www.ebay.com/itm/IR-Receiver-Module-38-kHz-TSOP4838-FREE-SHIPPING-/260837712263?pt=LH_DefaultDomain_0&hash=item3cbb23a187" target="_blank">http://www.ebay.com/itm/IR-Receiver-Module-38-kHz-TSOP4838-FREE-SHIPPING-/260837712263?pt=LH_DefaultDomain_0&hash=item3cbb23a187</a></p><p></p><p></p><p><u>Τροφοδοσία</u></p><p></p><p>Η τροφοδοσία του μπορεί να γίνει είτε με unregulated τάση 7-12V είτε με regulated 5V (προσωπικά συνιστώ το δεύτερο). Υπολογίζετε μέγιστη κατανάλωση της τάξης των 300mA. Ένας μικρό τροφοδοτικό με μετ/τη στα 7V+ και ανόρθωση / σταθεροποίηση με ένα 7805 είναι ότι πρέπει.</p><p></p><p></p><p><u>Σύνδεση με το Buffalo</u></p><p></p><p>Η σύνδεση με το βουβάλι επιτυγχάνεται μέσω πρωτοκόλλου I2C. Η σηματοδοσία γίνεται στα 5V που υποστηρίζει το Arduino και επίσης "καταλαβαίνει" το βουβάλι. Παρότι το ES9018 είναι επισήμως 5V tolerant στο I2C bus του, πολλοί προσθέτουν ένα μικρό κύκλωμα που προσαρμόζει τα 5V του Arduinο στα 3.3V που είναι το "απόλυτα σωστό" για το βουβάλι.</p><p>Ο μικροελεγκτής που βρίσκεται εγκατεστημένος στο βουβάλι (ένα ολοκληρωμένο με 8 pins που βρίσκεται πάνω σε βάση) αφαιρείται ώστε να αναλάβει το Arduino. Για τη σηματοδοσία απαιτούνται 3 καλωδιάκια, για τα σήματα SDA, SCL και GND.</p><p></p><p></p><p><u>Σύνδεση USB για το Arduino</u></p><p></p><p>Από τη στιγμή που έχει γίνει ο προγραμματισμός, δεν απαιτείται υπολογιστής για να δουλέψει το controller μας. Οπότε η εύκολη πρόσβαση στη USB θύρα του arduino δεν είναι υποχρεωτική, αλλά αν θέλουμε να ανεβάζουμε νέες versions του κώδικα χωρίς να ξεβιδώνουμε το σασί μας είναι καλή ιδέα να τη προβλέψουμε με κάποιο τρόπο. Ένας τρόπος είναι με USB extension το οποίο θα καταλήγει στο πίσω μέρος του σασί μας.</p><p></p><p></p><p>Αυτά για την ώρα.. Επισυνάπτω τον κώδικα για τους πιο ανήσυχους (v.0.51). Μετονομάστε το αρχείο σε B3_arduino_code_v0_51.zip και ανοίξτε το με το <a href="http://arduino.cc/en/Main/Software" target="_blank">περιβάλλον ανάπτυξης του Arduino.</a></p><p></p><p>[ATTACH]77737[/ATTACH]</p><p></p><p>Αύριο (ή αργότερα) θα συνεχίσουμε με λεπτομέρειες της κατασκευής.</p></blockquote><p></p>
[QUOTE="Δημήτρης Δημητρακούδης, post: 1056390801, member: 146"] Πριν περίπου δύο ώρες ολοκλήρωσα με επιτυχία την πρώτη δοκιμή του συστήματος ελέγχου για βουβάλια που όπως ξέρετε μελετώ / αναπτύσσω εδώ και λίγο καιρό: [ATTACH=CONFIG]77736._xfImport[/ATTACH] (αυτό που βλέπετε είναι το άψογο κλείδωμα με σήμα 192KHz από την on board κάρτα ήχου ενός PC, μέσω μάλιστα οπτικής ίνας, και μέσα από το 4-input board της TPA, με τις ιδανικές ρυθμίσεις για ελάχιστο jitter) Μιλάμε για μια υλοποίηση βασισμένη πάνω στον κώδικα του HiFiDuino ([URL]http://hifiduino.wordpress.com/code/[/URL] , [URL]http://hifiduino.blogspot.com/[/URL]) με κυριότερη διαφορά τη σύνδεση με έγχρωμη οθόνη TFT 2.8" αντί για απλή οθόνη τεσσάρων γραμμών. Ο εν λόγω κώδικας υποστηρίζει τα παρακάτω: - Επισήμως συμβατός με τα Buffalo II και III (θεωρώ ότι θα λειτουργήσει χωρίς πρόβλημα και με το Buffalo32s). - Υποστήριξη ρολογιών στα 80MHz ή 100MHz (με πολύ εύκολη προσαρμογή του κώδικα). - Υποστήριξη απλής λειτουργίας (μια πλακέτα Buffalo) ή dual mono λειτουργίας (με δύο πλακέτες Buffalo). - Χειρισμός μέσω ενός rotary encoder. - Τηλεχειρισμός μέσω IR. - Πλήρης παραμετροποίηση όλων των παραμέτρων του ES9018. Οι αλλαγές γίνονται κανονικά ενώ το DAC είναι σε λειτουργία. - Εμφάνιση ένδειξης Lock. - Εμφάνιση του είδους σήματος (π.χ. s/pdif, I2S, DSD). - Εμφάνιση του sample rate του σήματος εισόδου. - Επιλογή εισόδου (για το Buffalo III). Υποστήριξη έως 8 εισόδων. - Λειτουργία mute [B]Περισσότερες λεπτομέρειες:[/B] [U]Οθόνη[/U] Επέλεξα να χρησιμοποιήσω μια έγχρωμη οθόνη TFT με διαγώνιο 2.8" και ανάλυση 320 x 240. Τη συγκεκριμένη οθόνη την αγόρασα από εδώ: [URL]https://www.adafruit.com/products/335[/URL] Αργότερα βρήκα μια φαινομενικά συμβατή στο [URL="http://www.ebay.com/itm/2-8-TFT-LCD-with-SD-card-Touch-Panel-for-Arduino-atmega328-2560-AVR-STM32?item=170751305814&cmd=ViewItem&_trksid=p5197.m7&_trkparms=algo%3DLVI%26itu%3DUCI%26otn%3D5%26po%3DLVI%26ps%3D63%26clkid%3D6931216775913914632#ht_3453wt_1163"]ebay[/URL] σε πολύ καλύτερη τιμή. Μόλις την παραλάβω και επιβεβαιώσω τη συμβατότητα θα σας ενημερώσω. Υπόψη, η συγκεκριμένη οθόνη είναι touchscreen, κάτι που δεν εκμεταλλεύομαι στην τρέχουσα έκδοση του κώδικα αλλά εκτός απροόπτου θα φανεί χρήσιμο σε μελλοντική έκδοση. ;) [U]Microcontroller:[/U] Ο μικροελεγκτής που θα χρησιμοποιήσουμε είναι το Arduino MEGA 2560, το οποίο έχει διαστάσεις περίπου 10cm x 5,3cm. Στην περίπτωση που ο διαθέσιμος χώρος είναι ελάχιστος, δεν έχει πρόβλημα να μονταριστεί ακόμα και κάθετα. Καλό είναι να μονταριστεί πίσω από την οθόνη ώστε να κρατηθεί μικρό το μήκος της καλωδιοταινίας που τα συνδέει. Μπορεί να βρεθεί στην εγχώρια αγορά (π.χ. [URL]http://www.skroutz.gr/c/146/mikrohlektronika.html?keyphrase=arduino+mega+2560[/URL]) ή εναλλακτικά από το ebay σε πολύ καλύτερες τιμές (κλώνους ουσιαστικά, π.χ. αυτό: [URL]http://www.ebay.com/itm/Arduino-MEGA-2560-ATMEGA2560-ATMEGA8U2-USB-Cable-Y275-/250969441880?pt=LH_DefaultDomain_0&hash=item3a6ef1c658#ht_1716wt_1163[/URL]). [U]Χειρισμός[/U] Όλος ο έλεγχος γίνεται από έναν rotary encoder (π.χ. [URL]http://www.ebay.com/itm/2pcs-Rotary-Encoder-with-Switch-5-Pins-H27mm-New-/160759340135?pt=LH_DefaultDomain_0&hash=item256e00dc67#ht_846wt_1163[/URL]) ο οποίος έχει ενσωματωμένο και διακόπτη (momentary contact). Πιέζεις δηλαδή το knob μέσα (ώστε να κάνεις select στην περίπτωσή μας). Μετά περιστρέφεις το knob για να μετακινηθείς στο μενού και να κάνεις αλλαγές στις ρυθμίσεις. [U]Τηλεχειρισμός[/U] Ο αρχικός κώδικας ήταν γραμμένος ώστε να λειτουργεί με το Apple remote, το οποίο είναι μια εξαιρετική επιλογή (οικονομικό, μικρό, πανέμορφο). Δεν έχει όμως πολλά πλήκτρα. Γιαυτό το λόγο η δικιά μου υλοποίηση αυτή τη στιγμή υποστηρίζει το τηλεκοντρόλ του κλασικού BlueSky. :p Αυτό όμως δεν σημαίνει πολλά πράγματα, καθότι ο κώδικας μπορεί σχετικά εύκολα να προσαρμοστεί σε οποιοδήποτε χειριστήριο δουλεύει με το πρότυπο NEC ή και να αλλάξει στην αρχική του μορφή (Apple remote). Σε αυτή την περίπτωση δεν θα υποστηρίζεται αλλαγή εισόδου (αν δεν κάνω λάθος περισσεύουν 2 πλήκτρα στο Apple remote τα οποία θα μπορούσαν να χρησιμοποιηθούν, αλλά δεν έχω τέτοιο τηλεχειριστήριο ώστε να μπορώ να δω τι μπορεί να γίνει). Ως IR δέκτης μπορεί να χρησιμοποιηθεί κάποιο από τα κλασικά εξαρτήματα που κυκλοφορούν, π.χ. [URL]http://www.ebay.com/itm/IR-Receiver-Module-38-kHz-TSOP4838-FREE-SHIPPING-/260837712263?pt=LH_DefaultDomain_0&hash=item3cbb23a187[/URL] [U]Τροφοδοσία[/U] Η τροφοδοσία του μπορεί να γίνει είτε με unregulated τάση 7-12V είτε με regulated 5V (προσωπικά συνιστώ το δεύτερο). Υπολογίζετε μέγιστη κατανάλωση της τάξης των 300mA. Ένας μικρό τροφοδοτικό με μετ/τη στα 7V+ και ανόρθωση / σταθεροποίηση με ένα 7805 είναι ότι πρέπει. [U]Σύνδεση με το Buffalo[/U] Η σύνδεση με το βουβάλι επιτυγχάνεται μέσω πρωτοκόλλου I2C. Η σηματοδοσία γίνεται στα 5V που υποστηρίζει το Arduino και επίσης "καταλαβαίνει" το βουβάλι. Παρότι το ES9018 είναι επισήμως 5V tolerant στο I2C bus του, πολλοί προσθέτουν ένα μικρό κύκλωμα που προσαρμόζει τα 5V του Arduinο στα 3.3V που είναι το "απόλυτα σωστό" για το βουβάλι. Ο μικροελεγκτής που βρίσκεται εγκατεστημένος στο βουβάλι (ένα ολοκληρωμένο με 8 pins που βρίσκεται πάνω σε βάση) αφαιρείται ώστε να αναλάβει το Arduino. Για τη σηματοδοσία απαιτούνται 3 καλωδιάκια, για τα σήματα SDA, SCL και GND. [U]Σύνδεση USB για το Arduino[/U] Από τη στιγμή που έχει γίνει ο προγραμματισμός, δεν απαιτείται υπολογιστής για να δουλέψει το controller μας. Οπότε η εύκολη πρόσβαση στη USB θύρα του arduino δεν είναι υποχρεωτική, αλλά αν θέλουμε να ανεβάζουμε νέες versions του κώδικα χωρίς να ξεβιδώνουμε το σασί μας είναι καλή ιδέα να τη προβλέψουμε με κάποιο τρόπο. Ένας τρόπος είναι με USB extension το οποίο θα καταλήγει στο πίσω μέρος του σασί μας. Αυτά για την ώρα.. Επισυνάπτω τον κώδικα για τους πιο ανήσυχους (v.0.51). Μετονομάστε το αρχείο σε B3_arduino_code_v0_51.zip και ανοίξτε το με το [URL="http://arduino.cc/en/Main/Software"]περιβάλλον ανάπτυξης του Arduino.[/URL] [ATTACH]77737._xfImport[/ATTACH] Αύριο (ή αργότερα) θα συνεχίσουμε με λεπτομέρειες της κατασκευής. [/QUOTE]
Verification
Post reply
Home
Forums
Δικάναλος Ήχος
Do It Yourself
Πηγές
Arduino based controller for Sabre ES9018 based DACs (Buffalo 32s, II, III, IIISE)
Top
Bottom
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…