0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OV5642のSCCBメモ

Posted at

使ったカメラ
OV5642使用500万画素カメラ M12レンズ付き B0020: カメラ 秋月電子通商-電子部品・ネット通販

使ったボード
STM32 Nucleo Board STM32F446RE: マイコン関連 秋月電子通商-電子部品・ネット通販

SCCBはI2Cに似ているが、今回はソフトで実装した。
バスは3.3kΩで吊ってる(今回使ったカメラにはプルアップは実装されていないっぽい)。

データシートとか読んでないので間違ったこと書いてる可能性大。


基本的に、ACKビットはSCKの立ち下がりエッジで開放される。

2018-11-07_11-44.png


時々ACKビットが終わってもSDAが開放されず、Lowに固定される場合がある。
その場合、もう1クロック送ってやると開放される。
ある程度の時間待っても開放されないし、追加クロックではほぼ確実に開放されるので、、OV側でACKbitのクロックのエッジを取り逃してる?

2018-11-07_11-45.png

当然、次の1バイトは破壊されるので、再送が必要(ACKクロックを取り逃してるだけなら、次のデータを送れば受け取ってくれる? 未確認)。


連続して大量のレジスタを書き換える場合は、なんとなく、1msec周期くらい開けて転送してやると成功率が高い気がする。

2018-11-07_11-46.png


スレーブアドレスやデータの途中でNACKが帰ることがある。
適当な時間(5msec以上を目安に)開けて再送してやると成功する場合が高い。

2018-11-07_11-47.png

複数回連続でNACKを返すときもある。


コンフィグでNACKやACK開放不良があったときは初期設定がうまくできない場合がある(破壊された画像が送られてくる)。
NACKの場合は比較的大丈夫な場合が多い気がする。
NACKやACK開放不良が1回もなくても(=すべてのパラメータが確実に送信できていても)破損画像が送られてくる場合がある。
パラメータ転送以外の問題?


STM32F446REは128KiBのRAMを持っている。
RTOSでDCMIで受けてPCに転送する、といった簡単な処理の場合、画像の保存に使えるのは100KiBくらい。
JPEGで転送した場合、VGAだと画像サイズは30KiB程度で、100KiBあれば余裕で入る。QVGAは100KiBだとまず足りない。
446RE単体で使う場合、VGAが限界かな? JPEGカメラっぽいモジュールを作るなら、FMCを積んだチップに外部RAMを接続する必要がある。
おとなしくフレームバッファ付きを買ったほうが楽そう。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?