PIC16F1778マイコンのソフトプログラムを使い、4Hzパルスを発生させます。
4Hzパルス ソフト仕様
下記に、4Hzパルス ソフト仕様を示します。
- PICマイコン内のHEPLL(phase locked loop) を使いシステムクロック16MHz選択
- PB0を出力ポートに設定して、4Hzパルスを出力
- PA1を入力ポートに設定して、4Hzパルス出力をON/OFF制御
- 遅延関数を使い、4Hzパルスを生成
(精度は、問いません) - 上記をまとめるメインプログラム “main.c” 自動生成と編集
- プログラム書き込み時、VDD=5V
ソフト開発支援環境
- MPLAB X IDE 統合開発環境
内装されている、MCC(MPLAB Code Configurator)も使います。 - MPLAB XC8コンパイラ
- PICkit4 インサーキットデバッガー
最新版:PICkit5が有り(2023/12/14現在)
MPLAB X IDE、XC8は、マイコロチップ社製フリーソフトです。
PICkit4は、有料 価格は、13,800円(秋月電子通商で2023/6/14 購入)
プログラム書き込み回路
PICkit4を接続する回路を、下記に示します。
”U3 ブロック1”のコネクタは、ICSP インターフェース(I/F)です。
ICSP I/Fは、PICkit4と接続します。
PICkit4は、USB I/Fを経由してPC:パソコンと接続しプログラムをマイコン内のフラッシュメモリーに書き込む事や、ソフトデバックを行います。
MPLAB X IDEを起動して、プログラムを作成
プロジェクト名(フォルダー)の作成
”MPLAB X IDE (v6.05)”を左ダブルクリックして、立ち上げます。
①:ウィンドウ 左上側の”File”→”New Project”を左クリックで、下記、ウィンドウ表示。
デフォルトのまま、”Next”左クリック。
②:”Device”は、使用する
マイコン”PIC16F1778″を入力。
”Tool”では、”PICkit4″を入力。
”Next”左クリック。
→③:”XC8”を左クリック。
”Next”左クリック。
”pic-as”は、アセンブラ言語
④:”Project Name”に”Sys16Hz_LED”
(フォルダー名)と入力。
”Project Location” Pathを指定。
”Encooding” “ISO-2022-JP”を選択。
(コメントに日本語入力)
”Finish”左クリック
→⑤:プロジェクトウィンドウに、プロジェクト名(Sys16Hz_LED)が生成。
システムクロックは、16MHzで単位違いが紛らわしいですが、
上記ファイル名称としました。
MCCの利用
MCCソフトで 下記、項目を設定します。
- PICマイコン内のシステムクロック16MHz設定
- RB0を出力ポートに設定
- RA1を入力ポートに設定
- MPLAB X IDE で提供しているタイマー関数を設定
下記、①、②は、初回時のみ、設定
①:MPLAB X IDEのメニー”MCC”を左クリック
”MCC Classic”の”Select MCC Classic”を
左クリック
→②:”Optional Content”レ点無し
(今回、利用しないため)
”Finish”左クリック
PICマイコン内のシステムクロック16MHz設定
MCCモード(”MCC”メニー左クリック)
③:”System Module”左クリック→”Easy Setup”、”INTERNAL OSCILLATOR”ウインドウを
表示します。
下記、A・B・C の選択で、システムクロック16MHzに出来ます。
”WAT”と”Programming”は、チック無しとします。
PB0を出力ポートに設定(PB0ポート:4Hzパルス出力動作は、”main.c”で記述)PA1を入力ポートに設定(PA1ポート:4Hzパルス出力のON/OFF制御動作は、”main.c”で記述)
④:”Pin Module”→”Easy Setup”
ウインドウを表示。
RA1入力ポート設定:”WPU”左クリック。
RB0出力ポート設計定:”Output”左クリック。
”Pin module”に反映
⑤:ワーニング発生対策:
下記の”Notifications [MCC]”ウィンドウに、ワーニングの表示が有ります。
ワーニングを消すためには、プルアップ機能を可能にします。
”Pin Module”→”Registers”左クリック、ウィンドウを表示。
”Register:OPTION_REG”の”nWPUEN”ビットを”enabled”選択。
注意:設定後、”Notifications [MCC]”ウィンドウでワーニングの表示が消える事を確認して下さい。
PA1,PB0ポートの設定が出来ました。
タイマー関数を設定
MCCを使い、MPLAB X IDE で提供している タイマー関数を引用する事が出来ます。
(独自で、タイマープログラムを作成する必要が有りません。)
⑥:A部 ”Device Resources”の”Foundation Services”中の”DELAY”左ダブルクリックして
”Project Resources”の”Foundation Services”に自動移動。
B部 “DELAY”左クリック ”Delay bet. . . .instructions”選択。
⑦:”Generate”左クリック。 DELAY関数を生成します。
”Generation complete”表示で正常終了 確認。
メインプログラム “main.c”自動生成と編集
”/Sys16Hz_LED/Source Files/main.c”が、自動生成されます。下図参照。
“// Add your application code”以降に4Hzパルス出力プログラムを追加します。
A部は、2回ループして4Hzパルス生成(オーバーヘッドを最小にしたつもりです。)
”DELAY_milliseconds(125)”関数は、命令フェッチと命令実行の時間を使い
遅延時間125msecを生成しています。
MPLAB XC8コンパイル実行
作成したプログラムをPICマイコン用にコンパイルします。下図、参照
A部 ”ビルド”を左クリックして、XC8コンパイルを実行
B部 コンパイラが正常に終了すると、メッセージ欄に”BUILD SUCCESSFUL (total time:xs)”等を表示します。
プログラム書き込み
上図、”プログラム書き込み回路”とMPLAB X IDEソフト環境下で、書き込みを行います。
”MPLAB X IDE”ウィンドウの”File”→”Project Properties(Sys16Hz_LED)”を左クリック
①:”Project Properties”ダイアログを表示
”PICkit4…..”を選択
“Apply”左クリック
→②:”Project Properties”ダイアログを表示
A部:”PICkit4″を選択
B部:”Power…..”レ点、
”Voltage….” “5.0”設定
D部:”Apply”、E部:”OK”左クリック
プログラムを書き込むための準備が整いました。
③:メニーの”Make and Program Device Main Project”を左クリック。
④:警告メッセージは、問題無いことを確認して”OK”左クリック→書き込み開始
(書き込む電圧が、回路を含め5V電源で問題無いことを確認)
PICKIT4に付いているLEDの色が、”青色”→”オレンジ色”に変わり、書き込みが終了します。
⑤:”Output”ウィンドウに、結果表示
A部:”Programming /Verify complete” 表示で、プログラム書き込み正常終了確認です。
コメント