Μετρήσεις πάνω σε USB Receivers

lemon

Supreme Member
3 March 2009
4,041
Καλημέρες.
Το διάλειμμα επιβάλλεται, γιατί θέλει σκέψη το πως θα το προχωρήσω τώρα. Ρίξτε κάποια ιδέα σε ποια κάρτα να ρίξουμε το Ian και το Acko για να δούμε αλλαγές...

Η αλήθεια είναι ότι από την τελευταία γενιά τσιπ της XMOS, που είναι πρόσφατη με μεγάλο ντόρο - περιμέναμε άλλα πράγματα, αλλά το ψάχνουμε ακόμη μήπως και μας ξεφεύγει κάτι που δεν γνωρίζουμε, θα το ξαναδούμε...
Φαίνεται είτε ότι το Atmel κάνει εξαιρετική δουλειά ή δεν έχει καμία σχέση το υλικό και τη διαφορά την κάνει ο προγραμματιστής του λογισμικού, ερώτημα αναπάντητο προς το παρόν!

Παλιότερα, προσπάθησα ακουστικά να συγκρίνω τη CMedia6631A του diyinhk άσπρη με isolator με την αμανέρο που είχαμε...υπήρχαν κάποιες ελάχιστες διαφορές...αλλά καλύτερα να πιεις ένα καφέ με τους φίλους σου και να ακούσετε μουσική, παρά να το ψιψιρίζεις για τέτοιες αλλαγές.
Οι Quanghao-Andrea υποστήριζαν πριν από κάποια χρόνια, ότι δοκίμασαν (ακουστικά) αρκετές κάρτες και κατέληξαν σε amanero-XMOS (waveIO) ως προς τις επικρατέστερες οι οποίες ξεχώρισαν με διαφορά.

Έκτοτε δεν το ξαναπροσπάθησα μέχρι πρότινος, όπου αποφάσισα να φτιάξω μια δική μας πλακέτα πάνω στο Atmel, όπου προσπαθήσαμε να βάλουμε τα δυνατά μας ώστε να καλύψουμε τις όποιες "αδυναμίες" της amanero και κυρίως να έχουμε επιλογή ρολογιών.
Τη μία μέρα της έβαλα τα NDK και την άλλη μέρα της έβαλα τα Crystek 957, αν και η μία μέρα είναι απόσταση που ακουστικά κινδυνεύεις να πέσεις σε σφάλματα, εντούτοις αμέσως μου έδωσαν (ta Crystek) διαφορετικό βάθος στον τρόπο που πέρναγε η μουσική πληροφορία και έφθανε στα αυτιά σου.
Ως συμπέρασμα, θαρρώ ότι η ακουστική εκτίμηση είναι πολύ δύσκολη για να γίνει σωστά, γιατί εκτός του Α/Β που σημαίνει δύο πανομοιότυπα dac, θέλεις και παραλλαγές της κάρτας ακόμη και στα ρολόγια...πρακτικά για εμάς που είμαστε χομπίστες "πιάστο το αυγό και κούρευτο", γιατί εάν είναι να ξοδεύουμε ότι με δυσκολία βγάζουμε σε παραλλαγές της ίδιας κάρτας...θα φάμε ξύλο από την οικογένειά μας!
 

dinos

Moderator
Staff member
17 June 2006
811
Πάτρα
Επιβεβαιώνω και εγώ τα ευρήματα του Μανόλη, πάνω στη κάρτα του DIYINHK Μέτρησα με παθητικό probe σε αναλογικό μηχάνημα με μεγάλο BW και επιβεβαίωσα τη διαφορά των 2 nsec στο BCL. Το μόνο που μένει είναι η περίπτωση να φορτίζουμε το ρολόι του XMOS και να προκαλούμε εμείς την αστάθεια, όταν μπορέσω θα δοκιμάσω και με ενεργό probe.

Υ.Γ Μανόλη ποιος είναι ο παλμογράφος σου και τι BW έχει.
 

lemon

