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.

[参考译文] TMS320F28377S:ADC 采样

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/652991/tms320f28377s-adc-sampling

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE

您好!

我正在尝试从 ADC 采样并使其从 CPU 定时器0触发、但它只是不想在引脚 A2上启动转换。 以下是配置函数:

_interrupt void CPU_timer0_ISR (void)

CpuTimer0.InterruptCount++;
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;


空配置 ADC (空)

EALLOW;

//
//写入配置
//
AdcaRegs.ADCCTL2.bit.prescale = 6;//将 ADCCLK 分频器设置为/4
AdcSetMode (ADC_ADCA、ADC_resolution_12位、ADC_SIGNALMODE_SINGLE);

//
//将脉冲位置设置为晚期
//
AdcaRegs.ADCCTL1.bit.INTPULSEPOS=1;

//
//为 ADC 加电
//
AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;

//
//延迟1ms 以允许 ADC 加电时间
//
DELAY_US (1000);

EDIS;

void SetupADC_tint (uint16通道)


//
//选择要转换的通道和转换结束标志
//
EALLOW;
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0将转换引脚 A2
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 14;//采样窗口为100个 SYSCLK 周期- 12位
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 1;// CPU 定时器0上的触发
AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0;// SOC0结束将设置 INT1标志
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除
EDIS;


中断 void adca1_ISR (void)

//DAC_PTR[DAC_num]->DACVALS.ALL = AdcaResultRegs.ADCRESULT0;
stejt = AdcaResultRegs.ADCRESULT0;
//stejt = 4000;

编辑

我已将 AdcaRegs.ADCSOC0CTL.bit.CHSEL 更改为2、且 stejt = AdcResultRegs.ADCRESULT2;但即使在我向 A2引脚施加3.3V 电压后、变量 stejt 中仍然没有任何内容

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

    是否发生 CPU 定时器 ISR? 是否发生 ADC ISR?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CPU 定时器发生、而 ADC 剂量不是。 这可能会有所帮助

    PieVectTable.ADCA1_INT =&adca1_ISR;
    PieVectTable.TIMER0_INT =&CPU_timer0_ISR;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nakon、

    我认为您还需要在 ADC ISR 中使用 PIE 确认命令、如果您为中断 ADCA1启用了正确的 PIE 中断和 CPU 中断、这一点并不清楚。 查看 C2000ware 中的 ADC 示例、因为这些示例应使用 ADC 中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试从其中一个示例(ADC_SoC_ePWM)复制代码并更改这些值、但我无法使其正常工作。 我找不到一个使用 CPU 计时器作为触发器的示例。 中断 ADCA1的正确 PIE 中断和 CPU 中断是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    关于这一主题的讨论继续在这里进行:
    e2e.ti.com/.../652991