OK, είμαι λίγο εκτός χρονοδιαγράμματος αλλά έτσι είναι αυτά..
https://www.youtube.com/watch?v=yhhrvi9JONY
Είμαι έτοιμος να δώσω μια πρώτη έκδοση του κώδικα, η οποία είναι συμβατή με Amanero και με ελάχιστη δουλειά θα γίνει συμβατή και με JLsounds I2SoverUSB.
Υποστηρίζει το ιδανικό σενάριο λειτουργίας του DAC, με reclocking στην πλακέτα του DAC και πηγή MCLK το επίσης on-board Si570.
Έτσι γίνεται λειτουργικό το DAC, με πηγή σήματος τη USB. Σειρά θα έχει η πλακέτα με τις εισόδους s/pdif. Σε όσους έχω ήδη δώσει πλακέτες θα δώσω την επιλογή να τους τις αλλάξω με τη νέα version που πρέπει να βγει, γιατί θα χρειαστεί να γίνουν κάποιες hardware αλλαγές για βέλτιστη λειτουργία με το συγκεκριμένο DAC.
Με την ευκαιρία θα επαναλάβω τα 3 διαφορετικά "στησίματα" που μπορούν να υλοποιηθούν:
1) Full στήσιμο. Εγκατεστημένα flip flops και προγραμματιζόμενο ρολόι Si570. Το θεωρώ το πιο πλήρες στήσιμο, με θεωρητικά τα καλύτερα (ακουστικά) αποτελέσματα. Μειονέκτημά του είναι ότι απαιτεί συνεργασία με USB to I2S module η οποία να μπορεί να δεχτεί εξωτερικό MCLK. Τέτοιες πλακέτες που μου έρχονται στο μυαλό είναι οι Amanero & JLsounds I2SoverUSB. Λογικά θα υπάρχουν κι άλλες. Αν υπάρχει η όρεξη για "μόντα", πρακτικά μπορούν να πειραχτούν κατάλληλα όλες οι πλακέτες USB to I2S, αρκεί να έχουν πάνω τους pins που να περνάνε την απαραίτητη πληροφορία sampling rate και τύπου σήματος (PCM ή DSD).
2) Στήσιμο χωρίς το Si570, αλλά με τα flip flops. Πλεονέκτημα ότι κρατάμε το τοπικό reclocking, μειονέκτημα ότι MCLK παίρνουμε από το USB to I2S module. Εάν το USB to I2S module έχει πάνω του ρολόγια στα 45 & 49MHz (στο περίπου..), υποστηρίζονται sampling rates έως 384KHz. Αν έχει ρολόγια στα 22 & 24MHz, το μέγιστο sampling rate περιορίζεται στα 192KHz. Για να υποστηριχθεί DSD πρέπει το USB to I2S module να δίνει αυτή την πληροφορία (ότι το σήμα του είναι PCM ή DSD).
3) Στήσιμο χωρίς το Si570, ούτε τα flip flops. Το Si570 απλά δεν το κολλάμε στην πλακέτα (ούτε τα σχετικά εξαρτήματα του τροφοδοτικού του), τα flip flops δεν τα κολλάμε και επιπλέον τοποθετούμε συρματάκια ώστε να γίνονται bypass (σχετικά εύκολο να γίνει). Πλεονέκτημα ότι είμαστε συμβατοί με όλα τα USB to I2S interfaces. Μειονέκτημα ότι το MCLK έρχεται από το USB to I2S module (δηλαδή σχετικά μακρυά) και δεν έχουμε τοπικό reclocking, οπότε θεωρητικά θα παίζει λιγότερο καλά σε σχέση με τα παραπάνω σενάρια. Περιορισμούς σε sampling rates δεν έχουμε. Για να υποστηριχθεί DSD πρέπει το USB to I2S module να δίνει αυτή την πληροφορία (ότι το σήμα του είναι PCM ή DSD).
Ο κώδικας αυτή τη στιγμή υποστηρίζει πλήρως το πρώτο σενάριο αλλά σύντομα θα υποστηρίξει και τα άλλα δυο.
Οπότε αποφασίζετε και ξεκινάτε..