Supreme Member
3 March 2009
4,041
Ντίνο, όχι κάτι ιδιαίτερο ένας DSO στα 100MHz Owon είναι (SDS7102V) με 1 GSa/s sample rate όταν είναι ενεργοποιημένο το ένα κανάλι.
Το ίδιο φαινόμενο το παρατήρησε στο XMOS (8core) που δοκιμάζει ο Δημήτρης στο Rigol του.

Ότι είναι για δοκιμές ή για διαφορετική μεθοδολογία, είμαστε ανοικτοί γιατί το θέμα μας ενδιαφέρει.
Αυτό που σκέφτομαι Ντίνο, είναι γιατί να επιφορτίζεται το XMOS με ένα probe επάνω του, να είναι τόσο ευαίσθητο σε χωρητικότητα;
Μπορώ, στη WaveIO που βγάζει και u.fl, να συνδέσω κατευθείαν u.fl το bnc καλώδιο 50ωμ απευθείας πάνω στον παλμογράφο και να το τερματίσω με μια αντίσταση 50ωμ - δηλ. να βγάλω από τη μέση το Probe και τη χωρητικότητά του.
 

lemon

Supreme Member
3 March 2009
4,041
Δεν άντεξα και δοκίμασα τα παρακάτω.

Πήρα δύο κάρτες που έχουν έξοδο u.fl, τη waveIO που δίνει τέτοια έξοδο και μία δικιά μας πάνω στο γνωστό Atmel.
Ήθελα να βγάλω από τη μέση το probe, μήπως και σχετίζεται η χωρητικότητά του και επηρεάζει το XMOS.
To u.fl έφευγε από το usb receiver και πήγαινε κατευθείαν στον παλμογράφο με αντάπτορα sma->bnc, δεν τερμάτισα με 50ωμ το 50ωμο καλώδιο u.fl to sma

Καμία διαφορoποίηση, η σύλληψη ήταν πάνω κάτω στα ίδια δεδομένα που είδαμε και με το probe του παλμογράφου.

Εδώ το πως εμφανίζεται το Data Eye Pattern στη WaveIO, με persist 5sec



Εδώ το πως εμφανίζεται το BCLK στη WaveIO δίχως κανένα persist, είναι εμφανέστατοι οι δύο παλμοί αλλά και το τρεμόπαιγμα (jitter) σε κάθε παλμό.



Εδώ το πως εμφανίζoνται τα Data Eye Pattern & bclk σε Atmel, πρώτα δείχνω την κυματομορφή δίχως κανένα persist και έπειτα εφαρμόζω persist 5sec.

 

lemon

Supreme Member
3 March 2009
4,041
Και κλείνοντας την παρουσίαση, πριν περάσουμε σε άλλη στιγμή σε δοκιμές με προσθήκες πάνω στις υπάρχουσες κάρτες, θα παρουσιάσω κάποιες συλλήψεις με την νέα μας κάρτα σε Atmel.

Η κάρτα είναι η παρακάτω:

new_usb.jpg

Εδώ μία σύλληψη του Data Eye Pattern σε DSD64 (τερματισμός με 50ωμ), χρήση u.fl->sma->bnc, με persist 5sec
H επιζητούμενη συμμετρικότητα είναι άριστη.

data_pers5sec_dsd64.png

Και εδώ το BCLK σε DSD64 & DSD128 (τερματισμός με 50ωμ), χρήση u.fl->sma->bnc, με persist 5sec
Εμφάνιση jitter στα όρια του παλμογράφου.

bclk_pers5sec_DSD64.png
bclk_pers5sec_DSD128.png
 

lemon

Supreme Member
3 March 2009
4,041
Τελικά διαλέξαμε τη WaveIO ως εκπρόσωπο των XMOS, γιατί μας βοηθά αρκετά με την έξοδο u.fl που έχει (πριν τον απομονωτή).

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

Πρώτα θα ξεκινήσουμε με την top of the art λύση του Ian FIFO+Dual XO και κατόπιν με τη λύση του Acko S03 Reclocker.

....συνεχίζεται
 

lemon

Supreme Member
3 March 2009
4,041
WaveIO + Ian FIFO_Reclocking

Ian_smaller.jpg

