2012年3月19日月曜日

OV7670・・・その5



再度基本に戻ってアレコレと操作したら・・・ ィョッシャ━( p`д´)q━!!

基本ベースは日昇で拾ってきたサンプルソース・・・
128x128 RGB565って書いてあるのが実はQVGAの設定というオチ(MD==0のトコの記述)

あとはXCLKの逓倍&分周設定をDMAが間に合うように修正して
UVUYのスワップ設定とMirror設定を弄った。


まぁ遠回りなようだが、色々弄ったおかげで勘所が判るようになった・・・
やっぱり弄った経験がない以上弄りまくるしかないですね・・・ε- (´ー`*)フッ

PCLK側を弄ったら分割表示っぽくなるのは謎です・・・

2012年3月18日日曜日

OV7670・・・その4



惜しいところまで来てるんだけどなぁ・・・ウーン(´・ω・)y-~

カメラの設定はRGB565のQVGA(320x240)を手動設定してるんだけど、
なぜか160x240の画像が横並びに・・・
見てみるとHREF内のデータは160個分・・・どうやっても320個分にはならない・・・
そしてHREFは480個あるので、つじつまはなぜかあってしまう・・・・

ロジアナのメモリが深ければもっと調べられるのにと思う今日この頃・・・OTL

思うに奇数番地160個分Readしてと偶数番地160個分Readしているのかなぁ・・・
そうなるとリングバッファ用意して並べ替えないと・・・
それだとDMAの効率が・・・(´・ω・`)ショボーン


2012年3月16日金曜日

OV7670・・・その3

DCMIのFIFOが小さいもんだからDMA転送が間に合わずに止まっていたようだ・・・

PCLKを調整したら1フレーム分しっかり転送できているようだ・・・
いろいろ弄りすぎてカラーバーはまだグチャグチャだけど・・・(;´∀`)


2012年3月15日木曜日

OV7670・・・その2

なかなか期待通りの動作をしない・・・(。-`ω´-)ンー



↓とりあえず判明していることメモ書き・・・
間違ってるかもしれないのでアテにしないでください。

Output Formatを自動設定のQVGAにすると色々停止してしまう・・・

特にRGB565モードにするとPCLKも止まってしまうようだ
→CLKRCレジスタに書き込むとPCLKは復活する。
Linuxソースにも書いてあった。

まぁ運用としてフォーマットを変えるとHREFにも影響があるわけで、
どのタイミングで切り替えるのって?のが疑問になる・・・
即時行うorリセットのタイミングの設定ビットがあるんだけど、
hard or Softリセット時にはレジスタ値を初期化するって書いてある矛盾・・・(;´∀`)

おそらHardリセットはコントロールレジスタはクリアしないと思うんだけどね・・・

レジスタの設定シーケンスも書いておいてくれと言いたい・・・(# ゚Д゚)プンスコ!!

2012年3月12日月曜日

OV7670・・・

なかなか設定項目が多くて悩む・・(´・ω・)y-~
 なんかQVGA設定もRGB設定も全然効いてないかと思えるくらいジャジャ馬・・・OTL
 参考ソースを見ていても魔法の設定が多くてなにがなんだか・・・

とりあえず2012年3月号のトラ技を見てますが誤記を・・・
P69
フレームレートの設定
DM_LNHは"0x10"ではなく"0x01"だろ・・・510(d)=0x1FEなんだから・・・

P72 ・・・0C番地
bit[6]のMSBとLSBの入れ替え・・・ByteSwapなんだから・・・
0:[15:8][7:0]の順に転送
  1: [7:0][15:8]の順に転送
だと思うんだが・・・
→合ってましたD[7:0]→D[0:7]です。(12/03/18 追記)

DCMIに順に突っ込むと考えると8bit(カメラ)→32bit(DCMI)→16bit(LCD)なので
Byteオーダー変えないとダメだよなって気づいたんだけど、
トラ技の記述だと意味が・・・(;´・ω・)どうなんだべ?
DMA使ってるから途中のByteオーダー変えられんし・・・
→バイトオーダーもそのままでOKでした。(12/03/18 追記)
 OV9650ではCOM15でRGBとBGRは変えられるみたい。

2012年3月9日金曜日

SCCB

STM32F4DiscoveryでI2Cを使ってOV7670のSCCBバスを操作すると、
なぜかハマったので備忘録・・・

STM32F4xx_DSP_StdPeriph_Lib_V1.0.0のDCMIのOV9655を流用して作ったんだが、
どうもSCCBバスのリードが全くできない・・・
厳密には1発目のリードの不具合が2発目以降のシーケンスを破壊しているようだ・・・

というわけでまずはaitendoのOV7670はハードリセットできないので外部電源ICをコントロールして
毎回電源を再投入するように改造・・・これで毎回同じ状態で起動する・・・( ´Д`)=3

で・・・ マイコン工作実験日記でも記載されている内容とソースを見比べてみると・・・
STOPビット送出が必要・・・

というわけでEV6の前のSTARTビット送出前にSTOPビットを送出する記述を追加すると・・・
読めたw ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ

今日の教訓・・・
サンプルソースは信頼しても信用してはいけない・・・( ゚∀゚)・∵. グハッ!!

同じハマリを経験された方はコメント欲しいなぁ・・・(;´∀`)

2012年3月6日火曜日

三種の神器 その2

昨日のことですが、やっと届きました・・・

なぜか箱が表裏返し・・・

分解して直してみました・・・


数字示波器・・・いわゆるオシロ。

ATTEN社のADS1102CALです
(゚∀゚)アヒャ



中身はこんな感じ・・・














デフォルトは日本語表示になってましたが、英語表示に変更。

テクトロの操作系をパクっているようで、さほどおかしくはありません。
動きは若干モッサリしていますが、テクトロの廉価機とさほど変わらないかと・・・
AUTOボタンがRUNボタンに近いのもパクらなくていいのにw

これでebayで$317-・・・送料が$35-なので計$352-・・・
購入時のpaypalレート(手数料含む)が$1->\82なので\28864-・・・

さすがに仕事でのデータ取りには使えないけど、
(仕事で使うにはちゃんと校正取れてないと意味がないからね)

ホビーユースで100MHz帯域で\26000-は安い・・・Σ(´∀`;)
自動校正モードも搭載されているのでよほど狂うことはなかろう・・・





2012年3月1日木曜日

三種の神器

昨日は雪が降った関係で宅急便が遅れました・・・

で・・・届いたのがコレ↓



ロジックアナライザLAP-C(16064)ですw アッヒャッヒャ!ヽ(゚∀゚)ノアッヒャッヒャ!

12500円と測定器としては安い部類なので投資しちゃいました・・・

で・・・回路を分析したらあっけなくバグを発見・・・修正してアクセスが正常なことを確認。

さらにデータのR/Wを確認したら・・・OK

でも・・・なぜか表示されない・・・OTL

仕方ないので別モジュールを変換してつないでみると・・・

正常に表示されるじゃないですか・・・OTL

ハズレのようだ・・・(´・ω・`)ショボーン