人気ブログランキング | 話題のタグを見る

ポケコン PC-G850Vで電子回路工作(6/7)

今までポケコンで、以下のようなデータの入出力を色々やった。
1.デジタル出力
2.デジタル入力
3.アナログ入力

1番はよくあるLEDを光らせるやつ。
応用としてシフトレジスタを使って1ポートで7セグを点灯させた。
少ない出力ピンで多くの信号を制御する。
デジタル出力であとやってないのはLEDをPWM制御で調光することかな。

2番はスイッチのON/OFFを読み取るやつ。
基本だが、プルアップ・プルダウン抵抗を理解しないと進めない。
応用としてパラレル-シリアル変換ICからの複数スイッチの入力など。
少ない入力ピンでたくさんの信号を受け取れるようにする。

3番はA/D変換ICの入力。
アナログ値を入力するのに、MCP3002というICで、電圧値をデジタル入力に変換して取り込む。
ポケコンでSPI通信ができることが分かったのが収穫。
応用としてタッチパネルや複数のセンサー切り替えや無線によって遠隔地のデータを取り込んだり。

次にI2Cをやろうとしたが、双方向インターフェースというのが必要だった。
SPIは単方向の信号つまり入力か出力に特化したピンでやり取りするのだが、
I2Cは1個のピン?で入力も出力もこなさなければならない。いわゆるバスってやつだ。
ポケコンにもPC-G850Vにはバスが出ていて、命令もシステムバス命令で用意されているが、まだ11ピンしか使ったことがないので敷居が高い。
どうにかできないかと調べていたら、こちらのサイト様にGPIOで出来るようなことが書いてあった。

2.3.4.1. GPIO初期化関数
【以下引用】
ここで注意したいのは、ポートを出力として設定するタイミングです。
今回接続するLCDモジュールは、R/WがHレベルになると、データバス
(DB0-DB7)からデータが出力されます。このときマイコン側もピンが
出力設定になっていると、電気的にショートしてマイコンや
LCDモジュールが破壊されてしまう危険があります。
 例えばマイコン側の出力ピンがHレベルになっている場合には、
マイコン内部でピンが+電源に接続されています。
そしてモジュール側でピンがLレベルになっている場合には、
そのピンは-電源に接続されています。
そうするとこれらのピンが接続されてしまうと、結局は、
+電源と-電源が直接に接続されたのと同じになってしまうのです。
 そのためマイコン側のポートを出力として設定する前には、
LCDモジュール側を確実に入力に設定(R/WをLレベルにする)
しておく必要があります。
 なおこの問題はLCDのモジュールに限ったことではなく、
データの出力と入力を兼用するデバイス全般との接続において注意
すべきポイントです。
【ここまで】

ずっと入出力兼用のピン設定がないか考えていたが、入出力モードを切り替えて使えばいいらしい。
ただプルアップや何かの信号がモード切替のタイミングでHIにならないように、回路設計と相手機器をコントロールしないといけないみたい。

うん。敷居が高いな。SPIができるようになったのだから、I2Cはとりあえずおいておこう。
まだ外部電源の実験やアナログ入力の応用も手広く残っているし。
by k1segawa | 2015-06-07 17:16 | ポケコン | Comments(0)