Η συγκεκριμένη υλοποίηση του Ian είναι η τελευταία έκδοσή του, αφορά πολυκάναλο i2s_dsd και είναι εργοστάσιο πραγματικό.

Δεν θα της κάνω ανάλυση, παρά μόνο θα αναφέρω ότι είναι χωρισμένη σε δύο πλακέτες, η πρώτη FIFO τη δουλειά την κάνει ένα FPGA κυρίως και συνεπικουρείται από isolators, η δεύτερη ονομάζεται DUAL XO και στην ουσία φορά επάνω τα ρολόγια επαναχρονισμού του σήματος, στην περίπτωσή μας Crystek-957.
Το master clock ταξιδεύει από την 2η κάρτα προς τη 1η (slave λειτουργία).

Για το λόγο αυτό οδηγήσαμε μόνο τα σήματα bclk, lrclk & data από τη waveIO, ενώ το master clock της wave δεν συνδέθηκε.

Μετρήσεις πήραμε σε δύο σημεία στις πλακέτες του Ian.
  • Στην έξοδο του FPGA και πιο συγκεκριμένα μετά τα isolators
  • Στην έξοδο της πλακέτας επαναχρονισμού.
Οι συνδέσεις μεταξύ waveIO και FIFO έγιναν με u.fl καλώδια και η μέτρηση της εξόδου του DUAL XO με u.fl to sma->bnc καλώδιο ατερμάτιστο. Να θυμήσουμε ότι η έξοδος u.fl της waveIO είναι πριν τον απομονωτή της.

Η WaveIO λειτούργησε με οδηγό 2.23.0 ο οποίος ήταν συμβατός με τα Win 'XP που έχει ο υπολογιστής στο εργαστήριο.


Σήματα έξοδου FPGA, μετά τα isolators


Εάν δούμε τη σύλληψη του data eye pattern, παρατηρούμε όπως αναμενόταν ότι σταθεροποίησε τη μετατόπιση στο χρόνο του παλμού και εξαφάνισε τις διπλο-τριπλο εμφανίσεις του.
Όπως ήταν αναμενόμενο δεν εξαφάνισε και το Jitter, το οποίο λόγω ανώμαλης απόδοσης του XMOS, του ίδιου του FPGA, αλλά και των isolators είναι αρκετό.

data persist5sec 44K FIFO output.png

Το ίδιο φαινόμενο παρατηρείται και στο σήμα bclk, όπου το σήμα εμφανίζει άνω των 1200ps jitter.

bclk persist5sec 192K FIFO output.png


Σήματα μετά την πλακέτα επαναχρονισμού Dual XO

Στη μέτρηση του data eye pattern, βλέπουμε ότι ελαχιστοποιήθηκε το jitter. Δημιουργήθηκε ένας κωδωνισμός στην είσοδο του σήματος στο eye pattern, δείγμα ότι μάλλον θέλει διόρθωση ή η τερματική αντίσταση ή το slew rate του παλμού.

data persist5sec 44K output.png

Στη μέτρηση του bclk, τα πάντα ήρθαν υποδειγματικά, πολύ χαμηλό jitter, της τάξης των 160ps για αρχεία 44-192Κ (σύμφωνα με τη μεθοδολογία που ακολουθήσαμε).
Άριστα θα λέγαμε.

bclk persist5sec 44K output.png
bclk persist5sec 192K output.png


Εν κατακλείδι,
Το XMOS θέλει ένα πολύ καλό στάδιο επαναχρονισμού, για να ισιώσει και να γίνει πλήρως αποδεκτό.
Με μέτριους απομονωτές και τυπικά τσιπάκια επαναχρονισμού, τέλεια δουλειά δεν θα γίνει και αυτό το είδαμε στην κάρτα JLSound όπου το σήμα βελτιώθηκε αισθητά μόνο σε 44Κ αρχεία.

Δίχως σοβαρή λύση, καλύτερα είναι να μη χρησιμοποιηθεί στα διάφορα πρότζεκτ μας και εάν δεν σκοπεύουμε να επαναχρονίσουμε το σήμα, καλύτερα και φθηνότερα είναι να στραφούμε σε άλλες λύσεις usb->i2s.
 
