GR-KURUMIでUSBシリアル経由でシリアル通信する
この前のメイカソンの時もハマったので、自分への備忘録として。
【解決策】
シリアル通信するときは、RESETとVCCを接続する。
【原因】
GR-KURUMIのRESET回路は、LOWレベル(GND)に落ちるとRESETがかかった状態となる。この回路はUSBシリアル接続のDTRコネクタとも接続されていて、DTRがアクティブ(DTRはActive lowのようだ)の時は常時RESET状態となってしまう。
KurumiWriterなどはDTRのコントロールを適切に行なっているが、cuコマンドなどはDTRをアクティブにしてしまうので、接続したと同時にRESETがかかりっぱなしになってしまい、プログラムは実行されない。
【対応案】
WindowsではTeraTermのマクロでserdtr 0するという手が取れるようだ。
Macではcuコマンド、screenコマンド、先日インストールしたc-kermitなどで色々と試してみたけれど、DTRを直接いじる設定が見つけられなかった。
pyserialなどで自分で制御書けばできると思うんだけど、動作確認で使いたいとかというニーズだったり、誰かに渡してできるだけそのまま簡単に使って欲しいので、とりあえずは非常に安直だけれども、書き込みしない時はRESETをVCCにつないで常にHIGHに保つこととした。スイッチかジャンパピンで実装しとくと楽かもしれない。
ちなみに、GR-KURUMI互換のピカピカモジュールも同様。