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.

[参考译文] CCS/TMS320F28379D:drv8301

Guru**** 2578945 points
Other Parts Discussed in Thread: DRV8301, DRV8305

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/798602/ccs-tms320f28379d-drv8301

器件型号:TMS320F28379D
主题中讨论的其他器件:DRV8301DRV8305

工具/软件:Code Composer Studio

我正在使用控制套件中提供的 mono_servo 电机控制示例,某些代码不是很清晰。  感谢您的帮助

空 InitMotor1_DRV_GPIO (空)

//配置为输出:电机1 - EN-GATE
GPIO_WritePin (motor1_EN_GATE _GPIO、0);//禁用 EN_GATE
GPIO_SetupPinOptions (motor1_EN_GATE _GPIO、GPIO_OUTPUT、GPIO_异 步);
GPIO_SetupPinMux (motor1_EN_GATE _GPIO、0、motor1_EN_GATE _MUX);

#IF (DRV_motor1 = DRV8301)
//配置为输出:电机1 - DRV8301的 DC-CAL
GPIO_WritePin (motor1_DC_CAL_GPIO、1);//将 DC-CAL 设置为1以禁用放大器
GPIO_SetupPinOptions (motor1_DC_CAL_GPIO、GPIO_output、GPIO_异 步);
GPIO_SetupPinMux (motor1_DC_CAL_GPIO、0、motor1_DC_CAL_MUX);
其他
//配置为输出:电机1 - DRV8305的 WAKE
GPIO_WritePin (motor1_WAKE_GPIO、0);//将 WAKE 设置为0 (默认状态)
GPIO_SetupPinOptions (motor1_WAKE_GPIO、GPIO_OUTPUT、GPIO_异 步);
GPIO_SetupPinMux (motor1_WAKE_GPIO、0、motor1_WAKE_MUX);
#endif

  ?禁用 EN_GATE 并将 DC-CAL 设置为1以禁用放大器

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

    此外、在 F2837xS_IO_assignment.h 中 、某些 GPIO 端口的定义与注释不同

    注释为:

    /*********
    外设分配:
    电机1:
    ePWM => EPWM7、EPWM8、EPWM9 --> A、B、C
    - QEP => EQep1
    - SPI => SPIA

    模拟信号-电机1
    VDC ADC 14.
    VA ADC B1
    VB ADC B4
    VC ADC B2
    IA ADC A0
    IB ADC B0
    IC ADC A1

    秘书长的报告 /

    代码是:μ F

    #define IFB_A1 AdcaResultRegs.ADCRESULT0
    #define IFB_B1 AdcbResultRegs.ADCRESULT0
    #define IFB_C1 AdcaResultRegs.ADCRESULT2
    #define IFB_A1_PPB ((signed int) AdcaResultRegs.ADCPPB1RESULT.ALL)
    #define IFB_B1_PPB ((signed int) AdcbResultRegs.ADCPPB1RESULT.ALL)
    #define IFB_C1_PPB ((signed int) AdcaResultRegs.ADCPPB3RESULT.ALL)

    #if (motor1_DRV = DRV8301)
    #define VFB_A1 AdcbResultRegs.ADCRESULT4
    #define VFB_B1 AdcbResultRegs.ADCRESULT3
    #define VFB_C1 AdcbResultRegs.ADCRESULT2
    #define VFB_DC1 AdcbResultRegs.ADCRESULT6

     

     

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

    寄存器 GPIO、该代码尝试针对特定配置设置 GPIO 引脚、例如输入或输出、同步或异步等 建议查看 TRM 中的 GPIO 一章。 该方法不直接使用位字段编程、而是使用 API 方法执行相同的任务。 您可以重写它。

    例如、寄存器 ADC

    相电流 A 在 ADC A0上可用

    读取相电流 A 的结果寄存器将为 AdcaResultRegs.ADCRESULT0

    这是在.h 文件中给出的值

    IA ADC A0

    #define IFB_A1 AdcaResultRegs.ADCRESULT0

    IO assignment.h 中的宏是为了避免在代码中间直接引用外设寄存器。 通过使用宏、可以通过在.h 文件中一次而不是在实际代码中多次更改代码来将代码移植到不同的硬件平台。