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.

[参考译文] TMS320F2800156-Q1:ADC

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1426879/tms320f2800156-q1-adc

器件型号:TMS320F2800156-Q1
Thread 中讨论的其他器件:C2000WARE

工具与软件:

你好、专家

当我使用 GPIO0、GPIO1、GPIO2、GPIO3、GPIO4、GPIO5作为 PWM_uH、PWM_ul、PWM_VH、PWM_vl、PWM_wh、PWM_wl 时。

ADC 设置:

使用了 epmw1_SOCA 触发器 soc0、soc1。

选择 ADCA-INT3-SOC1、启用 ADC 中断

当图中将 PWM GPIO 配置为 altfunction 1时、会发生 ADC 中断。

但当我在 图中使用 GPIO alt函 数15时、不会发生 ADC 中断。

为什么?

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

    器件型号:TMS320F2800156-Q1

    工具与软件:

    你好、专家

    当我使用 GPIO0、GPIO1、GPIO2、GPIO3、GPIO4、GPIO5作为 PWM_uH、PWM_ul、PWM_VH、PWM_vl、PWM_wh、PWM_wl 时。

    ADC 设置:

    使用了 epmw1_SOCA 触发器 soc0、soc1。

    选择 ADCA-INT3-SOC1、启用 ADC 中断

    当图中将 PWM GPIO 配置为 altfunction 1时、会发生 ADC 中断。

    但当我在 图中使用 GPIO alt函 数15时、不会发生 ADC 中断。

    为什么?

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

    我没有看到哪个通道输出 PWM 配置与 ADC 中断相关

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

    尊敬的 Zhang:

    接收到 ePWm1触发器时、会发生 SOC 事件。 当转换完成时、会产生 ADC 中断。  无论 PWM GPIO 选择如何、都要进行这种操作。

    请参阅 C2000ware ADC 示例

    [安装路径]\driverlib\f280015x\examples\adc

    您能在两种情况下发送您的代码吗?  

    谢谢!

    Susmitha

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

    初始代码是参考 C2000ware ADC 示例

    区别是什么  

    生成 ADC 中断。

    // gpio0->gpio0->pump_uH
    GPIO_setPinConfig (GPIO_0_EPWM1_A);

    GPIO_setPinConfig (GPIO_2_EPWM2_A);

    GPIO_setPinConfig (GPIO_4_EPWM2_A);

    GPIO_setPinConfig (GPIO_1_EPWM1_B);

    GPIO_setPinConfig (GPIO_3_EPWM2_B);

    GPIO_setPinConfig (GPIO_5_EPWM3_B);

    //ePWM 通道
    #define MTR1_PWM_U_BASE EPWM1_BASE
    #define MTR1_PWM_V_BASE EPWM2_BASE
    #define MTR1_PWM_W_BASE EPWM3_BASE

    未生成 ADC 中断。

    // gpio0->gpio0->pump_uH
    GPIO_setPinConfig (GPIO_0_EPWM3_A);

    GPIO_setPinConfig (GPIO_2_EPWM4_A);

    GPIO_setPinConfig (GPIO_4_EPWM1_A);

    GPIO_setPinConfig (GPIO_1_EPWM3_B);

    GPIO_setPinConfig (GPIO_3_EPWM4_B);

    GPIO_setPinConfig (GPIO_5_EPWM1_B);

    //ePWM 通道
    #define MTR1_PWM_U_BASE EPWM3_BASE
    #define MTR1_PWM_V_BASE EPWM4_BASE
    #define MTR1_PWM_W_BASE EPWM1_BASE

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

    尊敬的 Zhang:

    以上配置看起来正常。 在这两种情况下如何配置中断?

    谢谢!

    Susmitha

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

    ADC_setInterruptSource (MTR1_ADC_INT_BASE、MTR1_ADC_INT_NUM、MTR1_ADC_INT_SOC);

    // ADC 中断
    #define MTR1_ADC_INT_BASE ADCA_BASE // ADCA-A5*/C2 -SOC8
    //ADCA_INTx (1~4)
    #define MTR1_ADC_INT_NUM ADC_INT_Number3 // ADCA_INT3-SOC1
    //与相电流样本匹配
    #define MTR1_ADC_INT_SOC ADC_SOC_NUMBER1 // ADCA_INT3-SOC1

    //ePWM 配置

    //设置事件触发选择寄存器(ETSEL)
    ePWM_setInterruptSource (obj->pwmHandle[0]、ePWM_INT_TBCTR_U_CMPA);

    EPWM_setADCTriggerSource (obj->pwmHandle[0]、EPWM_SOC_A、
    EPWM_SOC_TBCTR_U_CMPA);

    ePWM_enableADCTrigger (obj->pwmHandle[0]、ePWM_SOC_A);

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

    尊敬的 Zhang:

    我们在 C200ware 示例中提供了 ex2、它与您正在执行的操作类似。 这是路径。

    [安装路径]\driverlib\f280015x\examples\adc

    如果您能够解决问题、请告诉我、如果您有其他问题、请联系我。

    谢谢!
    Susmitha