CuriosityでmTouchを試してみる。その2

その1ではプロジェクトを作成してパッケージの指定までを行いました。

次にやることはシステムクロックの設定、ピンアサインなどです。

まずシステムクロックを32MHzに設定します。
"System Clock Select" を "FOSC" に、"Internal Clock" を "8MHz_HF" に、"PLL Enabled" にチェックをします。
これでPLLを使用して4倍にします。

次に、"Device Resources" から "ADC" を追加します。"Peripherals" の "ADC [PIC10 /..." をダブルクリックして "Project Resources" に追加できます。
同様に下の "Libraries" にある "mTouch" ライブラリを追加します。

さて、ここからちょっと変わります。CVD(Capacitive Voltage Divider)によるmTouchをMCCで実現するということで、mTouch® Capacitive Sensing Library Module for MPLAB® X Code Configuratorを参照していきます。

まず、IDEの下の方にある "Notifications [MCC]" を見ると、警告が一つあります。ADCのサンプリングタイムが短すぎる、という警告が出ていますので、これをなくします。

左側のコラムにある "Project Resources" からADCを選択し(あるいは真ん中のパネルのADCタブを選択し)、"ADC Clock" を "FOSC/32" に設定します。
すると警告がすぐに消えます。

次に、真ん中のパネルの "mTouch" タブを選択します。その左のコラムから、"Hardware Sensors" を選択すると、"To create hardware sensors, assign CS pins in the Pin Manager Grid View" とあります。Curiosity の User's Guide にある回路図で、mTouch Button が RC1 に割り当てられているので、Pin Manager の mTouch の CS に、PortC の 1 を割り当てます。

すると Hardware Sensors のところに "Sensor_AN5:RC1/AN5" が追加されます。ここではキャプチャのために "mTouch" のタブを外に移動しています。
まず "Hardware Sensors" を選択し、"Scan Rate Control" が "Free Running Mode" であることを確認します。 もうひとつの選択しである "TIMER1_Scheduling" は、TIMER1を使ってハードウェアで起動するモードですが、ここではメインループ内で回す方向で考えます。実際にはメインループの中で、MTOUCH_Service_Mainloop( ) を呼び出す処理を入れます。
次に "Sensor_AN5:RC1/AN5" を選択すると、右側に "Sensor Settings" があらわれますが、まずはここはデフォルトのままにしておきます。
この部分の数値などは、センサのサイズや寄生容量などの条件によって調整する、ということですので、実アプリケーションではいじることもあるかもしれません。

次に "Buttons" の定義です。左のコラムから "Buttons" を選択し、現れた "Create New Button" をクリックします。
CDBではボタンの数は1つなので "Number of Button" は "1"、また "Interface Method" はコールバック("Callback function notifies application")とポーリング("Application will poll button status")の2種類から選べますが、今回はコールバックを選択して "Add" ボタンをクリックします。

追加された "Button0:No sensor selected" を選択して、 "Sensor" を "Sensor_AN5" に割り当てます。

次は割り込みの設定です。左のコラムで "Interrupt Module" を選択すると(あるいは真ん中のパネルの "Interrupt Module" を選択すると)、TMR6が有効化されているのがわかります。
ソフトウェアCVDではタイマで動作を行うために、専用にタイマが必要なようです。これがハードウェアCVDでは自動でやってくれるようです。PIC16F1619はCVDを持っていないため、ソフトウェアで実現する必要があるので、TMR6を割り当てます。

CVDの動作は、プリチャージ(+)→取り込み→AD変換→プリチャージ(-)→取り込み→AD変換の繰り返しで、それぞれのタイミングをライブラリ側で制御するので、TMR6の細かい設定をする必要はないということのようです。

mTouch関連の設定はこれで終わっているのですが、タッチを判定した結果を確認する方法がありません。なのでこの部分はLEDを光らせることにします。タッチで点灯、リリースで消灯でいいでしょう。
CDBの回路図を参照すると、RC5 が D7 の LED に接続されていますので、これを使います。D7はポテンショメータ横のLEDのならびの一番左側にあります。
"Pin Manager" で "RC5" の "Output" をロックします。

また、あとでわかりやすいように、"Pin Module" で "RC5" の "Custom Name" を "LED" に設定しておきます。

"Notifications [MCC]" のタブで警告などがないことを確認します。

問題なければ、左のコラムの上の方にある "Generate" ボタンをクリックします。

すると "Output - MPLAB Code Configurator" のタブにずらずらっとメッセージが表示されて、必要なソースファイルが生成されます。

その3へ続く

0 件のコメント:

コメントを投稿

Vimの補完プラグインをインストール。その4

Vimの補完プラグインをインストール。その3 で、 ddc-tabnine が使えそうです、などと書いたのですが、早速やってみました。 まず、tabnineのバイナリを用意しないといけません。がどうにもTabNineのサイトがわかりにくいので、 tabnine-nvim にあるダ...