PIC16F1705の各ピンについて (マニュアル6ページ 図2)

このPICは14ピンで電源に2ピン、I/Oに最大12ピン使用できる、小さい割に使い勝手の良いPICです。
1、14番ピンが電源ですので、それ以外の用途には使えません、2番ピン~13番ピンがプログラムで使用できます。

各ピンの機能的割り当て (マニュアル7ページ 表3 / 英文マニュアル 5ページ TABLE1)
基本的な入出力ピンとして、RA0~RA5、RC0~RC5と言う名前が、各ピンに割り当てられています。
これらはデジタル入力として、プログラムでH(1)/L(0)とに判別できます。
また、デジタル出力としてプログラムでH(約5V)、L(約0V)を出力設定できます。(RA3は入力のみ)
それらのピンに、LEDを接続されていれば、点滅させられますし、他のデジタル機器が接続されていれば、データを取り込めます。
しかし、各ピンには他の機能の入出力としても、プログラムで切り替えて使用できます。
例えば、PIC内部のA/Dコンバータを使用して、ピンに加わる電圧値をデジタル変換して取り込んだり、
内部のD/Aコンバータを使用して、ピンに指定の電圧を出力したりと、アナログ的な動作も行えます。
また、16F1705はオペアンプを2個内蔵しており、アナログ動作も可能です。

内部モジュールの概要について(マニュアル12ページ 図1-1 / 英文マニュアル10ページ FIGURE1-1)
マニュアルの図1-1の様に各種モジュールがレジスタアドレス領域に接続されています。
これらをプログラムで操作する事が、結果的に指定ピンに、機能的に反映されます。
そして、色々な外部機器をPICがコントロール出来る事になるのです。
これが何とも面白いのです。
つまり、PICと言うのはCPUと各種I/O装置が1つのパッケージに実装されており、外部にはそれらの入出力が出ているLSIと言えます。
これらの機能は外部装置をPIC内部のプログラムによるコントロールを目的としていると思われます。
対して、Z80や現在のパーソナルコンピュータのCPUは、データバスやアドレスバスはCPUチップ外部に出力され、
メモリや各種I/O装置はマザーボードに配置されています。
よって柔軟かつ高機能なシステムを構築できますが、些細な事を行うにはシステムが大き過ぎます。
PICはCPUやバス、I/O装置を1つのICにパッケージ化し、制約はありますが、コンパクトかつローコストにまとめています。
とは言っても、コンピュータですので、プログラムにより色々な機能を実現できます。
小粒でも、ピリリと辛い「コンピュータ」なのです。

ICSP用ピンについて (マニュアル P323 28章 インサーキット シリアル プログラミング)
PICkit3ライタと接続して、PIC内部フラッシュROMにプログラムやデータを書き込むのが目的です。
これにはPIC16F1705のRA0,RA1、RA3ピンを併用しますので、オンボード接続の場合、多少制約があります。(注1)
PICキットCPUモジュールを使用する場合は、そのままモジュール基板のICSPピンに差し込むだけでOKです。

インターフェイス (マニュアル P324 図28-3)

PICkit3側           PICキット側内部配線
①VPP/MCLR  --   RA3/MCLRピン(マークを付けておくと便利)
②VDD       --   VDD +5Vを供給
③VSS       --   GND
④ICSP DAT   --   RA0/PGDピン
⑤ICSP CLK   --   RA1/PGCピン
⑥NC         --   受けピンだけ

書込み方法
(1) PICキット CPUモジュールを単独利用して書き込む
   当局はPICキット CPUモジュールにPICkit3ライタを接続して書込みしています。
   このCPUモジュールのICSPピンにPICkit3ライタを直接差し込む、或いはコード延長して差し込むだけでOKです。
   そしてMPLAB'X IPEを使用して書き込みますが、MPLAB’XIDEからでも書込みできます。
   基本的にこのCPUモジュールにVDD5Vを供給し、PICkit3からの給電はしません。
   理由は、PICkit3からの給電では、何故か大丈夫の時とエラーの時があるので、面倒なので全部外部給電と設定しています。
   これで、操作ミス以外でエラーが発生する事は、今の所ありません・・・
   通常はこの方法で書き込みします。