Last edited:

lemon

Supreme Member
3 March 2009
4,041
WaveIO + Acko S03 Reclocker

acko_small.jpg

Η συγκεκριμένη υλοποίηση του Acko περιλαμβάνει στάδιο επαναχρονισμού-buffer του i2s σήματος.
Δεν περιλαμβάνει και στάδιο FIFO μέσω FPGA όπως του Ian.
Στην περίπτωσή μας φορούσε ρολόγια Crystek-957. Tα chip επαναχρονισμού είτε τα πολύ καλά της Potato.

Στην ουσία το σήμα i2s περνάει μέσα από απομονωτή, έπειτα επαναχρονίζεται και μπαφεριάζεται για να καταλήξει στις εξόδους u.fl

Για το λόγο αυτό οδηγήσαμε μόνο τα σήματα bclk, lrclk & data από τη waveIO, ενώ το master clock της wave δεν συνδέθηκε.

Σημείωση = αυτό από μόνο του και καθώς το S03 δεν έχει κάποιο FPGA που να μπορεί να καταλάβει τη συχνότητα του σήματος, έχει φυσικά ένα csel δηλ. απαιτεί από την κάρτα να του στείλει παλμό εναλλαγής των ρολογιών, κάτι που δεν έχει η WaveIO (μόνο με μόντα), ισοδυναμεί ότι η παραπάνω σύνδεση είναι ένας τύπος ασύγχρονης μετάδοσης των δεδομένων και το ακόλουθο dac θα πρέπει να υποστηρίζει αυτή τη λειτουργία.

Λογικό επακόλουθο της παραπάνω σύνδεσης, εφόσον το master clock δεν έρχεται στην κάρτα waveIO μέσω του Acko, να μην αναμένουμε να διορθωθεί το διπλο-τριπλό αποτύπωμα του παλμού.

Οι συνδέσεις μεταξύ waveIO και Acko έγιναν με u.fl καλώδια και η μέτρηση της εξόδου του Acko με u.fl to sma->bnc καλώδιο ατερμάτιστο.
Να θυμήσουμε ότι η έξοδος u.fl της waveIO είναι πριν τον απομονωτή της.

Η WaveIO λειτούργησε με οδηγό 2.23.0 ο οποίος ήταν συμβατός με τα Win 'XP που έχει ο υπολογιστής στο εργαστήριο.


Μετρήσεις εξόδου

Εάν δούμε τη σύλληψη του data eye pattern, παρατηρούμε ότι εκτός της μείωσης του jitter κατά περίεργο λόγο εξαφανίζεται και το πολλαπλό αποτύπωμα του.
Το pattern, θυμίζει πολύ αυτό του Ian, όπου παρουσιάζει έναν αρχικό κωδωνισμό στην είσοδο του eye pattern.
Προφανώς τα Potato chips που φοράει για τον επαναχρονισμό, κάνουν καλή δουλειά, που στην περίπτωση του data eye pattern έχουν αποτέλεσμα δίχως υλοποίηση FIFO μέσω FPGA.

data persist5sec.png

Εάν όμως μετρήσουμε την έξοδο στο σήμα bclk θα παρατηρήσουμε ότι η διπλο-τριπλό εμφάνιση του παλμού είναι εμφανής και δεν ήταν δυνατόν το σύστημα του Acko να την εξαλείψει. Εδώ ο εσωτερικός μηχανισμός των Potato δεν επαρκεί για εξάλειψη.
Αυτό για να διορθωθεί, στην πλακέτα του Acko, χρειάζεται η waveIO να φλασαριστεί slave και να δέχεται το παλμό master από την πλακέτα του Acko.

bclk persist5sec 44K_2.png

Το jitter είναι πολύ καλό της τάξης 160-200ps για αρχεία 44-192Κ, σύμφωνα με τη μέθοδο που ακολουθήσαμε.

bclk persist5sec 44K.png
bclk persist5sec 192K.png


