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フレーム分しっかり転送できているようだ・・・
いろいろ弄りすぎてカラーバーはまだグチャグチャだけど・・・(;´∀`)
PCLKを調整したら1フレーム分しっかり転送できているようだ・・・
いろいろ弄りすぎてカラーバーはまだグチャグチャだけど・・・(;´∀`)
2012年3月15日木曜日
OV7670・・・その2
なかなか期待通りの動作をしない・・・(。-`ω´-)ンー
↓とりあえず判明していることメモ書き・・・
間違ってるかもしれないのでアテにしないでください。
Output Formatを自動設定のQVGAにすると色々停止してしまう・・・
特にRGB565モードにするとPCLKも止まってしまうようだ
→CLKRCレジスタに書き込むとPCLKは復活する。
Linuxソースにも書いてあった。
まぁ運用としてフォーマットを変えるとHREFにも影響があるわけで、
どのタイミングで切り替えるのって?のが疑問になる・・・
即時行うorリセットのタイミングの設定ビットがあるんだけど、
hard or Softリセット時にはレジスタ値を初期化するって書いてある矛盾・・・(;´∀`)
おそらHardリセットはコントロールレジスタはクリアしないと思うんだけどね・・・
レジスタの設定シーケンスも書いておいてくれと言いたい・・・(# ゚Д゚)プンスコ!!
↓とりあえず判明していることメモ書き・・・
間違ってるかもしれないのでアテにしないでください。
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は変えられるみたい。
なんかQVGA設定もRGB設定も全然効いてないかと思えるくらいジャジャ馬・・・OTL
参考ソースを見ていても魔法の設定が多くてなにがなんだか・・・
とりあえず2012年3月号のトラ技を見てますが誤記を・・・
P69
フレームレートの設定
DM_LNHは"0x10"ではなく"0x01"だろ・・・510(d)=0x1FEなんだから・・・
→合ってました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 ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ
今日の教訓・・・
サンプルソースは信頼しても信用してはいけない・・・( ゚∀゚)・∵. グハッ!!
同じハマリを経験された方はコメント欲しいなぁ・・・(;´∀`)
なぜかハマったので備忘録・・・
STM32F4xx_DSP_StdPeriph_Lib_V1.0.0のDCMIのOV9655を流用して作ったんだが、
どうもSCCBバスのリードが全くできない・・・
厳密には1発目のリードの不具合が2発目以降のシーケンスを破壊しているようだ・・・
というわけでまずはaitendoのOV7670はハードリセットできないので外部電源ICをコントロールして
毎回電源を再投入するように改造・・・これで毎回同じ状態で起動する・・・( ´Д`)=3
で・・・ マイコン工作実験日記でも記載されている内容とソースを見比べてみると・・・
STOPビット送出が必要・・・
というわけでEV6の前のSTARTビット送出前にSTOPビットを送出する記述を追加すると・・・
読めたw ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ
今日の教訓・・・
サンプルソースは信頼しても信用してはいけない・・・( ゚∀゚)・∵. グハッ!!
同じハマリを経験された方はコメント欲しいなぁ・・・(;´∀`)
2012年3月1日木曜日
三種の神器
昨日は雪が降った関係で宅急便が遅れました・・・
で・・・届いたのがコレ↓
ロジックアナライザLAP-C(16064)ですw アッヒャッヒャ!ヽ(゚∀゚)ノアッヒャッヒャ!
12500円と測定器としては安い部類なので投資しちゃいました・・・
で・・・回路を分析したらあっけなくバグを発見・・・修正してアクセスが正常なことを確認。
さらにデータのR/Wを確認したら・・・OK
でも・・・なぜか表示されない・・・OTL
仕方ないので別モジュールを変換してつないでみると・・・
正常に表示されるじゃないですか・・・OTL
ハズレのようだ・・・(´・ω・`)ショボーン
で・・・届いたのがコレ↓
ロジックアナライザLAP-C(16064)ですw アッヒャッヒャ!ヽ(゚∀゚)ノアッヒャッヒャ!
12500円と測定器としては安い部類なので投資しちゃいました・・・
で・・・回路を分析したらあっけなくバグを発見・・・修正してアクセスが正常なことを確認。
さらにデータのR/Wを確認したら・・・OK
でも・・・なぜか表示されない・・・OTL
仕方ないので別モジュールを変換してつないでみると・・・
正常に表示されるじゃないですか・・・OTL
ハズレのようだ・・・(´・ω・`)ショボーン
2012年2月25日土曜日
2012年2月21日火曜日
備忘録
FSMCでLCD
FT LCD interfacing with the highdensity STM32F10xxx FSMC'
まぁカット&ストラップすれば回避できそうだな。
FT LCD interfacing with the highdensity STM32F10xxx FSMC'
STBeeボード+2.4インチ液晶パネルYHY024006Aで動画再生60FPS超える
STM32F4DiscoveryではAudio_RSTとOTG_FS_OCにバッティングしてるのか・・・まぁカット&ストラップすれば回避できそうだな。
2012年2月19日日曜日
STM32F4Discoveryのボーレート
いくら設定しても57600bpsに設定しても出力が19200bpsになってしまっていた・・・・
色々調べてみたら外部クロックのデフォルトは25MHzらしい・・・
☆stm32f4xx.h
#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
stm32f4xx.hを書き直せば済む話だけど、基本ライブラリは書き換えないに限るので・・・
対処法1
STM32F4Discoveryは8MHzなので
#define HSE_VALUE ((uint32_t)8000000);
だめだった・・・warningで"HSE_VALUE" redefinedとか出てる
対処法2
C/C++ Build→Settings→Tool Settings→C Compiler→Miscellaneousのother optionに以下の記載をする。
-DHSE_VALUE=8000000
→ちゃんと治った。
ねむいさんトコのもmakefileに書いてあるから対処法2のほうがいいんだろうな。
色々調べてみたら外部クロックのデフォルトは25MHzらしい・・・
☆stm32f4xx.h
#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
stm32f4xx.hを書き直せば済む話だけど、基本ライブラリは書き換えないに限るので・・・
対処法1
STM32F4Discoveryは8MHzなので
#define HSE_VALUE ((uint32_t)8000000);
だめだった・・・warningで"HSE_VALUE" redefinedとか出てる
対処法2
C/C++ Build→Settings→Tool Settings→C Compiler→Miscellaneousのother optionに以下の記載をする。
-DHSE_VALUE=8000000
→ちゃんと治った。
ねむいさんトコのもmakefileに書いてあるから対処法2のほうがいいんだろうな。
2012年2月10日金曜日
基板製造見積・・・
P板ドットコムで見積もってみた・・
166x66mm
両面基板
シルク両面
その他デフォルト
で・・・
10枚で\20,790-(消費税抜)
20枚で\24,200-(消費税抜)
30枚で\27,600-(消費税抜)
ということは人件費が\17390-,一枚当たり\340-ってとこか。
レジスト色を赤に変えると・・・
10枚で\26,090-(消費税抜)
20枚で\29,500-(消費税抜)
30枚で\32,900-(消費税抜)
人件費が\5,300-増えて、一枚当たりはそのまま・・・
まぁレジスト色は液体の問題だもんだ・・・
Vカット2か所で3枚取りで考えたら・・・10枚で\35,190-
この程度の枚数ならVカットなどは入れないほうがいいようだ・・・
面取りだと台湾製になるようだ・・・
全然関係ないが、個人的には最安値が韓国生産なのがちょっと(#・∀・)ムカッ!!
166x66mm
両面基板
シルク両面
その他デフォルト
で・・・
10枚で\20,790-(消費税抜)
20枚で\24,200-(消費税抜)
30枚で\27,600-(消費税抜)
ということは人件費が\17390-,一枚当たり\340-ってとこか。
レジスト色を赤に変えると・・・
10枚で\26,090-(消費税抜)
20枚で\29,500-(消費税抜)
30枚で\32,900-(消費税抜)
人件費が\5,300-増えて、一枚当たりはそのまま・・・
まぁレジスト色は液体の問題だもんだ・・・
Vカット2か所で3枚取りで考えたら・・・10枚で\35,190-
この程度の枚数ならVカットなどは入れないほうがいいようだ・・・
面取りだと台湾製になるようだ・・・
全然関係ないが、個人的には最安値が韓国生産なのがちょっと(#・∀・)ムカッ!!
DesignSparkでガーバーデータ
結局両面基板で作成した・・・もしもの時改造できるし安いもんね(゚∀゚)アヒャ
DRCでエラーが一つ残るけど、なんとか出力できた・・・ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ
あとはGND埋めればOK♪
まぁ回路図チェックとか全然やってないんだけどねw
バラックでも製造中・・・(ΦωΦ)フフフ…
2012年2月3日金曜日
DesignSparkで回路図入力
実際に作りたいもの回路図入力を行いつつレイアウトも考えてみた・・・
いまのところこんな感じ。
現状感じている不便な点・・・知らんだけかもしれんが・・・
・パーツが探しにくい
ライブラリがメーカー分類なので電源ICを探しても見つからない・・・
Find機能も中間一致で探してくれてない・・・(→containにすればOKだった)
設計者からすれば部品種別である程度分けてもらったほうがいい。
さらにFindで見つかったとしてもシンボルが見えないのはちょっとね・・・
・パーツ形状が複数なくて不便
コネクタは片側出ししかないので両側出しもそろえてほしいですな。
・寸法の出し方が判らない
コネクタ間の寸法を見たくても見る方法がない(?)
・バカ穴開けてるんだけど、3D上では表示されない。
まだまだ勉強不足のようだ・・・(。-`ω´-)ンー
日本語の資料はココ
いまのところこんな感じ。
現状感じている不便な点・・・知らんだけかもしれんが・・・
・パーツが探しにくい
ライブラリがメーカー分類なので電源ICを探しても見つからない・・・
Find機能も中間一致で探してくれてない・・・(→containにすればOKだった)
設計者からすれば部品種別である程度分けてもらったほうがいい。
さらにFindで見つかったとしてもシンボルが見えないのはちょっとね・・・
・パーツ形状が複数なくて不便
コネクタは片側出ししかないので両側出しもそろえてほしいですな。
・寸法の出し方が判らない
コネクタ間の寸法を見たくても見る方法がない(?)
・バカ穴開けてるんだけど、3D上では表示されない。
まだまだ勉強不足のようだ・・・(。-`ω´-)ンー
日本語の資料はココ
2011年12月21日水曜日
LIS302DL(加速度センサ)検討
PA06がDCMIとバッティングするのでI2Cモードにしようかと思ったけど、
そうするとSDカードの実装が不可能になるので・・・
SPIモードにしてPA06をPB04にスワップすることにしよう・・・
改造増えるなぁ・・・(´・ω・`)
そうするとSDカードの実装が不可能になるので・・・
SPIモードにしてPA06をPB04にスワップすることにしよう・・・
改造増えるなぁ・・・(´・ω・`)
2011年12月20日火曜日
CS43L22(オーディオDAC)検討
基本的に使わないつもりですが、できれば生かしたいのが人情というもの・・・
回路図上ではコイツI2C&I2Sで制御するんですが、PB周りにアサインされていて
DCMI使うとI2C使えない・・・OTL
仕方ないのでMEMSマイクのクロックをSCKとして使うことに・・・
つまり排他的利用・・・まぁInとOutの関係だから問題なし。
ついでにカメラ用のI2Cとしても使うことにする。
回路図上ではコイツI2C&I2Sで制御するんですが、PB周りにアサインされていて
DCMI使うとI2C使えない・・・OTL
仕方ないのでMEMSマイクのクロックをSCKとして使うことに・・・
つまり排他的利用・・・まぁInとOutの関係だから問題なし。
ついでにカメラ用のI2Cとしても使うことにする。
OV9655(カメラ)検討
OV9655はRGB565で使うことにする。
その時データの出力はD[9:2]であることに注意。
3.3V-I/Oで問題なし。
VGAで使って、間引いてQVGAにダウンスケールだな。
まぁ一度設定してしまえばそうそう使わないので速度的には問題なかろう・・・
オーディオDAC(CS43L22)はI/Oをカットして対応するかな
あとはリセットしておけば大丈夫だろ・・・
その時データの出力はD[9:2]であることに注意。
3.3V-I/Oで問題なし。
VGAで使って、間引いてQVGAにダウンスケールだな。
まぁ一度設定してしまえばそうそう使わないので速度的には問題なかろう・・・
オーディオDAC(CS43L22)はI/Oをカットして対応するかな
あとはリセットしておけば大丈夫だろ・・・
2011年12月19日月曜日
STM32F4-Discoveryのピン配置・・・
なんとなくモチベーションが上がってきたので資料に目を通す・・・
一番の問題は今回一番使いたいDCMI(カメラ入力)のピンがほとんどRemapで飛ばせないこと・・・
だもんでDACは確実に使用不可・・・
PA4もPIXCLKに使いたいから、SPI1_MISOもRemapで飛んでいただくしか・・・
結構改造必要だな、こりゃ・・・ ウーン・・(´・ω・)y-~
※追記:I2Cモードで設定すれば簡単な改造でいけそう。
カメラ制御には使えないI2Cモードっぽいが・・・
とりあえずフェイズ分けをしてみる。
フェイズ0:LEDチカ
フェイズ1:UART USB-UART変換モジュールを予定。
フェイズ2:加速度センサ
フェイズ3:LCD YHY024006AかWBX280V009を予定。ILI9325は動作実績があるので。
フェイズ4:CAMERA → LCD OV9655はSTのペリフェラルライブラリのサンプルに入ってる
フェイズ5:GPS → LCD
フェイズ6:SDカード → LCD
フェイズ7:CAMERA → SDカード
先は長いな・・・ε- (´ー`*)フッ
一番の問題は今回一番使いたいDCMI(カメラ入力)のピンがほとんどRemapで飛ばせないこと・・・
だもんでDACは確実に使用不可・・・
PA4もPIXCLKに使いたいから、SPI1_MISOもRemapで飛んでいただくしか・・・
結構改造必要だな、こりゃ・・・ ウーン・・(´・ω・)y-~
※追記:I2Cモードで設定すれば簡単な改造でいけそう。
カメラ制御には使えないI2Cモードっぽいが・・・
とりあえずフェイズ分けをしてみる。
フェイズ0:LEDチカ
フェイズ1:UART USB-UART変換モジュールを予定。
フェイズ2:加速度センサ
フェイズ3:LCD YHY024006AかWBX280V009を予定。ILI9325は動作実績があるので。
フェイズ4:CAMERA → LCD OV9655はSTのペリフェラルライブラリのサンプルに入ってる
フェイズ5:GPS → LCD
フェイズ6:SDカード → LCD
フェイズ7:CAMERA → SDカード
先は長いな・・・ε- (´ー`*)フッ
登録:
投稿 (Atom)