goo blog サービス終了のお知らせ 

寝ても覚めてもPSoC

電子工作とマイコンをやりはじめました。
ど素人ですので配信する情報の取り扱いには十分注意してください。

PSoCでBad Apple その2

2011年05月03日 | PSoC
前回の再生は画像の乱れと音楽との同期が取れていませんでしたので、それを修正したものができました
しかし動画撮影は難しいなぁ




ついでに15FPSでもやってみましたが、処理が追いつきませんでした...残念。

回路図です。


プロジェクトファイルです。
デザイナ: 5.0 SP6
デバイス: PSoC CY8C29466 5V
コンパイラ:ImageCraft
PSoC_MoviePlay20110503.zip

最新の画像もっと見る

4 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
Unknown (Akira)
2011-06-27 21:57:26
す、スゴイ。
ぬるぬる動いてる・・・

自分などはNokiaの5110液晶を「どうやってイニシャライズするんだコレ?」と考えてる段階です。aitendoで購入した物ですが、sparkfunのものを苺Linuxが扱いだしましたね。
返信する
Unknown (mimipsoc)
2011-06-28 22:16:15
ストロベリーリナックスにリンクされているArduinoのサンプルをみると、なんとかなりそうな気がしますが、どうでしょうか?
僕はSGD-Aという同じノキアのLCDを使っています。こちらはシリアルで制御なので簡単です

ここに初期化シーケンスが載っていますね。
http://iizukakuromaguro.sakura.ne.jp/213_nokia5110LCD/213_nokia5110LCD.html
上記とPCD8544のデータシートも参考にすると初期化は、
1. RES信号でリセット
2. DC信号をLow(コマンド送信モード)
3. Function set(0x20)
4. Display control(0x0c)
5. DC信号をHigh(データ送信モード)
6. bitmapデータ送信
7. DC信号をLow
8. XまたはYアドレスを変更
9. 5に戻る
って感じですね...たぶん。(SCE信号は省略)
Xアドレスはデータを書き込むと自動的に+1されるみたいです。
返信する
じつはArduinoで (Akira)
2011-06-28 22:27:33
アドバイスありがとうございます。

本当はATmega168か328でSPIしてやろうと考えていますが、とりあえず試食するのにArduinoに繋ごうと考えていました。

調べてみると、Arduioでは既に5110のサンプルスケッチがあったようで、それを丸写ししようと考えていたところです。

大まかなイニシャルの手順はPhilipsのPCD8544データシートに記述してありますね。ですが、バイアスシステムの値(BS0~BS2)や、温度係数(TC0~TC1)、更にVop値(VOP0~VOP6)についての設定方法がよく分からなかったので、初期値で良いのかなぁと。
多分、コントラストに関わる部分なので、異常値では画面が真っ白か真っ黒になるだけでしょうけれども。
返信する
Unknown (mimipsoc)
2011-07-01 22:21:32
確かに関連性がわかりませんね

とりあえずbiasを0x13、Tempを0x04または0x06に設定して、Vopの値を0x80から0xffまで変化させてみるとかどうでしょう?
見つけたソースだと以下のようになっているので、恐らく壊れることは無いと思うのですが。

[LCD初期化抜粋]
LcdSend( 0x21, LCD_CMD ); // LCD Extended Commands.
LcdSend( 0xC8, LCD_CMD ); // Set LCD Vop (Contrast).
LcdSend( 0x06, LCD_CMD ); // Set Temp coefficent.
LcdSend( 0x13, LCD_CMD ); // LCD bias mode 1:48.
LcdSend( 0x20, LCD_CMD ); // LCD Standard Commands, Horizontal addressing mode.
LcdSend( 0x0C, LCD_CMD ); // LCD in normal mode.

[コントラスト設定]
void LcdContrast ( byte contrast )
{
LcdSend( 0x21, LCD_CMD );// LCD Extended Commands.
LcdSend( 0x80 | contrast, LCD_CMD ); // Set LCD Vop (Contrast). Contrast value from 0x00 to 0x7F.
LcdSend( 0x20, LCD_CMD );// LCD Standard Commands, horizontal addressing mode.
}

プログラマブルコントラストもいいですね。フェードイン・アウトができそうです。
返信する

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。