1730201_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

1730201_ja-JP

1730201_ja-JP

S32K116 モーター制御 速度制御用のスロットル(ポテンショメーター)を追加

ポテンショメーター電圧を測定するためにADCチャネルADC0_SE13を追加したいです。モーターの速度を制御するため。いろいろ試してみましたが、PDBブロックに正しく設定することができませんでした。ProcessorExpertでADCを適切に設定し、その後PDB0を設定しました。いろいろ試してみましたが、毎回MCATツールでPDB0エラーが発生します。

以下のファイルでは何をすれば良いですか?私はk116 FOC 2shのサンプルコードを使用しています。

1. これを実現するために必要な適切な設定は何ですか?

2. プロセッサエキスパートでのADC構成?

3. プロセッサエキスパートでのPDB設定?

4. periferals_config.c のコード変更?

5. main.c のコード変更?

6. meas_s32k.c のコード変更?

客観的:

1. ポテンショメータを速度制御用のスロットルとして接続します。

2. PDBを介してADCを連続的にトリガーする。

3. 割り込みルーチンでADC値を読み取る。電流と電圧はmeas.cを使用して測定されます。

4. スロットル操作に応じて速度を設定する。ADC割り込みルーチン内。どの変数に速度が関係していますか?

これは設定コードで、数行を修正しています。そしてプロセッサの専門家。

void McuPdbConfig(void)
ヤージュ
/* PDB0モジュールの初期化 */
PDB_DRV_Init(INST_PDB0, &pdb0_InitConfig0);

/* PDB0 CH0 プリトリガー初期化 */
PDB_DRV_ConfigAdcPreTrigger(INST_PDB0, 0, &pdb0_AdcTrigInitConfig0);
PDB_DRV_ConfigAdcPreTrigger(INST_PDB0, 0, &pdb0_AdcTrigInitConfig1);
PDB_DRV_ConfigAdcPreTrigger(INST_PDB0, 0, &pdb0_AdcTrigInitConfig2);
>>>>>//PDB_DRV_ConfigAdcPreTrigger(INST_PDB0, 0, &pdb0_AdcTrigInitConfig3);

/* PDB0の剰余値を設定します */
PDB_DRV_SetTimerModulusValue(INST_PDB0, 7800);

PDB_DRV_SetAdcPreTriggerDelayValue(INST_PDB0, 0, 0, 0);
PDB_DRV_SetAdcPreTriggerDelayValue(INST_PDB0, 0, 1, 1200);
>>>>//PDB_DRV_SetAdcPreTriggerDelayValue(INST_PDB0, 0, 2, 2400);


Screenshot from 2023-09-27 11-57-05.pngScreenshot from 2023-09-27 11-57-05.png2023-09-27 11-57-05 のスクリーンショット.png

Re: S32K116 Motor Control add throttle (potentiometer) for speed control

S32K1xxモーター制御プロジェクトでPDBブロックを使ってADC0_SE13でポテンショメータースロットルを追加する場合、MCATツールの根本的な問題はチャネル割り当ての競合やトリガー前のシーケンスカウントのずれに起因します。モータ制御(FOC 2シャント)では、PDBチャネル0がPWMリロードと同期した正確な電流サンプリングに多用されます。スロースロットル測定を追加するには、別のPDBチャネル(可能であれば)か、メインPWMハードウェアトリガーを妨げずに独立したプリトリガーシーケンスとして追加する必要があります。

Re: S32K116 Motor Control add throttle (potentiometer) for speed control問題が解決しました。COCOフラグをクリアするためにADC値を読み取るのを忘れていました。
タグ(1)
評価なし
バージョン履歴
最終更新日:
金曜日
更新者: