ES9038Pro Tru128FS

Μιας και ως γνωστό η AKM είναι εκτός μάχης λόγω της γνωστής φωτιάς στο εργοστάσιό της, είπα να ξανα-πιάσω τα παλιά-καλά τσιπάκια της ESS.

ESS_01 (Custom).jpg

Ευχάριστη έκπληξη αποτέλεσε το ότι αφενός τα πουλάει πια και ο Mouser, αφετέρου αποφάσισαν επιτέλους να δώσουν ελεύθερα όλα τα datasheets τους!

Οπότε ολοκλήρωσα την σχεδίαση της κύριας πλακέτας που είχα στο μυαλό μου εδώ και 1-2 χρόνια και έβαλα παραγγελία. Μετά από λίγο καιρό παρέλαβα αυτή την ομορφιά:

ESS_02 (Custom).jpg

Πάνω στην ίδια πλακέτα ενσωμάτωσα:

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_03 (Custom).jpg

Στη συνέχεια έπρεπε να συνδεθεί και κάποιο συμβατό αναλογικό στάδιο. Ως γνωστό τα ESS 90x8 έχουν έξοδο ρεύματος, οπότε χρειάζεται κάποιο στάδιο τύπου I/V.
Ο φίλος Κώστας (saganakis) είχε ήδη (εδώ και κάποιο καιρό βασικά..) σχεδιάσει ένα τέτοιο στάδιο, με διακριτά εξαρτήματα, το οποίο ήταν ικανό να διαχειριστεί το ρεύμα που δίνουν παραλληλισμένα 4 κανάλια του ES9038Pro. Οπότε συνδέθηκε και αυτό πάνω και έπαιξε απροβλημάτιστα.

ESS_04 (Custom).jpg

Οπότε αφού όλα πήγαν καλά, οι πλακέτες μετακόμισαν σε "αλουμινόταυλα" μαζί με τα απαραίτητα τροφοδοτικά ώστε να μπορούν να μεταφερθούν εκτός εργαστηρίου για να ακουστούν.

ESS_05 (Custom).jpg

Κάπου στο ενδιάμεσο είχα φτιάξει και το custom firmware για το XMOS και το είχα ενσωματώσει, οπότε ήταν ώρα για ακροάσεις..

Και κάπως έτσι φτάνουμε στο σήμερα.

Οι πρώτες ακροάσεις είναι αρκετά ενθαρρυντικές. Περνάμε στο στάδιο της βελτιστοποίησης....
 

takis

Supreme Member
11 August 2006
3,671
--------------------
Μιας και ως γνωστό η AKM είναι εκτός μάχης λόγω της γνωστής φωτιάς στο εργοστάσιό της, είπα να ξανα-πιάσω τα παλιά-καλά τσιπάκια της ESS.

View attachment 178113

Ευχάριστη έκπληξη αποτέλεσε το ότι αφενός τα πουλάει πια και ο Mouser, αφετέρου αποφάσισαν επιτέλους να δώσουν ελεύθερα όλα τα datasheets τους!

Οπότε ολοκλήρωσα την σχεδίαση της κύριας πλακέτας που είχα στο μυαλό μου εδώ και 1-2 χρόνια και έβαλα παραγγελία. Μετά από λίγο καιρό παρέλαβα αυτή την ομορφιά:

View attachment 178116

Πάνω στην ίδια πλακέτα ενσωμάτωσα:

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).

Οπότε ξεκίνησε η κατασκευή.. Κολλήθηκαν τα περισσότερα εξαρτήματα στην πλακέτα, γράφτηκε και ένας πρόχειρος κώδικας για τον ελεγκτή και οι πρώτες δοκιμές έδειξαν ότι όλα λειτουργούν όπως πρέπει.

View attachment 178121

Στη συνέχεια έπρεπε να συνδεθεί και κάποιο συμβατό αναλογικό στάδιο. Ως γνωστό τα ESS 90x8 έχουν έξοδο ρεύματος, οπότε χρειάζεται κάποιο στάδιο τύπου I/V.
Ο φίλος Κώστας (saganakis) είχε ήδη (εδώ και κάποιο καιρό βασικά..) σχεδιάσει ένα τέτοιο στάδιο, με διακριτά εξαρτήματα, το οποίο ήταν ικανό να διαχειριστεί το ρεύμα που δίνουν παραλληλισμένα 4 κανάλια του ES9038Pro. Οπότε συνδέθηκε και αυτό πάνω και έπαιξε απροβλημάτιστα.

View attachment 178123

Οπότε αφού όλα πήγαν καλά, οι πλακέτες μετακόμισαν σε "αλουμινόταυλα" μαζί με τα απαραίτητα τροφοδοτικά ώστε να μπορούν να μεταφερθούν εκτός εργαστηρίου για να ακουστούν.

View attachment 178125

Κάπου στο ενδιάμεσο είχα φτιάξει και το custom firmware για το XMOS και το είχα ενσωματώσει, οπότε ήταν ώρα για ακροάσεις..

Και κάπως έτσι φτάνουμε στο σήμερα.

