RX62NのEXDMAで画像キャプチャは難しいかもしれない
RX62NのEXDMAを使って、CMOSイメージセンサの絵を取り込もうと思ったのですが、意外と難しいかもしれないということで躓きました。
CMOSイメージセンサOV7670の画像を、RX62NのEXDMAでSDRAM上に取り込み、それをMARYのOLED基板に表示しようと思っていました。
SDRAMの内容をMARYのOLED基板に表示させるのは難しくありませんでした。大抵のSDRAMの初期値は画像にすると縞模様です。

で、EXDMAを使ってカメラの画像を取り込もうとしたのですが、どの信号をトリガにするかという問題があります。OV7670では、
HREFは _|~~~~~~|_|~~~~~~|_|~~~~~~|_|~~~~~~|_
VSYNCは ________________________________________|~~~~~~~~~~~~~~~~~~|__________
こんな感じなので、両方とも反転していてくれたほうが都合がよさそうです。
そこで、まずはOV7670の内部のレジスタを叩くため、I2Cの送信プログラムを作ります。
RX62NのI2Cペリフェラルは難解なので、簡単なソフトウェアでやったほうがいいでしょう。
で、OV7670のレジスタ0x15に0x0aを書き込むことでHREFとVSYNCの極性は反転できます。
さて、HREFをトリガとしてEXDMAを起動したときに困ったことに気が付きました。
EXDMAはデータバスから何かデータを取り込んでどこかへ転送しますが、SDRAMのデータバスとOV7670のデータバスが共通なのです。そしてOV7670はバスをインアクティブにできない。
だから、OV7670を直にRX62Nに接続することはできないのです。すくなくともOE付のCMOSイメージセンサでないといけません。
欲を言うと、FIFOがあったほうがいいでしょう。
今回、EDACKの周期をみていたら48MHzで測って5クロックだったのです。つまり、RX62Nは5クロックかけて1個のデータを取り込んでSDRAMに転送します。このタイミングはどうやらRX62Nの都合で決まるようで、カメラがどんなタイミングで出してきているかというのはお構いなしのようです。
もしかするとEXDMACのクラスタモードとかを使ったり、内蔵RAMを一時的なバッファにすればうまいことできるのかもしれません。まだよくわかりませんが。
今日はじめてEXDMACに触ってみた感触は、EXDMACはデータをキャプチャするよりも出すほうが強いんだろうなということでした。
| 固定リンク



コメント
このカメラの画像取得をmbedで行おうとして躓いたものですw
30fpsの取得が必要で,マイコンでは無理だと気付きFPGAを始めることを決意し,御社のJ-Writerを購入しました.
こんなのところで質問するのは変だとは承知していますが,問い合わせをどこから行ってよいか分からなかったのでコメントから失礼します.
J-Writreの対応デバイスでAlteraのFPGAが使えるかよく分からないというものがありましたが,今現在状況は変わっておりますでしょうか?
これによってxillinxで開発を始めるかAlteraで始めるかを決めたいと思っていますので・・・
(初心者視点からみてどう考えてもAlteraの方がサポートがあつそうなので出来ればAlteraで始めたいのですが・・・)
投稿: | 2011.08.03 21:15
>mbedで行おうとして躓いたものですw
>30fpsの取得が必要で,マイコンでは無理だと気付き
なるほど。私はSpartan-6を使ってOV7670からの取り込みとUSB転送は成功したのですが、マイコンではやはり厳しいかもしれませんね。
RXでは、EXDMACがちゃんと使えれば取り込みは可能なのかもしれませんが、カメラとの接続にFIFOが欲しいという感じでした。
>J-Writreの対応デバイスでAlteraのFPGAが使えるかよく分からないというものがありましたが,今現在状況は変わっておりますでしょうか?
申し訳ございませんが、J-WriterのALTERA対応にはあまり変化がありません。どのデバイスをご希望されるかをご要望いただければ、優先的に対応させていただくことはできます。
どちらかというと、XILINXのほうがオススメです。
投稿: なひたふ | 2011.08.04 17:03