Εν κατακλείδι,
Το XMOS θέλει ένα πολύ καλό στάδιο επαναχρονισμού, για να ισιώσει και να γίνει πλήρως αποδεκτό.
Σε κανονικό φλασάρισμα της WaveIO, μόνο του Ian είναι πλήρης λύση, ενώ του Acko μπορεί να λειτουργήσει μόνο ασύγχρονα.

Διαφορετικά, η χρήση άλλων λύσεων εκτός XMOS είναι προτιμότερες.
 
Last edited:
Είσαι σίγουρος ότι υποστηρίζει η WaveIO επίσημα κάποιο slave mode? Γιατί δεν θυμάμαι να έχω διαβάσει κάτι τέτοιο.

Απ' ότι θυμάμαι, επίσημα τουλάχιστον το υποστηρίζουν οι Amanero & JLsounds.

Επίσης, μιας και το συζητάμε, ο reclocker του Acko πως αποφασίζει ποιο ρολόι να "χρησιμοποιήσει"; Καταλαβαίνει από μόνος του τι είναι το εισερχόμενο σήμα ή πρέπει να του περαστεί η πληροφορία με κάποιο τρόπο;
 

saganakis

Moderator
Staff member
15 March 2010
448
Απάντηση: Re: Μετρήσεις πάνω σε USB Receivers

Μανόλη στη WaveIO πριν το pin X0D36 υπάρχει μία αντίστασα 33Ω, βγάλτην και δώσε εξωτερικο MCLK.
Μιας και έχεις κάνει τόση δουλειά, δεν μετράς και μετά το δικό μας Reclocking τι βγάζει?
 

lemon

Supreme Member
3 March 2009
4,041
Μάλλον έχω μπερδευτεί με τη συζήτηση του JLSound που αναφέρεις, οπότε είναι λάθος η προτροπή μου για slave κατάσταση στην περίπτωση της WaveIO.

Η S03 μπορεί να επιστρέψει το master clock της, μέσω των isolators προς την κάρτα που μπορεί να δεχθεί αυτή τη λειτουργία, (amanero, JLSound, BeagleBone Black) και έχει csel για τη σωστή επιλογή του ρολογιού, αλλά φυσικά απαιτεί και το ανάλογο σήμα από την κάρτα για να το υλοποιήσει (όπως έχει η Amanero ή η ΒΒΒ).
Οπότε στην περίπτωση της WaveIO, διπλό το πρόβλημα καθότι δεν στέλνει και το ανάλογο σήμα ή πρέπει να τραβηχθεί εξωτερικό καλώδιο από το path που κάνει enable τα ρολόγια της για να λειτουργήσει.

Θα προχωρήσω σε επικαιροποίηση του κειμένου που έχω γράψει για το συνδυασμό waveIO+AckoS03
 
Last edited:

lemon

Supreme Member
3 March 2009
4,041
Απάντηση: Re: Μετρήσεις πάνω σε USB Receivers

Μανόλη στη WaveIO πριν το pin X0D36 υπάρχει μία αντίστασα 33Ω, βγάλτην και δώσε εξωτερικο MCLK.
Μιας και έχεις κάνει τόση δουλειά, δεν μετράς και μετά το δικό μας Reclocking τι βγάζει?

Κάτσε γιατί σκέπτομαι, εάν το τεστ που έκανα με το S03 πάνω στη waveIO έγινε με σωστό ρολόι ή με λάθος...μπορώ να δώσω και το mclk από την έξοδο u.fl προς τη S03, δεν είναι το θέμα εκεί, έτσι και αλλιώς θα το πάρει και θα το επεξεργαστεί...

Στην περίπτωση του ΑΚ dac, ως προς τι να κάνω τη μέτρηση...αφού η waveIO δεν μπαίνει σε slave mode.
H πλακέτα JLSound, με ποια διαδικασία μπαίνει σε slave mode, μήπως κάνω δοκιμή με αυτή.
 

petronik

Μέλος Σωματείου
18 June 2006
18,504
Θεσσαλονικη
Το εξωτερικό ρολόι του βούλγαρου το έχει ο Σάββας ,μάλιστα για ένα διάστημα το είχε βάλει και σε μένα .
Μήπως να σας το στείλει να μετρήσετε ;
 

