PICマイコン  
   
 初心者のソフト作成
 PIC12F及びPIC10Fのアセンブラソフトの書き方の初歩を書きます。
 2014/12/31 UP
   
   
   
   
1.PICマイコン用ライターの作成
RCDライター (FENG3のホームページ) '11/7/5リンク変更  
 今の電気製品には、マイコンが使われていることが非常に多い。ありがたいことに昔と違い簡単にマイコンを自作する事 ができます。そこでラインナップが多く入手が簡単なPICマイコンのライターを作ることにしました。
インターネットで色々調べると、何種類かのライターの回路図を知ることが出来ました。その中から下図に示すものが外部電源を必要としない簡単なハードウエアと言うことで選びました。
 
 
 
【PICライター回路図】  
 ● 回路の動作説明  

 この回路は、「JDMプログラマ」と同様に232Cインターフェイスの3ピン(MCLR)より電源を作っています。
書き込み中は、DATA,CLOCKもダイオードを通して5V系の電源に寄与しています。
上の回路では、初期状態で3ピンがマイナス(-7~-12V,ノートパソコンは電圧が低い)のためツェナーダイオード(順方向)を通って470μFにチャージが行われます。
 この時にPICマイコンには電源の供給はありません。次に、3ピンが、マイナス電位からプラス電位に変化し始めますと、0.6V(Vf電圧)までは、5V電源は0Vですが、Vp電源には470μFに蓄えられた電圧+Vf分の電源が供給されます。その後、3ピンの電圧上昇と共に5V電源が供給されます。
 「JDMプログラマ」は5Vが先に供給されますが、こちらはVp電源が先に供給される回路になっています。
5V電源を先に立ち上げないといけないPICでは、DATA,CLOCKを先に動かして対応しているのかもしれません。 (推測)
10k+0.1μFは、3ピンの電圧(0V以上で)切り替わり時に負荷として働き、(ないと0~1.5Vあたりが無負荷)遅延に寄与しています。
この回路の最大の欠点は、Vp電源です。470μFに蓄えられた電荷のみで電源を構成している為安定に長時間電圧を供給出来ません。(ほとんど問題は起こらないと思いますが)  
 
書き込みソフト「PIC Prog4U'11/7/5リンク変更  
 RCDライター用に書き込みソフトとして選んだものがこのフリーソフトです。
実際に、製作したライターを232Cで繋げ上の写真のようにPIC12F629を付けて立ち上げた表示を下に示します。
これで、ソフトを書き込む準備が出来ました。まずは、簡単なものを作ってみたいと思います。
 
 
☆バージョンアップ (2008/09/14)  
  書き込みソフトがバージョンアップ(Version 1.2.8.A)してさらに洗練されて使いやすくなりました。
 Writer509にも対応しているので引き続き使用します。
 
 現在のバージョンでは、一部のPICを書き込むことが出来ないようですが次期バージョンで対応予定とのことでゆっくり待つこととします。
早速、バージョンアップで(Version 1.3.0.)ほぼ対応できるようになりました。
        2008/10/20
 現在、Version 1.3.2.bがアップされています。
         2009/4/15
 現在、Version 2.2.2がアップされています。
一部のライターで30Fまで対応してます。
         2010/2/8
 現在、Version 2.3.0がアップされています。
         2010/9/9
 
MPLAB IDE (エディタ・アッセンブラ・MPLINK・MPLIB・シミュレータ統合ソフト)  

 MPLAB IDEのバージョン8.10をインストールする場合正常に完了しても起動するとロゴを表示しその後終了していまい起動できない不具合が発生しました。インターネットで調べると原因は、WindowsのユーザーIDが日本語の為に発生するようです。
バージョン7.6X以降では、プロジェクトの中間ファイルをユーザー環境変数の「TMP」で指定されるフォルダーに出力しますが、2バイト文字を認識できずに終了してしまうとのことです。
 したがって対策は、ユーザーIDを1バイト文字のアルファベットに変えることにします。コントロールパネルのユーザーアカウントにより名前を変更し再起動します。
変更されたアカウントで起動できましたが、ユーザー環境変数が変わっていませんでした。
そこでコントロールパネルのシステムの詳細設定の環境変数を開き、「TMP」のフォルダー名を変更しました。
 また、一度インストールしていますのでアンインストールしてもレジストリに前の情報がのこっている可能性があるので、レジストリエディタ(regedit.exe)を立上げ「MPLAB IDE」の項目を削除しました。
