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