lemon

Supreme Member
3 March 2009
4,041
Πέτρο, δεν ανεβάζετε μια φώτο στο εξωτερικό ρολό του JLSound μήπως είναι κάτι απλό που μπορεί να υλοποιηθεί, για να μη μπαίνει ο Σάββας στην αποστολή;

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

Τη WaveIO στην ουσία τη μέτρησα ασύγχρονα, δηλ. αφορά εκείνες τις περιπτώσεις όπου το i2s σήμα ταξιδεύει δίχως τη συνιστώσα mclk, περνάει για επαναχρονισμό μέσα από το Acko S03 και ακολουθεί dac που μπορεί να λειτουργήσει και ασύγχρονα, όπως της Sabre τα 9018/9023, όπου το master clock θα το πάρουν από την ίδια την πλακέτα S03.
Ένα παράδειγμα αυτής της σύνδεσης είναι το παρακάτω.

setup.jpg
 
Σε αυτή την περίπτωση, του asynchronous reclocking, απλά "κάνεις ότι μπορείς" με τα δεδομένα που έχεις. Δηλαδή τα I2S που θα φεύγουν από τον reclocker δεν θα είναι τέλεια, γιατί έχεις 2 διαφορετικά clock domains: ένα στο Rpi και ένα στον reclocker & dac. Απλά, λόγω γρήγορου ρολογιού (100MHz) περιορίζεις κάπως τη "ζημιά".
 

lemon

Supreme Member
3 March 2009
4,041
WaveIO πάνω στο ΑΚ dac του AVClub

Κλείνοντας αυτόν τον κύκλο των μετρήσεων, δοκιμάσαμε τη WaveIO πάνω στο AK dac (project που το δουλεύουμε το τελευταίο χρόνο) και αυτό κυρίως γιατί στην είσοδο του ΑΚ dac εφαρμόζεται επαναχρονισμός του σήματος με flip-flop της ΤΙ.

Να θυμήσουμε ότι αυτό το dac έχει προγραμματιζόμενο ρολόι, το οποίο για να λειτουργήσει πρέπει να διαβάσει τη συχνότητα δειγματοληψίας (τέτοια δυνατότητα δίνουν τα amanero & waveIO) και βάση αυτής να στείλει το σωστό παλμό ρολογιού πίσω προς την κάρτα usb (slave λειτουργία).

Η WaveIO δεν υποστηρίζει αμιγώς τη slave λειτουργία - όπως κάνει η amanero - επομένως βρήκαμε τη διαδρομή των ρολογιών προς το XMOS, σηκώσαμε την τερματική αντίσταση που υπήρχε και στο σημείο προς το XMOS κολλήσαμε ένα u.fl καλώδιο που ερχόταν από το Si προγραμματιζόμενο ρολόι του AK dac.

Από τα pin (Lx) εξόδου της δειγματοληψίας της waveIO έφυγε καλώδιο που μετέφερε το σήμα 44Κ προς τον ελεγκτή του dac (για χάρη ευκολίας δοκιμάσαμε μόνο τα 44Κ).

Συνοπτικά, μετατρέψαμε τη waveIO σε slave λειτουργία, ακυρώνοντας στην πράξη τα δύο ρολόγια της.


Μετρήσεις

Θα περιμέναμε λογικά σημαντική μείωση στο jitter, λόγω επαναχρονισμού του σήματος αλλά παραμονή του θέματος της χρονικής μετατόπισης που έχουμε δει ότι έχουν όλα τα XMOS. Κάτι αντίστοιχο με αυτό που μετρήσαμε στην πλακέτα Acko S03.

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

bclk persist5sec 44K.png

Το data eye pattern, καθαρό δίχως περίεργες χρονικές μετατοπίσεις των 2nsec με κάποιο κύρτωμα προς τα κάτω, κάτι που παρουσιάζεται στα περισσότερα eye pattern που μετρήσαμε πάνω στα δεδομένα. Πιο συμμετρικό Χ (eye) παρουσιάζεται μεν στου Ian αλλά και στου Acko αλλά έχουν περίεργους κωδωνισμούς στο άνω και κάτω του παλμού.

