報告 Dream_Reader 前輩, 小弟去 diyAudio Forums 取經後終於了
解為何您說小弟提出的電路會 drop or insert data 的原因, 這與
CS8414 運作模式有關.
當 CS8414 處於 master mode (pin 23=low) 時, CS8414 內部的
Clock&Data Recovery 線路會根據 incoming data stream 產生對應
的 SCK, FSYNC 作為內部匯流排及 audio serial port 時脈源; 但 CS8414
改為 slave mode (pin 23=high) 時, serial port 輸出 SDATA 時所需
的基準時脈 SCK, FSYNC 改由外部時脈源提供, 然而晶片內部匯流排仍
以內部產生的 SCK, FSYNC 為基準時脈, 此時內部匯流排與 audio serial
port 的 SCK, FSYNC 不同步.
現把焦點轉到 CS8414 的 audio serial port 上, audio serial port
的資料移位時脈 (SCK) 可由內部產生 (master mode) 或外部提供
(slave mode), 當 CS8414 為 master mode 時, 內部時脈與輸出時脈
同步, 因此在 serial port 輸出 SDATA 時自然不會有問題出現; 反之當
外部 SCK 與以 incoming data stream 為準的內部匯流排時脈不
同步時若外部與內部時脈差在一定範圍內還好, 若時脈差太大問題
就來了, 當內部時脈比外部快時, 就會發生前一筆資料還在輸出暫
存器沒送出, 下一筆資料就送入暫存器把舊資料蓋掉; 相反地, 若內部
時脈較慢時, 舊資料已送出而新資料尚未到, serial port 就會把暫存器
中的舊資料再送一次, 如此就會發生 drop or insert data 的情形........
就因為 CS8414 的內部時脈由 incoming data stream 決定, 所以前
輩才會建議把 source 端的時脈換成高精度 TCXO, 如此就能改善內外
時脈不同步的情況.........
小弟報告完畢, 有錯請前輩指正.....