Suzulan > コンピュータ > ワンチップマイコン >
               ワンチップマイコン
                < Microchip Technology DsPIC 30F2012 >  

 

2007年トランジスタ技術8月号および9月号に、このワンチップマイコンが付録として付いていました。関連ソフトウェアを収録したCDも付いています。早速購入しました。・・・が・・・製作したのは約1年後の2008年8月でした。趣味が多すぎて製作時間がなかなか取れなかったもんで・・・。2008年の夏休みに少し暇ができ、一気に製作しました。ハード製作後、24時間表示デジタル時計のサンプルプログラムを流し込み、RUNさせて見ます。ドキドキ・・・アドレナリンが噴出す・・・あれっ、なんにも表示されな〜い。シーン。コリャまずいぞ。しばらく考えた結果、そうそうLCDのコントラスト調整ボリュームがあったっけ。ボリュムをゆっくり回すと文字が浮かび上がってきました。大成功!!写真はファーストRUNさせてから20分42秒後のものです。 v(^^;


写真左はトランジスタ技術8月号に付属されていた、ワンチップマイコンの基板です。中央の黒いチップがマイクロチップ・テクノロジー社のDsPIC-30F2012です。(以下DsPICと記述します。) 内部にはCPUはもちろん、メモリ・オシレータ・タイマ・I/Oポート・A-D/D-A(PWM)・シリアルインターフェース・リセント回路など豊富なペリフェラルを有した16bitワンチップマイコンです。写真右は9月号の付録でトレーニングボード用基板です。さすがに部品は付属しておらず基板のみです。この基板に前述のワンチップマイコン基板を載せ、C/Rやスイッチ・コネクタ・周辺IC・LCD表示器など追加部品を取り付けることにより、さまざまな実験ができるようになります。基板だけの付録とはいえ、ユニバーサル基板に組み込むことと比較すると、この基板が有ると無いではエライ違いです。製作が容易になるばかりでなく、最短距離の部品配置と広いアース面を持つように設計されたプリント基板の使用は性能的にも抜群に有利になるからです。


部品はマルツパーツ館でセット販売されているものをWeb購入しました。オプション部品になっている水晶振動子や12bitADC、ACアダプタもついでに購入しました。(写真左) すべてトレーニングボードに合わせて選定された部品なのでプリント基板に合わないなどどいう部品はありません。とはいえR(抵抗)やC(コンデンサ)などは組み立て前に回路図とにらめっこしながら全数チェックしました。チェックをしないでいきなり組み立てると最後に部品が足りないだとか、変な時定数値の部品が余ったなどのトラブルがよく起こるからです。さていよいよ組み立てです。プリント基板にシルク印刷された回路シンボルと部品名を確認しながら基板に取り付け、裏面で半田付けしていきます。部品は背の低いRやCから取り付けるのがコツです。ICはすべてソケットが付いてきますので切り欠き方向を間違わないように取り付けます。背の高いスイッチやコネクタは最後に取り付けます。すべての部品取り付けが終わったらICソケットにICを挿入してトレーニングボードは完成です。(写真右) コーヒーブレークしながらゆっくり作業をしても3〜4時間でできます。


写真右は組みあがったトレーニング用基板に8月号付録のDsPIC基板とLCD表示器を取り付けた完成品です。これから電源を入れますが、その前にDsPIC基板とLCD表示器はずしておきます。ACアダプタをつなぎ(ドキドキ!)電源スイッチをエイヤッとON! ICが異常に熱くならないか触指で確かめます。煙がモクモクでてこないか、変な臭いがとしてこないかなど全五感を集中し観察します。5分ほど観察し異常がなければ電源を切り、DsPIC基板とLCD表示器を取り付け、再度電源ON! 正常に動作するとDsPIC基板の赤色LEDが点滅を始めます。この点滅は、あらかじめ書き込まれているテストプログラムが起動されRUNしている証拠です。DsPIC基板は、約100mAの電流が流れますのでホンノリ熱くなりますが異常ではありません。でも触れられないほど熱くなるのは異常ですよ。LEDの点滅を眺めつつ5分ほど観察し、煙や異臭がなければ一応ハードは完成です。ところでオプション部品の水晶振動子(写真右)ですが、実は使えません。(エ〜、ウッソ〜。) というか専用のメモリ書き込み器がなければクロックを外部発振器(つまりこの水晶発振器)に切替えできないのです。専用の書き込み器は結構高価ですし、ん〜どうしょう。まあ内臓発振器でも動かないことはないし・・・宝の持ち腐れになってしまいますが、今回はこのままホットくことにしました。 (^^;


どんなコンピュータでもソフトを入れなければただのガラクタです。製作したDsPICトレーニングボードも立派なコンピュータシステムですからガラクタにならないようこれからソフトを入れます。パソコンとDsPIC間はRS-232Cストレートケーブルで接続します。(写真) 付属CDに収録されたtx232char.exe(通信試験プログラム)を実行し、パソコンとDsPIC間の通信が正常にできることを確認しておきます。さて、2007年トランジスタ技術8月号にはMPLABと呼ばれる統合開発環境が付いてきます。これをパソコン(WindowsXP-SP2またはWindows 2000-SP4・Vistaは対象外) にインストールします。MPLABはCコンパイラ(C30)が組み込まれ、エディタ・デバッガ・コンパイラ・リンカなどの各種開発機能を有しています。具体的な使用方法はトランジスタ技術を参照してください。) MPLABにより作成したプログラム(*.hex)はtxtファイルに変換したあと、パソコンからDsPICにダウンロードして実行させます。ダウンロードはファイルの自動変換機能を有したdspicguy.exeというアプリケーションで行いますが、残念ながらMPLABには組み込まれておらず個別起動になります。ところが、少なくとも筆者のパソコン環境ではdspicguyよるダウンロードはできませんでした。トランジスタ技術のHPにサポートコーナーがあったので読んでみると、やはりうまくダウンロードできない事象があるとの情報がありました。回避策として、Windowsのコマンド・プロンプトを開き、コマンド実行によりダウンロードする方法が示されています。MPLABで作成したプログラムをビルド(コンパイル&リンク)すると*.hexというファイルが生成されます。このファイルをコマンド・プロンプト画面上で操作しダウンロードします。参考に筆者のパソコン環境でダウンロードに成功した操作手順を以下に示します。
◎ パソコン側の準備
   ・パソコンのCOMポートとDsPICトレーニングボード間をRS-232Cストレートケーブルで接続する。
   ・HEXCONV.COM および loadspic.exe を付録CDからコマンド・プロンプトのカレントディレクトリにコピーする。
   ・MPLABで生成した、*.hexファイルをコマンド・プロンプトのカレントディレクトリにコピーする。
    (*.hexの"*"はMPLABで生成されるファイル名。MPLAB上でのプログラム開発時、任意に指定できる。

    
◎ DsPIC
側の受信準備
   ・DsPIC基板のSW2をLD(LOAD)側にする。
   ・トレーニングボードの電源ON(DsPIC基板のLED赤点灯)
   ・トレーニングボードのRESETスイッチ押す
   ・DsPIC基板のSW1押す(LED緑点灯・受信準備完了)
    ---この時点で今まであったDsPICメモリ上のユーザプログラムは消去されます---

◎ パソコン側のコマンド操作

   @スタート→すべてのプログラム→アクセサリ→コマンド・プロンプト
       ・コマンド・プロンプト画面が開きカーソルが点滅、コマンド待ち状態になる。

   A
hexconv < *.hex > *.txt コマンドを実行(hexファイルをtxtファイルに変換・生成される。)
       *.hexの"*"はMPLABで生成されるファイル名。(MPLAB上でのプログラム開発時、任意に指定できる。)
       *.txtの"*"はhexconvにより生成させるファイル名。(このコマンド上で任意に指定できる。ただし拡張子はtxt )

   B
loadspic -c4 < *.txt コマンドを実行(ファイル転送)
       -c4の"4"はDsPIC基板と接続されたCOMポート番号(この例はCOM4ポートに接続)
       *.txtはAで生成されたtxtファイル名
            ↓
       コマンドを実行すると、*.txtの内容(すなわちプログラム)がDsPICに転送(ダウンロード)される。

◎ DsPIC側の振る舞い
   ・ダウンロード開始時、DsPIC基板のLED赤が消える。
   ・ダウンロード中、DsPIC基板のLED緑が点滅する。
   ・ダウンロードが完了するとDsPIC基板のLED緑は点灯状態になる
      ↓
◎ DsPIC側の操作
    DsPIC基板のSW2をRUN側にする。(ダウンロードしたプログラムがDsPICで実行される。)

とまあ、いろいろ問題もありましたが、なんとかDsPICマイコンをガラクタにしないで済みました。とはいっても最初から初心者にC言語でプログラムを作れと言われても無理な話です。そこで付録CDにはサンプルプログラムが多数収録されていますのでこれを利用して動作実験を行います。既にビルド(コンパイル&リンク)された*.hexファイルも用意されていますのでMPLABによるビルド操作なしで意外と簡単に動かすことができます。冒頭のデジタル時計プログラムはサンプルプログラム(CLOCK.hex)を上記操作手順でダウンロードし、実行させたものです。ソースコード(*.c)も収録されていますのでプログラムの改良もできますよ。手先を使って基板を組み立て、頭をつかってプログラムを書き、実行させて感激する。まじめな話、ワンチップマイコンをいじっていると間違いなく痴呆症防止になりますね〜。 (^^;




◎ このコーナーで公開した自作品は、筆者の単なる個人的な趣味で製作したものです。
本機製作により発生したいかなる不具合もしくは損害について、筆者が責任を負うものではありません。


◎参考文献:トランジスタ技術 2007年8月号・9月号(CQ出版社)