キャプチャの方法
JDVBT-90502のTS出力は4MHz*8bitのパラレル出力だ。
TSCLK: ____/~~~~\____/~~~~\____/~~~~\____ TSVAL: _____/~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TSDAT: =====X===47H===X===01H===X==02H===
パラレルTSをFX2でキャプチャするにはSlaveFIFOを使うのが第一候補で
TU | → | FX2 |
TSCLK | → | IFCLK |
TSVAL | → | SLWR |
TSDAT | → | FD |
と接続して同期モードでFIFOに書き込む方法が最初に思いつく。
しかし、FX2のマニュアルによると外部クロックは5MHz以上にいないといけないという制限があるので、
これは使えない。
次に思いつくのが非同期モードでSlaveFIFOを使う方法である。
TU | → | FX2 |
TSCLK | → | SLWR |
TSVAL | → | SLCS or FIFOADDR |
TSDAT | → | FD |
と接続すれば一応動作はする。ただし、SLWRの立ち上がりでのFDのホールド時間10nsを守るのが大変になる。
確実に読もうと思うとGPIFを使うのが最良だと思う。
TU | → | FX2 |
TSCLK | → | RDY1 |
TSVAL | → | RDY0 |
TSDAT | → | FD |
と接続する。そして48MHzのクロックで信号をサンプリングして、TSCLK & TSVALを3クロック連続で達成すれば1バイト読む。
その後TSCLKが下がるのを待つ。
// GPIF Waveform 0: TSRd // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data NO Data NO Data Activate NO Data NO Data NO Data // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait IF IF IF Wait 1 IF Wait 1 Wait 1 // Term A TSVAL TSVAL TSVAL TSCLK // LFunc AND AND AND AND // Term B TSCLK TSCLK TSCLK TSCLK // Branch1 Then 1 Then 2 Then 3 Then 4 // Branch0 Else 0 Else 0 Else 0 ElseIdle // Re-Exec Yes Yes Yes Yes // Sngl/CRC Default Default Default Default Default Default Default // TP0 0 0 0 0 0 0 0 0 // TP1 0 0 0 1 0 0 0 0 // TP2 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0
信号が安定しているところで読み出すので、リンギングやクロストークには強いはず。たぶん