(2) オンボードで書き込む
    作製したPIC基板のICSP端子にPICkit3からのケーブルを差し込み、外部給電で書込みしています。
    また、PICキットCPUモジュールを使用して実験して、他のモジュールを接続したままの状態でも書き込みできます。
    その製作物基板の、あるいはPICキットCPUモジュールICSP端子にケーブルを差し込み、書き込みます。
    プログラム動作中に、いきなり書込みが始まり、終了すると、またいきなりプログラム動作を始めるのが不気味です・・・
    ただ、RA0、RA1、RA3がオープンの場合は問題ありませんが、接続がある場合は注意が必要です。(補足01)


注1)
ICSPピンとPIC併用ピンとの対応はPICの種類によって違う場合があります。
PICキットシリーズで使用しているPICはRA0,RA1,RA3です。

補足01)オンボード書き込みの注意点
①PGC,PGDラインにプルアップ抵抗をつけない
②PGC,PGDラインにコンデンサをつけない
③MCLRラインにコンデンサをつけない
④PGC,PGDラインにダイオードを挿入しない

当局の基本的な対処法
⑤RA3/MCLRピンは10KΩのプルアップ抵抗を付けている。
 基本的にそれにジャンパピン等でただのスイッチにしておき、普段はオフ(プルアップのみ)にしておく
 初めからRA3は回路設計に機能を入れない
⑥RA0/PGD、RA1/PGCピンは基本的にオープン、するとPICkit3のインサーキットデバッガ機能が使える
  ピンを使用する場合、基本的に出力ピン設定にし、RA0-1接続外部機器はCMOSデジタル入力とする(衝突回避)
  これにより、余計な部品を使用しなくて済むし、配線ミスにより接続先の破壊を事前防止する。
14ピンPIC用CPUモジュール基板の製作

まずはCPUモジュールを用意するのですが、下記回路図で製作します。
部品はすべて秋月電子で調達可能で、安価に製作できます。


回路構成
RA0-2、RA4-5、RC0-5のすべてをそのまま基板入出力用ピンに接続
RA3は10KΩでプルアップ
電源入出力3ポート
ICSPポート
I/Oポート11ピン
INPUTポート(RA3)1ピン

使用部品
秋月電子 D基板、ブレッドボード配列(普通配列でも可)
普通軸のピンヘッダ(「普通軸」と「細軸」の2種類売っている)で曲のやつです
14ピン丸穴ソケット(必ず丸穴のソケットにして下さい)
0.1uF積層セラミックコンデンサ2個
電解コンデンサ 220uF
10KΩ抵抗1個


上面図より、
左上が電源からの5Vを接続
右上がICSP端子で、ここにPICkit3ライタを接続
ライタの1ピン(矢印が付いている側)が上面図下側のピンになる様に接続

PIC本体は1,14ピンが画像上側になる様に差し込みます
PIC1ピンの位置に何か目印をくっきりと付けていた方が無難です。
上下間違えて挿入し、電源を入れるとPICが破壊されます。

また、PICのピンはラジオペンチ等で少し内側に曲げて、挿入し易くすると良いです。
PICを買ったばかりの状態では、ソケットに挿入困難です。

← NO-001 PICキットCPUモジュール回路図

← CPUモジュール上面図