再度、再起動を行いインストールします。
OK!!です。

 
   
   PIC Writer 509 (オレンジ電子の電子工作!)
 
 安定なライターを作る為インターネットで調べると色々な物が見つかりましたが、上の書き込みソフトが対応しているWriter509に決めました。
このライターは、5V,13Vの電源を含めて12F509がコントロールしますし、電源も外部から供給しますのでインターフェイスに影響されずに書き込みをおこなうことができます。
 まずコントロールマイコンのソフトを最初に作ったライターで書き込む必要があります。
家にあった12F675を使ってコントロールマイコンを作ることにしました。
 
 
【PIC509ライター回路図】  
 作り方や説明は、オレンジ電子の電子工作を見てください。
電源回路は、外部の15Vアダプター使用を前提に作りました。 5Vは、3端子レギュレターのTL7805を使用。 書き込み用電源は、TL431によりSW2がONで13V,OFFで12V以下の二通りの電圧に対応しました。
 
 電源のランプを青にしてみました。左の28ピンのコネクタは、いずれdsPIC(18/28ピン用)の為に用意しました。
 レイアウト的には、手元にあったゆとりのある基板を使用し適当に作ってしまいました。
 RCDライターの欠点は、Vp電電が負荷や書き込み時間に左右され安定でないことです。外部電源によるこのライターを今後はメインに使用して行くつもりです。
       
 
  PICKit3による簡易デバッグ
   仕事の関係で、PICマイコンの講習会に参加していただきました。
ソフトはMPLAB IDEではなくMPLABX(V3.05)を使用しました。配線を繋げた状態でデバッグモードでブレークポイントを設定すればその時の内部の状態を確認することができますしステップ実行も一応可能です。
ちょっと複雑なソフトを作成するときにはこのデバッグモードはとても助かります。
2.PICマイコンの主な種類  
シリーズ名 品番 ピン数 Pメモリー RAM EEPROM 周波数max 備考 ライター
 PIC10F シリーズ  PIC10F200   256 16 4MHz    
PIC10F222 512 23 8MHz  A/D 
PIC10F322 512 64 20MHz  A/D×3, PWM  
PIC12F シリーズ PIC12F629 1k 64 128 20MHz
PIC12F675 1k 64 128 20MHz  A/D×4
PIC12F683 2k 128 256 20MHz  A/D×4,CCP
PIC16F シリーズ PIC16F84A 18 1k 68 64 20MHz  標準品
PIC16F88 18 4k 368 256 20MHz  A/D×7,CCP
PIC16F690 20 4k 256 256 20MHz  A/D×12,ECCP+
PIC16F628A 18 2k 224 128 20MHz  CCP,Vref
PIC16F648A 18 4k 256 256 20MHz  CCP,Vref
PIC16F873A 28 4k 192 128 20MHz  A/D×5,CCP,MSSP
PIC16F886 28 8k 368 256 20MHz  A/D×11,CCP,SPI
PIC16F887 40 8k 368 256 20MHz  A/D×14,CCP,SPI
PIC18F シリーズ PIC18F1320 18 4k 256 256 40MHz  A/D×7,CCP
PIC30F シリーズ DSPIC30F2012 28 4k 1k 120MHz  A/D×10,CCP,SPI
DSPIC30F3012 18 8k 2k 1k 120MHz  A/D×8,CCP,SPI
 今回初めてPIC10Fシリーズを使って簡単なコントローラーを色々作ってみました。アセンブラによるソフト作成で中々動作せず手こずりました。結果的にPIC12F以降とは異なる初期設定の記述があることがわかりました。
PICマイコンは秋月で購入でき面実装の小型パッケージもあり幅広い用途が考えられます。
ネットで調べてもほとんど使用例(ソフトの例)が見つからないので参考のためアップして行こうと思います。
2014/12/22 UP
 3.トラ技の付録  
 
 2007年8月号,9月号にPIC30Fサンプルと評価ボードが付いていたので作ってみました。
この雑誌は、最近購入したものでたまたま東京駅の八重洲ブックセンターに在庫が残っていました。
秋葉原の電子部品販売店でまだ残っているのを見掛けました。(2008年9月T)
右下の端子には、購入し忘れてまだつけていませんが動作テストやトラ技に載っているアプリケーションには問題ないので、ぼちぼち動かして勉強中です。
このマイコン基板を利用してDSPIC30Fのライターを作る記事がトラ技に出ているので作ることにしました。
 (509ライターが対応していないため)

M.I.の趣味の部屋