PICマイコン 4Hzパルス ソフト設計

エレキ設計

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ソフトで 下記、項目を設定します。

  1. PICマイコン内のシステムクロック16MHz設定
  2. RB0を出力ポートに設定
  3. RA1を入力ポートに設定
  4. 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” 表示で、プログラム書き込み正常終了確認です。

コメント