今の所9Mspsだけど、試しに8Mspsにしたら、バーストサイクルを捕捉できなくなった。パラメータ次第かもしれないけど。
8MspsだとFFTに余裕がなくて、ナイキスト周波数キワキワなので、それが影響してそうな気がする。
***
メモリは、とりあえず100Kポイントは確保できそう。2割ちょっと増えるので、その分圧縮率に余裕が生まれる。
QFP64のSTM32でRAMが多いチップもあるけど、動作周波数が低め。そもそもADCが1本しか乗ってない。
STM32F405RGTは、QFP64のF4としてはかなり欲張った性能らしい。
***
3.3kΩと0.01uFのLPFで、水平同期は0IREを維持しつつ、垂直同期で-40IRE近くまで落とせるようなLPFが組めた。このパラメータならどちらも1608の手持ちがあるから簡単。
と思いつつ、チップパーツ2個のためにわざわざC型のユニ基板とか使うのも嫌だなぁ。昔8x8くらいの小さいやつ買った気がするんだけど、見当たらない。
***
9Mspsで使うにはADC3本を並列させる必要がある。ただし一つのピンではリソースが競合するから、各々別のピンに割り当てる必要がある。
今のところは問題ないけど、複数のカメラヘッドから時分割で読み出そうとすると、ピンの割当が問題になる。
離れた場所にジャンパ飛ばしてやるならNTSC4系統くらいは受けれそうだけど、高速なアナログを引き回すのはちょっと嫌だなぁ。カメラから配線引き回しといてのこりの10mmくらい誤差だろ、という気もするけど。
***
アナログWDは今まで使ったことないので、せっかくだから使いたいけど、外部にCR LPFが必要なのが難点。まぁ、それでも同期信号検出用のICとかつけるより遥かにシンプルなんだけど。
このLPFは、垂直同期パルスを取り出すのが目的だけど、実際は必要ないんじゃないか、とちょっと思っている。
一旦1ライン分を読み出して、そこからバーストサイクル直後のタイミングで1ラインあたり1回のサンプリングを行い、これが-40IRE付近なら垂直同期として扱う、みたいな。
ややこしいパズルみたいな組み合わせを考えなきゃいけないのを無視すれば、STM32のADCはかなりタイミング精度良く扱える。バースト直後にタイミングを合わせてサンプリングするのも、不可能ではないだろうな、という気がする。1.5マイクロ秒くらいの範囲にドンピシャで入れる必要があるけど。まぁ、バーストサイクルでトリガしたって、-20IRE程度までしか下がらないわけだし、あまり問題ない気もするけど。ただ、映像信号は-33IREくらいまで許容しているらしいので、-40IREとの分離にはつらそう。
1ライン1サンプルでも、アナログWDで処理してやれば、わざわざ15kHzで割り込みかけなくても処理できるし、リソース的に有利か。結局アナログWDは必要っぽいな。
ハフマンの実装大変そうだし、まずは垂直同期のトリガを先にやってしまうかなぁ。
0 件のコメント:
コメントを投稿