← 基板配線図(上から、つまり部品面からみた面

当局はユニバーサル基板を使用する場合、
簡単な回路でも、必ずこの5mmの方眼紙で配線図を書きます
実際の基板はこの通りに配線しているとは限りませんけど・・・

← CPUモジュール完成画像

← CPUモジュール 配線面画像





← 1番ピンの位置にマークしときます

1番ピンはVDDと心に刻みます・・・

← 曲のピンヘッダ(普通) ニッパで切断して使います

秋月にはピンの太さが「普通」と「細」があります。
ここではがっちりしている「普通」ピンを使用しています。
「普通」ピンはブレッドボードには挿入できません。

← CPUモジュールに使用した穴あき基板

秋月電子のユニバーサル基板、通称D基板で2つに分割できます
裏面パターンはブレッドボード配列を使用
ここでは分割して使います

← 使用する穴あき基板の裏面

ブレッドボード配列となっているのが見えますでしょうか?
配線が楽になります

← PICの足曲げ

画像右側が購入当時、画像左側がラジペンで曲げた
曲げないで無理にソケットに突っ込むと、ICのピン(足)が曲がります。
これで基板へのPICの装着がスムーズになります。
基板からPICの取り外しは、専用工具で行った方が良いです。
手で引きはがすと、大概ICのピンを曲げてしまいます・・・、

← PICkit3ライタを基板に直接差し込んだ所

このままではRA0-RA2が事実上使用不能です。

← 延長コードでPICkit3と接続

この場合、差込むピンを間違えないよう注意

LEDモジュールの製作(NO-22 LEDモジュールです)

回路構成
RA4に抵抗と赤色LED
RA5に抵抗と緑色LED

使用部品(すべて秋月電子で購入)
普通ピンソケット4連、16ホールユニバーサル両面基板 連結2枚
470Ω抵抗2個





← 16ホール両面ユニバーサル基板

秋月電子で販売しています。
画像の様に割って2連結状態にします





← ピンソケット(普通)

画像の様にカットして4連にします。









← 完成画像

簡単なのですぐ出来ます
初めてのPIC用ソースファイル

PIC16F1705 アッセンブラ用

 16F1705_LED_TEST01.asm

PIC16F1705 XC8用

 16F1705_LED_TEST01C.c


マイクロチップ純正 統合開発ツール MPLAB X IDE

昔の電子工作?にはパソコンは不要(無かった・・・)でしたが、現在は必須です。
回路図やプリントパターン、部品の入手(重要)や部品のデータシート入手、
ハイレベルOM局のHP、その他もろもろを含めて、必要ツールとなっています。

PICのプログラミングもパソコンおよびファイル操作が必要不可欠です。
マイクロチップホームページから統合開発ツールをインストールします。
その際、XC8コンパイラもインストールします。
また、MPLABXIDE日本語ユーザーズガイドもダウンロードします。
今現在、アッセンブラおよびXC8コンパイラの日本語マニュアルは無いようです。
ページ1の参考文献①②を参考にして下さい。
また、③日本語マニュアルの29章「命令セットのまとめ」は熟読します。
この29章はプリンタで印刷しておくのがお勧めです。

PICへの書き込みにはPICkit3ライタが必要で、高価ですが購入します。
PICkit3ライタの日本語ユーザーガイドもダウンロードしておくのも良いかも

ここで、下記の手順を行える様になる事が最低限の必須事項です。
①MPLABXIDEを起動、エディタを利用してプログラムを作成する
②アッセンブル/コンパイルし、ビルド成功させる
③PICに書き込む

この一連の手順を成功させる事が最初の壁となると思います。
以上がとりあえず行えた場合、「PICキット」で遊ぶ環境が出来た事になります。

まずは、左記ソースファイルを使用して上記手順3ステップを実行してみます。
LEDが交互に光ればOKと言う、単純なプログラムです。
動作すれば、基本ハードウエアの確認が出来た事になります。

Step1 Choose Project




Step2 Select Device



Step3 Select Header




Step4 Select Tool




Step5 Select Compiler
 (アッセンブラ)




Step6 Select Project Name
      and Folder(アッセンブラ)




アッセンブラ版 プロジェクトの作成およびビルドまで一気

① MPLABXIDEを起動する
② 左上の「File」の「New Project」をクリック、すると「New Project」ウインドウが開く
③ Step1 「Choose Project」画面で、このデフォルトのまま、「Next」をクリック
   すなわち、「Microchip Embedded」、「Standalone Project」となる
④ Step2 「Select Device」画面では、「PIC16F1705」を選択、
⑤ Step3 「Select Header」画面は、何もせずこのまま「Next」
⑥ Step4 「Select Tool」画面では、「PICkit3」か「Simulator」を選択、
   当局は通常「Simulator」を選択しています
⑦ Step5 「Select Compiler」画面では、「mpasm」を選択
⑧ Step6 「Select Project Name」で、適当に命名します。
   当局はここでは「LED_TEST01」と記入しました
   「Project Location」では作業するフォルダを指定します
   これで、プロジェクトファイルが作成され、作業可能状態となります。
⑨ プロジェクトフォルダ最上部に「16F1705_LED_TEST01.asm」をコピーします
⑩ 左上ウインドウの「Project」をクリック、
   「Source Files」を右クリックし、「Add Existing Item」を左クリック、
   「Select Item」画面が表示されますので、「16F1705_LED_TEST01.asm」を選択
⑪ 「Source Files」に表示された「16F1705_LED_TEST01.asm」をクリックし、画面表示させる
⑫ ソースファイルを確認したら、画面上部コマンドアイコンのトンカチをクリック
⑬ PICkit3+PICキットCPUモジュールで書き込みし、動作を確認

Step1 Choose Project




Step2 Select Device




Step3 Select Header




Step4 Select Tool




Step5 Select Compiler(XC8)




Step6 Select Project Name
      and Folder(XC8)




XC8版 プロジェクトの作成およびビルドまで一気

① MPLABXIDEを起動する
② 左上の「File」の「New Project」をクリック、すると「New Project」ウインドウが開く
③ Step1 「Choose Project」画面で、このデフォルトのまま、「Next」をクリック
   すなわち、「Microchip Embedded」、「Standalone Project」となる
④ Step2 「Select Device」画面では、「PIC16F1705」を選択、
⑤ Step3 「Select Header」画面は、何もせずこのまま「Next」
⑥ Step4 「Select Tool」画面では、「PICkit3」か「Simulator」を選択、
   当局は通常「Simulator」を選択しています
⑦ Step5 「Select Compiler」画面では、「XC8」を選択
⑧ Step6 「Select Project Name」で、適当に命名します。
   当局はここでは「LED_TEST01C」と記入しました
   「Project Location」では作業するフォルダを指定します
   これで、プロジェクトファイルが作成され、作業可能状態となります。
⑨ プロジェクトフォルダ最上部に「16F1705_LED_TEST01C.c」をコピーします
⑩ 左上ウインドウの「Project」をクリック、
   「Source Files」を右クリックし、「Add Existing Item」を左クリック、
   「Select Item」画面が表示されますので、「16F1705_LED_TEST01C.c」を選択
⑪ 「Source Files」に表示された「16F1705_LED_TEST01C.c」をクリックし、画面表示させる
⑫ ソースファイルを確認したら、画面上部コマンドアイコンのトンカチをクリック
⑬ PICkit3+PICキットCPUモジュールで書き込みし、動作を確認
書き込みできたが動作しない・・・
CPUモジュール基板のチェック等

動作しない(LEDが交互に光らない)場合、原因は基板かツール類の設定かですが・・・
殆どは基板だと思います・・・
このページを完了するには、ほぼ「14ピンCPUモジュール」基板の完成にかかっています。
チェックポイントは下記の通りで、完璧に確認します
①電源ピン+-の短絡チェック
②電源ピン+側とICソケット1ピンとICSP2ピン(VDD)ピンの導通
③電源ピン-側とICソケット14ピンとICSP3ピン(VSS)ピンとすべてのGNDピンの導通
④ICソケットの差込口2-7ピンおよび8-13ピンと対応ピンヘッダの導通チェック
⑤ICソケット4ピン(RA3)とICSP1ピン(MCLR)の導通チェック
⑥ICソケット12ピン(RA1)とICSP5ピン(CLK)の導通チェック
⑦ICソケット13ピン(RA0)とICSP4ピン(DAT)の導通チェック
⑧ピン同士の短絡チェック


当局もそうですが、MPLABXIDEの操作には戸惑う事が多いと思います。
まずは弄ってみるしかないと思います。
当局も弄って、失敗して、を盛大に繰り返しながら現在に至っています・・・ (^_^;)
各局様も最初のこの壁をクリアして、楽しいPICマイコンワールドにご参加ください。
きっと貴局の無線ライフが広がる事と期待しています。

次ページからは、ここで製作したCPU基板を使用した自作プログラミングを行うための、参考的な事を記していきたいと思います。
戻る  実験・製作の記録TOPへ戻る