Οι πρώτες ακροάσεις είναι αρκετά ενθαρρυντικές. Περνάμε στο στάδιο της βελτιστοποίησης....
 
Όταν όπως και εσύ αντί για δέκτη της XMOS έχουν επεξεργαστή που τρέχει custom πρόγραμμα FPGA.
Το θέμα είναι τι έχουν βάλει το FPGA να κάνει.

Συνήθως δεν το χρησιμοποιούν ως USB receiver αλλά ως FIFO και upsampler με custom ψηφιακό φίλτρο.

Στην περίπτωσή μου η όλη ιδέα με το 128FS mode είναι να βγει εντελώς εκτός το εσωτερικό ASRC του dac, καθώς και το DPLL του. Αλλά εξακολουθώ να χρησιμοποιώ τα ενσωματωμένα στο dac ψηφιακά φίλτρα (τα οποία δεν είναι καθόλου άσχημα.. 7 στον αριθμό).
 
  • Like
Reactions: Sonorus
Πολύ σωστά θυμάσαι, το έχω και το ακούω εδώ και κάποιο καιρό στο εργαστήριο. Η ιδέα είναι να γίνει σύγκριση και με αυτό.

Πάντως ένα πρώτο σετ μετρήσεων πλήρων συστημάτων (Buffalo III με 9028 και Mercury vs. νέο dac με νέο στάδιο) έδειξε ότι αν μη τι άλλο το "δικό μας" μετράει καλύτερα. Αλλά αυτές οι μετρήσεις δεν συγκρίνουν "αχλάδια με αχλάδια" (pun intended :p) καθότι τα τροφοδοτικά δεν ήταν ακριβώς ίδια και στις δυο περιπτώσεις.

Οπότε θα δείξουν οι ακροάσεις...
 
  • Like
Reactions: petronik

petronik

Μέλος Σωματείου
18 June 2006
18,512
Θεσσαλονικη
Πολύ σωστά θυμάσαι, το έχω και το ακούω εδώ και κάποιο καιρό στο εργαστήριο. Η ιδέα είναι να γίνει σύγκριση και με αυτό.

Πάντως ένα πρώτο σετ μετρήσεων πλήρων συστημάτων (Buffalo III με 9028 και Mercury vs. νέο dac με νέο στάδιο) έδειξε ότι αν μη τι άλλο το "δικό μας" μετράει καλύτερα. Αλλά αυτές οι μετρήσεις δεν συγκρίνουν "αχλάδια με αχλάδια" (pun intended :p) καθότι τα τροφοδοτικά δεν ήταν ακριβώς ίδια και στις δυο περιπτώσεις.

Οπότε θα δείξουν οι ακροάσεις...
Δημήτρη ,το δικό μου [σου] 9028 είχε εξαιρετικά χαρακτηριστικά ,αλλά και πολλές "ιδιοτροπίες" 'ως προς το υπόλοιπο σύστημα .Οπως είχα γράψει ότι με το μόνο στάδιο εξόδου που του ταίριαξε ήταν το στάδιο εξόδου του Pass ,που έχει ο Σαββας .
Περιμένουμε τις εντυπώσεις σας .
 
23 December 2007
1,681
Δημήτρη τα υλικά είναι όλα mouser ; ή θα μπλέξουμε πάλι με διάφορα από τρίτους προμηθευτές;
Επίσης πόσα mA βγάζει το κάθε τετραπλό κανάλι; θα μπορούσε να χρησιμοποιηθεί μικρή αντίσταση ώστε η τάση που θα δημιουργηθεί επάνω της ,να μπορεί να διαχειριστεί από στάδιο με λυχνίες;
 
Δημήτρη τα υλικά είναι όλα mouser ; ή θα μπλέξουμε πάλι με διάφορα από τρίτους προμηθευτές;
Επίσης πόσα mA βγάζει το κάθε τετραπλό κανάλι; θα μπορούσε να χρησιμοποιηθεί μικρή αντίσταση ώστε η τάση που θα δημιουργηθεί επάνω της ,να μπορεί να διαχειριστεί από στάδιο με λυχνίες;
Αν θυμάμαι καλά το μόνο εξάρτημα που δεν το φέρνει ο Mouser είναι το XMOS, το οποίο πρέπει να αγοραστεί από Farnell ή κάπου αλλού.

Το κάθε κανάλι του 9038Pro βγάζει περίπου 15.1mA p-p, εμείς παραλληλίζουμε 4 κανάλια, οπότε παίρνουμε περίπου 60mA p-p.

Θεωρητικά μπορείς να κάνεις passive I/V με αντίσταση (και κάποιο στάδιο μετά) αλλά με τόσο ρεύμα αρχίζει να ζεσταίνεται η αντίσταση και χαλάει η γραμμικότητα. Γιαυτό γενικά αποφεύγεται με τέτοια τσιπάκια που βγάζουν πολύ ρεύμα.
 
23 December 2007
1,681
Αν σου πω ότι τα είχα μαντέψει το 60mA και έκανα τους υπολογισμούς μου πριν λίγο, ελπίζοντας να μην είναι τόσα πολλά.
Τη λάμπα τη ξεχνάμε προς το παρόν....