クモと格闘中
STATUS: 故障中x2
USBSPYDER08、前回は本体のLEDをデバッガで制御するとこまでやりましたが、その後もいろいろやってますよー。
とりあえずやったことをだらだら書いてみる。
・LED増設
USBSPYDER08の基板上にある8本のピンは、そのままマイコンのピンに対応した信号が来ています。配列も一緒(最初、別の資料みてて配列違うのかと勘違いしてた)。
2番目のI/0のピン(6番ピン)とGND(=Vss , 4番ピン)に、LEDと抵抗(100Ω)を直列につないで、PIOのレジスタ操作したら点灯制御できた。わーい。
ピンへの接続はICクリップをつかって、ブレッドボードへひっぱってます。
・スイッチ入力
実ははまり中。
3番目のI/Oのピン(7番ピン)とGND(=Vss , 4番ピン)を直結すれば、ON扱いになって、PIOのデータレジスタの対応ビットが1になるはず・・・なのにならない。うーん。
念のため、プルアップしたほうがいいかなーと、Vdd(3番ピン)に、10KΩの抵抗でつないだら、ビットが1になった。あれ?
その状態で、GNDにもつないだら、ビットは0になった。およよ。逆じゃない?
他のマイコン(PICとかH8)の解説参考にやってみたけどなんか違うのかな。
(GNDとの接続は、1.5KΩくらいの抵抗いれたほうがいいのかな。入れても状況はかわらなかったけど)
プログラムで反転させればいいといえばいいけど、なんかろくでもないことになってるようで気になる…
・サンプルプログラムを改造してみた
スイッチ入力のテストは、デバッガのメモリダンプみながらでも出来るけど、手間なので、サンプルのLED点滅プログラムを改造してみた。
スイッチがオンになると、後付のLEDをオンするように。Cでかけるので難しいことはないですが、マイコンで動くのを見るのは嬉しいですね。
で、改造したプログラムで挙動をみると、オープン状態では入力がとても不安定になることがよくわかった。
3番目のI/Oのピン(7番ピン)から、ICクリップを伸ばして、Vddにつなぐとオンになるけど、はなしてもONのまま。でも、しばらくするとオフになる。これは、GNDにつないでから離した場合も同様(オフだったのが、なんとなくオンになったりする)。
ちゃんとプルアップしないとダメだなーと実感した。
いまのマイコンは、レジすら設定で内部的にプルアップ抵抗を有効にできるから、わざわざ外付けしないでいいので大変便利。なのだけど、いまは実験中なので外付けしてる。(思うようにうごいてないけど>論理が逆になる)
・ブレッドボード上でマイコンを動かしてみる
スイッチ入力がおかしいのって、ひょっとしてUSBSPYDER08のソケット上でマイコンうごかしているから?とか、あらぬ疑いをかけてみた。
マイコンをはずして、ブレッドボードに移し、それっぽく配線して、電源いれた(電源=3.3Vは、USBPYDER08からICクリップでもってきてる)。
お、USBSPYDER08上とまったく同じ動きをする。
結局、問題は解決したわけじゃないけど、マイコンが単体でちゃんと動いているのを確認できたのは感激。
ああ、この子はこんなにちっちゃいのに一人でもやっていけるんだなぁって。
理屈ではわかっていたけど豆電球を光らせるような手軽さで、電源つなぐだけでマイコンが単体で動いちゃうって凄いよなあ。楽チンすぎる。
こうなると、なんでもマイコンで制御したくなりますねえ。
(3V,20mAくらいで動くアクチュエーターないかなあ・・・とか考えてみたり)
ところで、USBSPYDER08はネットで検索してもあんまり情報ないですねえ。
基板上のピンの仕様とかどこでも見つからなかったぞ(結局CPUと同じ配置だったんだけど。どこかに資料あるのかな)
マイコン自体の「MC9S08QG」や、マイコンのコア部分の「HCS08」で検索しても解説ページはいまいちみつかりません。
機能が少ないタイプの「HC08」で探すと結構みつかるので、こっちを参考に差分はデータシートみながらやればいいのかな。レジスタも結構近いようだし。
次のサイトが大変参考になりました。
マイコン工作の実験室
→Freescale MC68HC908Q Family (HC08マイコン工作)
でも、スイッチ入力の論理が逆になっちゃうのは解決せず。
回路は、コレに近い形でやってるんだけどなあ。