Thread 中讨论的其他器件:TMS320F28035、 C2000WARE
工具/软件:
您好:
我正在尝试配置 TMS320F28035 上的 ADC、以使用内部触发实现连续的 ADC 转换、而不涉及 CPU 中断或 ISR。
我的目标是:
- 使用 ADCINT1 在每次转换后在内部重新触发 SOC3。
- 避免触发 ADC 中断(无 ISR 处理)。
- 在不同的功能中手动收集 AdcResult.ADCRESULT3。
以下是我使用的配置:
//为 ADCINA3 配置 SOC3(电流检测 IPM ADC)
AdcRegs.ADCSOC3CTL.BIT.ACQPS = 6; //将采样保持 (S/H) 持续时间设置为 6 个周期
AdcRegs.ADCSOC3CTL.BIT.CHSEL = 3; //选择通道 ADCINA3
AdcRegs.ADCINTSOCSEL1.bit.SOC3 = 1;//从 ADCINT1 触发 SOC3
AdcRegs.INTSEL1N2.bit.INT1SEL = 3; // EOC3 为 ADCINT1 触发
AdcRegs.INTSEL1N2.bit.INT1E = 0; //禁用 CPU 中断、仅使用内部触发器
AdcRegs.INTSEL1N2.bit.INT1CONT = 1; //允许 ADCINT1 连续重新触发、而无需等待标志清除
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除中断标志
AdcRegs.ADCSOCFRC1.bit.SOC3 = 1;//通过手动强制 SOC3 启动一次连续触发器
这适用于上电时的初始转换(通过强制 SOC3)、我会得到一个有效的结果。 但是、当 I 更改输入电压时、后续转换不会自动发生。 似乎从 ADCINT1 到 SOC3 的内部触发器没有再次触发。
我还尝试了以下配置(认为需要启用中断才能正常工作):
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; //为 EOC 结果锁存设置中断脉冲位置
AdcRegs.INTSEL1N2.bit.INT1E = 1; //启用 ADCINT1
AdcRegs.INTSEL1N2.bit.INT1CONT = 1; //连续模式
但这会导致非法的 ISR 陷阱、可能是因为我没有在 PIE 中处理 ADCINT1 中断(因为我不想使用 ISR)。
问题:
- 在不需要 CPU 中断或 ISR 的情况下、允许 ADCINT1 持续触发 SOC3 的正确配置是什么?
- 是否需要启用 INT1E 才能使内部触发器正常工作?
- 在这种情况下、INTPULSEPOS = 1 是否必要?
- 我是否存在任何已知的限制或时序要求?
提前感谢您的帮助!


