我想添加ADC通道ADC0_SE13来测量电位器电压。控制电机转速。我尝试了很多方法,但仍然无法在PDB块中正确设置它。ADC 已在 ProcessorExpert 中正确配置,然后我配置了 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);
截图来自 2023-09-27 11-57-05.png
要在 S32K1xx 电机控制项目中使用 PDB 模块通过 ADC0_SE13 添加电位器油门,MCAT 工具的核心问题源于通道分配冲突或预触发序列计数未对齐。在电机控制(FOC 2-分流)中,PDB 通道 0 通常被大量用于与 PWM 重载同步的精确电流采样。添加慢速油门测量需要单独的 PDB 通道(如果可用)或将其添加为独立的预触发序列,而不会干扰主 PWM 硬件触发信号。