2021年08月21日

PIC32MX2XX RB14ポート注意点

以前に紹介したRB5ポート注意点に続いて、RB14ポートについても同じような設定ミスによって意図した動作をしないという現象に遭遇したため、紹介したいと思います。

今回はRB14をSPIマスタのSCKに設定しました。CSやデータは出力されているものの、RB14ポートからクロック信号が出ないという現象に遭遇しました。また、USB初期化関数内のPLIB_USB_Enableを実行する前はクロックが出るものの、当該関数の実行後はクロックが出なくなることからUSB関連の設定に問題があることが分かりました。

VBUS_Setting.jpg

RB14ポートのUSB関連設定を確認すると案の定、RB14にVBUSONポートの機能があることが分かりました。VBUS関連の設定を調べるとDeviceConfig3のVBUSONが有効(ON)となっていることが分かりました。VBUS機能は使用していないため、OFFにするとUSB初期化関数内のPLIB_USB_Enable実行後でもSPIのクロックが出るようになりました。USBの初期化によってSPIのクロック出力設定がVBUSに上書きされていたようです。

VBUS_OFF.jpg

RB14をSPIとして機能割り当てしているにも関わらず、DeviceConfig3のVBUSON設定が残っていたため、うまく動かなかったようです。以前も自らに忠告しておきながら、また、USB関連の設定を見落としてデバッグに時間を要してしまいました。特にUSBやJTAG系の設定はGPIO設定とは設定項目が異なるため、見落としがちなので注意が必要です。Harmony ConfiguratorはGUI上で簡単に設定できるものの、各設定の矛盾まではチェックしてくれないのでこのような不具合が発生する可能性があります。
posted by Crescent at 00:00| Comment(0) | 組込ソフト | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。