トランジスタ技術誌記事補足:PICで体験するマイコンの世界
トランジスタ技術(CQ出版)2007年8月号に掲載された記事「PICで体験するマイコンの世界」(97〜158ページ)の参考資料等についての補足です.
- 付録基板の回路図
- 下記の回路図中のIC2 74HC1G14相当品(シングルゲート・ロジックのインバータ)は74HC04や、トランジスタを用いたインバータ回路、CMOSタイマーIC
555を用いたインバータ回路等で置き換え可能です.(CMOS555のインバータへの流用に関しては記事、書籍をご覧下さい))
- 記事の書籍化
- 2007年8月号の記事と、その後に掲載された補足記事に加筆・訂正を加えた下記の書籍が発行されています. 記事中の誤り・誤植等を修正した上で、いくつかの簡単な製作例を追加しています.
- 参考用サンプル・プログラムと回路図
- トランジスタ技術誌の記事や書籍では触れていない参考用のサンプル・プログラム、回路図を上記のCQ出版の書籍紹介・サポートページよりダウンロード可能です.
- 付録基板とキーボード、マウス、LCD表示モジュールの接続例等が含まれています.
- 動作クロック周波数を落とした低消費電力版ブートローダー
- 電池動作機器の工作向けに付録基板搭載のdsPICの動作クロック周波数を落とした低消費電力版ブートローダーも上記のCQ出版のwebよりダウンロード可能です. ブートローダーの書込・書換にはdsPIC30F2012に対応したプログラマ(ライタ)が必要です.
- 付録基板のクローンの作成・使用について
- 付録基板に搭載したdsPIC30F2012に書込済みのブートローダーのHEXファイル等も上記のCQ出版のwebよりダウンロード出来ます. 非営利目的であれば、自由に付録dsPIC基板のクローンを作成してご利用ください.
- 64bit版Windowsでの動作対応について
- dsPIC基板へプログラムをダウンロードするプログラムdspicguy.exeはバッチプログラムdspicguy.batを呼び出しているだけです. dspicguy.batはhexconv.comとloadspic.exeを呼び出しています. このうちhexconv.comは16bitアプリケーション(DOSプログラム)であるために、64bit版Windowsでは動作しないそうです. 64bit版Windowsを使用する場合は下記のいずれかの方法で問題を回避出来ます.
- DOSBoxを使う
- hexconv.comはDOSエミュレータのDOSBoxの中で動作します. DOSBoxは64bit版Windowsでも動作するはずです.
- DOSBox内でhexconv.comを動かすバッチプログラムの一例を以下に示します.(先頭の数字は行番号です. 行番号はバッチプログラムの一部ではありません)
kickbox.batはDOSBoxを起動してDOSBox内でconvbox.batを動かします. convbox.bat、hexconv.com等があるWindowsのディレクトリd:\work\dspicguyが自動的にDOSBoxのC:ドライブにマウントされます. convbox.batがhexconv.comを起動します.
[kickbox.bat]
0001| "c:\Program Files\DOSBox-0.74\DOSBox" d:\work\dspicguy\convbox.bat
-noconsole
[convbox.bat]
0001| c:
0002| hexconv.com < c:\lcd1.hex > c:\lcd1.txt
0003| pause
0004| exit
dspicguy.batの修正と各バッチプログラムの引数の設定を適切におこなえば、dspicguy.exeから自動的にすべてのバッチプログラムを連続して実行出来ます.
- コンパイルしなおした32bit版のhexconv.exeを使う
- Windows以外のOSでの動作対応について
- Microchipから近々リリースされる予定のMPLAB Xはマルチプラットフォームになるそうです. hexconv_delphi_fpc.pasはFree Pascal (FPC)でもコンパイル可能ですので、Windows以外でもFree PascalがポートされているOSなら移植可能です.(Intel Linuxでは作成済みのバイナリhexconv_linuxを用いてください)
- dspicguy.batはそれぞれのOSのスクリプト言語で作り直してください. loadspic.exeはコマンドライン・プログラムで代用可能です. 例えばLinuxならば、シリアルポートのパラメータ設定にstty、シリアルポートからのデータ出力(dsPIC基板への書き込み)にcatを使ってください. 参考までにstty, catコマンドの使用例を下記に示します.
stty -F /dev/ttyS1 -a
stty -F /dev/ttyS1 19200 cs8 -cstopb -parenb -crtscts
cat lcd1.txt > /dev/ttyS1
- バッチプログラムdspicguy.batを呼び出しているGUIのdspicguy.exeは他のOSへの移植は出来ません.
- フィジカル・コンピューティングとの相違について
- いわゆるフィジカル・コンピューティングのボードはエレクトロニクスの専門家ではない(特にエレキの専門家になろうとは思っていない)ソフト屋さんやメカトロ屋さんが手軽にマイコンを使った制御システムを構築するためのものです. フィジカル・コンピューティング流の使い易さを追求するために、ハード、ソフトともに組込システムの低レベルの部分を意図的に隠蔽した作りになっています.(大規模なアプリケーション・ソフト開発の世界では、中身がブラック・ボックスになっている既存のライブラリや開発環境に依存するのは当たり前?)
- マイコン・システム、組込システムの基礎の学習を目的とする方には、フィジカル・コンピューティングのボードはお勧めできません. また、電子工作に広く用いられている8bit
PICマイコンもやや特殊なアーキテクチャと命令セットのために、教育目的には向きません. 学習・教育用にはdsPIC30F2012を搭載した付録基板がちょうど手頃な選択肢です. dsPICは16bit組込プロセッサとして標準的と言っても良い命令セットを有しているので、アセンブラ・プログラミングの勉強にも向いています.
- 既存のツール、開発環境に依存せざるをえないような、複雑な組込システム開発の勉強をされる場合は、フィジカル・コンピューティングではなくITRON(μITRON)に取り組むことをお勧めします. ITRON関連の書籍にはリアルタイムOS(RTOS)の内部構成やRTOSの設計・実装にやや片寄った内容のものが多いようですが、ぜひリアルタイムOSを用いたアプリケーションの開発手法・デバッグ手法の方の勉強してください.