私のハードウェアは以下の通りです。
スタートガイドに示されているように接続しました
エンコーダーをエンコンダに対応するピンに直接接続し、(Anegated、Bnegated、Inegated)を落としました。アプリケーションハブから提供されたコードでENCODER 1を設定しており、セットアップ部分で以下の動作をします:
Siul2_Port_Ip_SetInputBuffer ( NULL_PTR , NULL_PTR , 1 , 54 , 3 U ) ;
//これは実質的に次のように機能します:
//IP_SIUL2->IMCR[54] = SIUL2_IMCR_SSS(3U);
/* eMIOS0_CH7 の入力を TRGMUX_OUT_38 に割り当てます */
Siul2_Port_Ip_SetInputBuffer ( NULL_PTR , NULL_PTR , 1 , 55 , 4 U ) ;
結果
Lcu_Ip_SyncOutputValueType EncLcuEnable [ 6 U ] ;
EncLcuEnable [ 0 ] .LogicOutputId = LCU_LOGIC_OUTPUT_8 ;
EncLcuEnable [ 0 ] . Value = 1 U ;
EncLcuEnable [ 1 ] . LogicOutputId = LCU_LOGIC_OUTPUT_9 ;
EncLcuEnable [ 1 ] .値= 1 U ;
EncLcuEnable [ 2 ] . LogicOutputId = LCU_LOGIC_OUTPUT_10 ;
EncLcuEnable [ 2 ] .値= 1 U ;
EncLcuEnable [ 3 ] . LogicOutputId = LCU_LOGIC_OUTPUT_11 ;
EncLcuEnable [ 3 ] .値= 1 U ;
Lcu_Ip_SetSyncOutputEnable ( EncLcuEnable , 4 U ) ;
そして最後に
AEC_VDDE_Enable(1);
エンコーダーを接続せずに実行すると、アプリケーションは正常に動作します(センサーレス)。エンコーダーを接続して再実行すると、すぐにエラーが発生します。デバッグの結果、以下のことが分かりました。
これはオーバーカレントイベントに対応します
#define AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_MASK( 0x8U)
#define AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_SHIFT( 3U)
この問題をどう解決すればいいでしょうか?どんなアドバイスでもいただければ幸いです。
こんにちは、 @alovi さん。
エンコーダへの電源供給にVDDEを使用しているとのことですね。しかし、VDDEの出力電流には制限がある。
175mAは過電流検出の最大閾値であり、最小閾値は規定されていないことにご注意ください。同時に、VDDEピンは5Vで最大30mAの連続電源を供給できます。
エンコーダのデータシートを見ると、負荷なしでも最大40 mAの電流消費が可能で、これはすでにサポートされるVDDE能力を上回っています。
よろしくお願いいたします。
ダニエル
基板上の他のピンでエンコーダーに電源を供給できるものはありますか?それとも外部電源で電源を供給する必要がありますか?
こんにちは、 @alovi さん。
残念ながら、外部機器を内部レギュレータから供給できるのはVDDEのみです。
この場合、外部のレギュレーターが必要です。
よろしくお願いいたします。
ダニエル