This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28377D:用于触发中断的 ADC 设置

Guru**** 2461020 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1502867/tms320f28377d-adc-settings-to-trigger-interrupt

器件型号:TMS320F28377D

工具/软件:

我想做以下事情:  

1.当 PWM 计数= 0时、使用 ADC 对我的信号进行采样  

2. ADC 转换完成后、生成转换结束 脉冲。 根据此 EOC 触发中断

这是我的代码:  

PWM 设置:  


EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;//在发生零事件时选择 INT
EPwm1Regs.ETSEL.bit.intEn = 1;//启用 INT  我认为这不是正确的设置
EPwm1Regs.ETPS.bit.INTPRD = ET_1st;//在发生第1个事件时生成 INT

// ePWM ADC 设置
EPwm1Regs.ETSEL.bit.SOCAEN = 1;//启用 ADC A 转换启动
EPwm1Regs.ETSEL.BIT.SOCBEN = 0;//禁用 ADC B 转换启动
EPwm1Regs.ETSEL.bit.SOCASEL = 1;//使能事件时基计数器等于零

ADC 设置:  

AdcaRegs.ADCCTL2.bit.resolution = 0;
AdcaRegs.ADCCTL2.bit.prescale = 0;
AdcaRegs.ADCSOC0CTL.BIT.CHSEL = 0;//SOC0转换映射到 电路板上我的信号的 ADCINA0  
AdcaRegs.ADCSOC0CTL.BIT.ACQPS = 19;//SOC0使用20个 SYSCLK 周期的采样持续时间
AdcaRegs.ADCSOC0CTL.BIT.TRIGSEL = 5;//SOC0在 ePWM1 SOCA 上开始转换
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 ADCINT1 ...我认为这是必需的  
AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0;// EOC0是 ADCINT1触发器

EOC 0如何触发中断?  

有什么想法,如果这看起来不错 ?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    Unknown 说:
    EPwm1Regs.etsel.bit.intn = 1;//启用 INT  我认为这是不正确的设置

    EPwm1Regs.ETSEL.bit.intEn = 1;无必要、因为您未使用 EPWM 中断。 您可以将其设置为0。

    您可以参阅 TRM 的第11.7章 EOC 和中断操作。  每个 SOC 都有相应的转换结束(EOC)信号。 此 EOC 信号可用于触发 ADC 中断。 ADC 可配置为在采集窗口结束或电压转换结束时生成 EOC 脉冲。 这是使用 ADCCTL1寄存器中的 INTPULSEPOS 位进行配置的。

    关于 EOC0触发中断:

    ADC 转换完成时、设置 EOC0标志。

    AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0;设置告诉 ADC 在 EOC0上触发中断。
    AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;设置将启用 ADCINT1中断。
    当设置 EOC0标志时、触发 ADCINT1中断。


    此外、确保您已在 PIE (外设中断使能)寄存器中启用 ADCINT1中断。
    在中断服务例程(ISR)中、应清除 EOC0标志和 ADCINT1中断标志以防止触发多个中断。 TRM 11.7.1中断上溢
    总的来说、您的代码看起来不错、经过这些细微调整、它应该能按预期运行。