マイコン_(6)_PicKit3とFT232RLの同居

先日は、マイコン装着オンボードでPickit3を接続してのプログラム書き込みに成功した。そしてそのままPickit3からの供給電力を利用してマイコン装着回路も動作し、いちいちマイコンを装着しなおさなくてもプログラムの変更と確認試験をどんどん行うことが出来るようになった。

そして、今回は。
パソコンと通信を行うためのFT232RL(USBシリアル変換モジュール)での試験を行うときにも、プログラム変更のたびにマイコン装着や電源の切り替えなしにそのままでプログラム書き込みとその後の動作確認を出来ないだろうか、と考えたものである。

気にしているところは、電源供給の重複のことである。
パソコンからはUSBケーブル二本を使用し、
・ひとつはFT232RLでのパソコンとの通信用
・そしてもうひとつはPickit3でパソコンMLABからのプログラム書き込み
である。

どちらも電源はUSBでパソコンから給電可能である。
ただ、これらの給電をマイコンボード上で双方とも接続すると電源競合になってしまう。

それで調べてみたのだが、FT232RLモジュールはバスパワーでもセルフパワーでもどちらでも動作する。
だからこれをセルフパワー動作にしてその電源はマイコンボードより(ある意味、Pickit3より)供給を受けることですれば電源の競合は起きないと思う。
そのためにはFT232RLの電源供給モードを変えればいいのであるが、これには基板上のジャンパーピンを変更するだけでなく、装着されているEEPROMの中身を書き換える必要がある。そのためのユーティリティ(Mprog)もFTDI社のホームページからダウンロードして利用できるようである。
しかし、ちょっと慣れるまで面倒であり、もっと強引に、要するにFT232RLの電源をマイコンボードへ供給しなければいいのかと考えた。
VccやUSB給電をマイコンボードには繋がず、GNDと信号線だけを接続すればいいか。

そしてやってみた。

まずPickit3からのプログラム書き込みは、うまくいった。
FT232RLも装着したままで、さらにUSBに接続したままで、問題はおきていないようである。
(まだ通信をしていないので、なんとも・・・;)

では通信プログラムをロードして、と、探して。
ちょうどよいサンプルプログラムが、みつからない・・・
LCDとかクロックとか合体したこれから確認用に作成したものがあって、これで試してみたが、動作はよく確認できず。

いろいろやってみているうちに、パソコン側のハイパーターミナルに何やら信号は受けているようなこともあるようで、何かでたらめな表示がされることもある。
基本に帰って、単純なサンプルで実行。(この段階でプログラム書き込み操作に関しては良好である。)
もともとのサンプルプログラムは外部セラロック10MHzであり、それをIOポート活用の面から内部発振の8MHzに変更したのであるが、そのせいかうまくいかない。これを当初の外部セラロック10MHzに変えたら、うまく動作するようになった。

そして、同じようではあるのだが、内部8MHZではうまくいかないのだ。
USARTというもののようである。どうもこの発振周波数とボーレートには関係があるようである。よくわかってない。データシート(英語)を読んでみるが、適用事例ではないし、意味もわかりにくいし、よくわからない。
もっと勉強しないと。英語と通信と。