グラフィックLCDを使ってみました
今回使った液晶は秋月で売っている128x64のタイプです
http://akizukidenshi.com/catalog/g/gP-03413/
TG12864E-01XWBV というやつです
この液晶は電源やバックライトを含めて20本の配線でドライブできます
キャラ液晶と違い常に8bitで通信し
Ena信号だけでなくCS(Chip Select)端子が2本存在します
128x64ピクセルなので、8x8pxの美咲フォント等を使用した場合16文字x8行書くことができます
もちろんグラフィック液晶なので自由な液晶や図形を書くことができます
上の画像のサンプルでは直線を2本 正方形と真円を1個ずつ それから文字列を書いています
この液晶は1ピクセルの大きさが横1対縦1.2程度なので正方形を書いても実際には正方形にはなりません
今回はSTBeeMiniに接続し、美咲フォントと自作のUTF8toShift_JISテーブルを使用しています
とりあえず動作確認が目的なので変換テーブルは第1水準漢字しか実装していませんが、それでも全体で92kにもなり、STBeeMiniのROMギリギリです(DFUの転送には1回30秒もかかってしまいます)
参考までに今回作った基板の実体配線図を添付しておきます
図右上に10kΩのボリュームが有り、コントラストを調整しています
VDD(5V)とVEE(-10V)の間に接続しています
もしもこの図を参考に作ろうという人がいるなら、ボリュームのVDDとVEEを逆にすると幸せになれるはずです
RSをPB0に接続したほうが簡単に作れますが 今回は諸事情でPB2から配線しました
この液晶は常に8+4+2を専有しているくせに、アクセス速度はやたら遅いので
あまり実用的な使い方はできなさそうです
2013年6月26日水曜日
2012年8月8日水曜日
キャラ液晶とスイッチの共存
トライステートの電波時計(秋月)の回路図を見ていると面白い回路が含まれています
PICと液晶の間になにやらスイッチが入っています
通常キャラ液晶には6本のIOが専有されます
(最大で11本が専有されるモードがありますが まぁ 普通は使いません)
で そのうち5本は基本的に他の用途にも使うことが可能です
そのうちキリのいい4本をスイッチに使っているわけです
(LCDのE端子は他の用途に使うことができません)
どのマイコンでもIO不足は深刻なので
これをSTBeeMiniで試してみます
回路は↓こんな感じ
今回はスイッチを8個使います
また抵抗とかめんどくさいのと スイッチ数を増やしたかったので
ポートでGNDに落とします
これはオープンドレイン動作が有るARMならではといったところです
PICだとめんどくさいですねー
この回路であれば大量のスイッチを使用することや
スイッチが押されているときにLCDの操作が有っても問題なく使用可能です
御存知の通りLCDの中にはプルアップ抵抗がありますが
どーもこの回路ではそのプルアップ抵抗を期待できないらしいです
ということで 今回は4本のポートにGPIO_Mode_IPUを指定することで正常に動作するようにしています
とりあえず今回はこんなところで
追ってソースコードをサブページにおいておくと思います
PICと液晶の間になにやらスイッチが入っています
通常キャラ液晶には6本のIOが専有されます
(最大で11本が専有されるモードがありますが まぁ 普通は使いません)
で そのうち5本は基本的に他の用途にも使うことが可能です
そのうちキリのいい4本をスイッチに使っているわけです
(LCDのE端子は他の用途に使うことができません)
どのマイコンでもIO不足は深刻なので
これをSTBeeMiniで試してみます
回路は↓こんな感じ
今回はスイッチを8個使います
また抵抗とかめんどくさいのと スイッチ数を増やしたかったので
ポートでGNDに落とします
これはオープンドレイン動作が有るARMならではといったところです
PICだとめんどくさいですねー
この回路であれば大量のスイッチを使用することや
スイッチが押されているときにLCDの操作が有っても問題なく使用可能です
御存知の通りLCDの中にはプルアップ抵抗がありますが
どーもこの回路ではそのプルアップ抵抗を期待できないらしいです
ということで 今回は4本のポートにGPIO_Mode_IPUを指定することで正常に動作するようにしています
とりあえず今回はこんなところで
追ってソースコードをサブページにおいておくと思います
2012年4月20日金曜日
STBeeMiniでタイマ割り込み
STBeeMiniでタイマ割り込みを実装してみました
とりあえず動いたので報告だけ
ソースは綺麗にしてからうpします
1mS毎に割り込みをかけてLEDをチカチカさせます
まぁ500Hzだと点滅なんぞわかりませんが
正確に500Hzじゃないのは
水晶の精度か定数の設定か
計算上クロック1個分少ないと500.006945Hzになるので
多分定数のミスです
とりあえず ミリ秒単位で割り込みが出来れば1000カウントとunsigned longで起動時間管理が楽になるので いろいろ面白いことができると思う
タイマ割り込みと USART実装して あとADCが出来れば
データロガーとして使えるので 面白くなりそう
あとはprintfが使えれば文句ないんだけどなぁ…w
登録:
投稿 (Atom)


