Μιας και ως γνωστό η AKM είναι εκτός μάχης λόγω της γνωστής φωτιάς στο εργοστάσιό της, είπα να ξανα-πιάσω τα παλιά-καλά τσιπάκια της ESS.
Ευχάριστη έκπληξη αποτέλεσε το ότι αφενός τα πουλάει πια και ο Mouser, αφετέρου αποφάσισαν επιτέλους να δώσουν ελεύθερα όλα τα datasheets τους!
Οπότε ολοκλήρωσα την σχεδίαση της κύριας πλακέτας που είχα στο μυαλό μου εδώ και 1-2 χρόνια και έβαλα παραγγελία. Μετά από λίγο καιρό παρέλαβα αυτή την ομορφιά:
Πάνω στην ίδια πλακέτα ενσωμάτωσα:
1) USB receiver με XMOS
2) Τέσσερις εισόδους s/pdif, δυο οπτικές και δυο ομοαξονικές
3) Βοηθητική είσοδο I2S (π.χ. για Raspberry Pi)
4) Το DAC με τα τροφοδοτικά του
5) Το προγραμματιζόμενο ρολόι Si544
6) Controller με STM32 για όλα τα παραπάνω
Οι πιο έμπειροι παίχτες θα έχουν προσέξει τη λέξη "Tru128FS" στον τίτλο του νήματος και το ότι επέλεξα να βάλω προγραμματιζόμενο ρολόι αντί για κάποιο από τα γνωστά κορυφαία ρολόγια που βάζει ο πιο πολύς κόσμος.
Ο στόχος μου ήταν να λειτουργώ το dac chip στο λεγόμενο "128FS mode", το οποίο προϋποθέτει την ύπαρξη MCLK το οποίο να είναι πάντα 128 x FS (sampling rate). Αυτό πρακτικά μας οδηγεί σε προγραμματιζόμενο ρολόι, γιατί αν λέγαμε ότι θα καλύπταμε τα κλασικά sampling rates (44.1, 48, 88.2, 96, 176.4, 192, 352, 384) θα έπρεπε να βάζαμε κυριολεκτικά 8 κλασικά ρολόγια. Αυτό πολύ απλά δεν είναι εφικτό, αν θέλουμε να έχουμε σωστό layout στην πλακέτα με όσο το δυνατό πιο μικρές διαδρομές για το MCLK. Οπότε το Si544 προγραμματίζεται σε συχνότητες από 5.6448 MHz (που αντιστοιχούν σε 128 x 44.1K) έως και 98.304 MHz, τα οποία αντιστοιχούν σε υποστήριξη sampling rate 768 KHz.
Αλλά έτσι έχουμε κάνει την μισή δουλειά. Πρέπει να καταφέρουμε με κάποιο τρόπο να δουλεύει σωστά και το USB receiver μας με τις συγκεκριμένες συχνότητες MCLK, ώστε να έχουμε μια 100% σύγχρονη αλυσίδα. Αλλά τα XMOS δεν δουλεύουν έτσι. Περιμένουν να τους δώσεις ένα από δυο διαφορετικά MCLK, ανάλογα την "οικογένεια" δειγματοληψίας που θέλεις να καλύψεις. Οπότε συνήθως τροφοδοτούνται από δυο ρολόγια, ένα για τα 44.1/88.2/176.4/κτλ και ένα ακόμα για τα 48/96/192/κτλ.
Θα χρειαζόταν να φτιάξω ένα ιδιαίτερα custom firmware το οποίο να δουλεύει ακριβώς όπως ήθελα. Αυτό ήταν άσκηση δεύτερου χρόνου, αφού επιβεβαίωνα για αρχή ότι το dac δούλευε κανονικά με τον πιο "συμβατικό" τρόπο (μόνο με δυο διαφορετικά MCLK).
Οπότε ξεκίνησε η κατασκευή.. Κολλήθηκαν τα περισσότερα εξαρτήματα στην πλακέτα, γράφτηκε και ένας πρόχειρος κώδικας για τον ελεγκτή και οι πρώτες δοκιμές έδειξαν ότι όλα λειτουργούν όπως πρέπει.
Στη συνέχεια έπρεπε να συνδεθεί και κάποιο συμβατό αναλογικό στάδιο. Ως γνωστό τα ESS 90x8 έχουν έξοδο ρεύματος, οπότε χρειάζεται κάποιο στάδιο τύπου I/V.
Ο φίλος Κώστας (saganakis) είχε ήδη (εδώ και κάποιο καιρό βασικά..) σχεδιάσει ένα τέτοιο στάδιο, με διακριτά εξαρτήματα, το οποίο ήταν ικανό να διαχειριστεί το ρεύμα που δίνουν παραλληλισμένα 4 κανάλια του ES9038Pro. Οπότε συνδέθηκε και αυτό πάνω και έπαιξε απροβλημάτιστα.
Οπότε αφού όλα πήγαν καλά, οι πλακέτες μετακόμισαν σε "αλουμινόταυλα" μαζί με τα απαραίτητα τροφοδοτικά ώστε να μπορούν να μεταφερθούν εκτός εργαστηρίου για να ακουστούν.
Κάπου στο ενδιάμεσο είχα φτιάξει και το custom firmware για το XMOS και το είχα ενσωματώσει, οπότε ήταν ώρα για ακροάσεις..
Και κάπως έτσι φτάνουμε στο σήμερα.
Οι πρώτες ακροάσεις είναι αρκετά ενθαρρυντικές. Περνάμε στο στάδιο της βελτιστοποίησης....
Ευχάριστη έκπληξη αποτέλεσε το ότι αφενός τα πουλάει πια και ο Mouser, αφετέρου αποφάσισαν επιτέλους να δώσουν ελεύθερα όλα τα datasheets τους!
Οπότε ολοκλήρωσα την σχεδίαση της κύριας πλακέτας που είχα στο μυαλό μου εδώ και 1-2 χρόνια και έβαλα παραγγελία. Μετά από λίγο καιρό παρέλαβα αυτή την ομορφιά:
Πάνω στην ίδια πλακέτα ενσωμάτωσα:
1) USB receiver με XMOS
2) Τέσσερις εισόδους s/pdif, δυο οπτικές και δυο ομοαξονικές
3) Βοηθητική είσοδο I2S (π.χ. για Raspberry Pi)
4) Το DAC με τα τροφοδοτικά του
5) Το προγραμματιζόμενο ρολόι Si544
6) Controller με STM32 για όλα τα παραπάνω
Οι πιο έμπειροι παίχτες θα έχουν προσέξει τη λέξη "Tru128FS" στον τίτλο του νήματος και το ότι επέλεξα να βάλω προγραμματιζόμενο ρολόι αντί για κάποιο από τα γνωστά κορυφαία ρολόγια που βάζει ο πιο πολύς κόσμος.
Ο στόχος μου ήταν να λειτουργώ το dac chip στο λεγόμενο "128FS mode", το οποίο προϋποθέτει την ύπαρξη MCLK το οποίο να είναι πάντα 128 x FS (sampling rate). Αυτό πρακτικά μας οδηγεί σε προγραμματιζόμενο ρολόι, γιατί αν λέγαμε ότι θα καλύπταμε τα κλασικά sampling rates (44.1, 48, 88.2, 96, 176.4, 192, 352, 384) θα έπρεπε να βάζαμε κυριολεκτικά 8 κλασικά ρολόγια. Αυτό πολύ απλά δεν είναι εφικτό, αν θέλουμε να έχουμε σωστό layout στην πλακέτα με όσο το δυνατό πιο μικρές διαδρομές για το MCLK. Οπότε το Si544 προγραμματίζεται σε συχνότητες από 5.6448 MHz (που αντιστοιχούν σε 128 x 44.1K) έως και 98.304 MHz, τα οποία αντιστοιχούν σε υποστήριξη sampling rate 768 KHz.
Αλλά έτσι έχουμε κάνει την μισή δουλειά. Πρέπει να καταφέρουμε με κάποιο τρόπο να δουλεύει σωστά και το USB receiver μας με τις συγκεκριμένες συχνότητες MCLK, ώστε να έχουμε μια 100% σύγχρονη αλυσίδα. Αλλά τα XMOS δεν δουλεύουν έτσι. Περιμένουν να τους δώσεις ένα από δυο διαφορετικά MCLK, ανάλογα την "οικογένεια" δειγματοληψίας που θέλεις να καλύψεις. Οπότε συνήθως τροφοδοτούνται από δυο ρολόγια, ένα για τα 44.1/88.2/176.4/κτλ και ένα ακόμα για τα 48/96/192/κτλ.
Θα χρειαζόταν να φτιάξω ένα ιδιαίτερα custom firmware το οποίο να δουλεύει ακριβώς όπως ήθελα. Αυτό ήταν άσκηση δεύτερου χρόνου, αφού επιβεβαίωνα για αρχή ότι το dac δούλευε κανονικά με τον πιο "συμβατικό" τρόπο (μόνο με δυο διαφορετικά MCLK).
Οπότε ξεκίνησε η κατασκευή.. Κολλήθηκαν τα περισσότερα εξαρτήματα στην πλακέτα, γράφτηκε και ένας πρόχειρος κώδικας για τον ελεγκτή και οι πρώτες δοκιμές έδειξαν ότι όλα λειτουργούν όπως πρέπει.
Στη συνέχεια έπρεπε να συνδεθεί και κάποιο συμβατό αναλογικό στάδιο. Ως γνωστό τα ESS 90x8 έχουν έξοδο ρεύματος, οπότε χρειάζεται κάποιο στάδιο τύπου I/V.
Ο φίλος Κώστας (saganakis) είχε ήδη (εδώ και κάποιο καιρό βασικά..) σχεδιάσει ένα τέτοιο στάδιο, με διακριτά εξαρτήματα, το οποίο ήταν ικανό να διαχειριστεί το ρεύμα που δίνουν παραλληλισμένα 4 κανάλια του ES9038Pro. Οπότε συνδέθηκε και αυτό πάνω και έπαιξε απροβλημάτιστα.
Οπότε αφού όλα πήγαν καλά, οι πλακέτες μετακόμισαν σε "αλουμινόταυλα" μαζί με τα απαραίτητα τροφοδοτικά ώστε να μπορούν να μεταφερθούν εκτός εργαστηρίου για να ακουστούν.
Κάπου στο ενδιάμεσο είχα φτιάξει και το custom firmware για το XMOS και το είχα ενσωματώσει, οπότε ήταν ώρα για ακροάσεις..
Και κάπως έτσι φτάνουμε στο σήμερα.
Οι πρώτες ακροάσεις είναι αρκετά ενθαρρυντικές. Περνάμε στο στάδιο της βελτιστοποίησης....