クロックが一定じゃないって事

PCIExpressを作っていて失敗したのは、クロックが一定ではないという事でした

私が作るカメラは、基板上に発振器を持っていて、それで自分のフレームレートを作り出しています

なのでフレームレートの誤差は、クロックが持っている誤差になります

それは±100ppm(1/10000)と言う値で、100秒撮影して0.01秒ずれる(可能性がある)と言うものでした

 

2台以上のカメラを同期する時は、PCI Expressボードから同期信号を作成して

それぞれのカメラは同期信号に同期してフレームを作成する様になっています

いざ使ってみると、同期信号がずれる事が分かったのです

これはとても困りました。

 

原因を探ってみると、原因はPCI Expressボードのクロックにありました

仕様上PCI Expressボードはホストから100MHzのクロックをもらえる事になっています

これは2.5Gbpsの送受信信号と同期させる為のベースクロックとして使うのですが

私はこの100MHzをそのままPCI Expressボード全体で使用するベースクロックにしていました(間抜けでした)

ですが、ここから渡される100MHzと言うのは実際には何MHzかは分からない訳です

規格では100MHz±300ppmとなっていますが、実際にはもっと誤差がありました。

なので、この基板は作り直しになりました。ちゃんと水晶を乗せて、どの基板も±100ppm以内になる様に設計し、エッジから渡される100MHzはSerDesの通信にのみ使われるようにします。

 

この時勉強になったのは、自分が書いた訳でもない回路のクロックを

信じて基準時間を作るのはトンマだということでした