data persist5sec 44K.png

Η έκπληξη συνάντησε την περιέργεια μας, "πως έγινε αυτό;" Ποιος ο μηχανισμός που επέδρασε έτσι ώστε να εξαφανιστεί η χρονική μετατόπιση, από τη στιγμή που δεν υπάρχει κάποιο fpga (όπως στην περίπτωση του Ian) που θα αναλάβει αυτό το ρόλο;
Ακριβής απάντηση δεν υπάρχει προς το παρόν.
Προσωπικά, εικάζω ότι πέσαμε στη διαβολική περίπτωση που το propagation delay των TI flip-flop που είναι της τάξης 1,6-5nsec να ισωπέδωσε το πρόβλημα, γιατί απλά δεν προλαβαίνει το τσιπ να πιάσει και τους παράπλευρους παλμούς που απέχουν χρονικά περίπου 2nsec.
Παρόλο που ο όρος propagation delay σχετίζεται με τη χρονική μετατόπιση μεταξύ εισερχόμενου και εξερχόμενου σήματος στα flip-flop.

wp1e3e33b1_06.png


Και εάν κάποιος διερωτηθεί, το γιατί το ίδιο δεν έγινε και στην περίπτωση του AckoS03, ίσως η απάντηση είναι ότι εκεί το αντίστοιχο της Potato είναι πολύ πιο γρήγορο με 0,5-2nsec propagation delay και μπορεί να πιάσει και να εισαγάγει τους παράπλευρους παλμούς αν και όπως θα δείτε και εκεί έχουν χαθεί οι παράλευροι των 2nsec και έχουν εμφανσιστεί κάποιοι στα 25nsec.

Επίσης εάν κάποιος διερωτηθεί, μήπως η βελτιώση οφείλεται σε καλύτερη "οδήγηση" του ίδιου του XMOS, από το εξωτερικό ρολόι - θα διαβεβαιώσουμε ότι τίποτα δεν έχει αλλάξει στο XMOS. Εάν μετρηθεί η έξοδος των data που πηγαίνει προς τα flip-flop, παρουσιάζει το γνωστό πρόβλημα που είχαμε δει. Με λίγα λόγια όλη η διόρθωση γίνεται κατά κάποιον τρόπο μέσα στα TI flip-flop !

Δεν ξέρω εάν η εικασία μου είναι σωστή ή λανθασμένη, αλλά εάν είναι σωστή έχουμε την ιδανική περίπτωση για τη WaveIO, η οποία "σώζεται" μόνο εάν της εφαρμοστεί επαναχρονισμός με τα αντίστοιχα flip-flop της ΤΙ.
Θα πρέπει όμως να δοθεί και λύση με κατάλληλο σήμα για τη σωστή επιλογή των ρολογιών ή να μπει ελεγκτής με προγραμματιζόμενο ρολόι, όπως της περίπτωσης του AK dac.
 
Last edited:
Όπως το βλέπω, αν συνδέσεις τη WaveIO με τον reclocker του Acko και δώσεις MCLK στην WaveIO από το reclocker λογικά θα πάρεις το ίδιο αποτέλεσμα με παραπάνω. Το βασικό είναι να είναι όλες οι πλακέτες στο ίδιο clock domain.

Btw, είναι αρκετά εύκολο να υποστηριχτεί η WaveIO από τον κώδικα του AK dac (σε "slave mode").. Θα φτάσουμε και εκεί..
 

lemon

Supreme Member
3 March 2009
4,041
Αυτό το ενιαίο clock domain είναι τελικά σωτήριο και ίσως η art of the art λύση που πρέπει να εφαρμόζεται στο σχεδιασμό αρκετών ψηφιακών που μεταφέρουν και επεξεργάζονται το σήμα.

Αυτό το έχει ως λειτουργία ο Acko στην S03, αλλά το είχε στήσει κυρίως πάνω στην αμανέρο που ήταν και η πρώτη κάρτα με τέτοιες δυνατότητες.

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