您好!
我们正在使用 BiSS 编码器开发运动控制系统、我已开始使用 TI BiSS-C 库。
当我使用高达7.1MHz 的库函数时、我可以毫无问题地读取编码器。
遗憾的是、当我尝试使用 EPWM1-2-3输出驱动 BLDC 电机时、问题就会开始。 当 BiSS 读取开始时、它终止 EPWM1、2、3。 一个周期之后、当 BiSS 读数未发生时、ePWM 返回正常状态。 (对于每个周期、我将再次向 PWM1-2-3寄存器写入%50占空比)
下面是一张示波器图片、显示了我的问题。
如何停止此操作? 为什么 PM_Bissc_startOperation 或 PM_Bissc_setupNewSCDTransfer 会导致这种情况?
此致、
Erman
其他配置信息:
BiSS 使用的是 SPIA。
因此、对于输入栏:
InputXbarRegs.INPUT1SELECT = 16;// INPUTXBAR TRIP1 -> GPIO16
配置 EPWM4
EPwm4Regs.TZCTL.bit.TZA = 1;
EPwm4Regs.TZCTL.bit.TSB = 1;
EPwm4Regs.TZFRC.bit.OST = 1;
对于 GPIO:
//GPIO6和 GPIO7的 PWM 模块
GPIO_setPadConfig( 6, GPIO_PIN_TYPE_STD );
GPIO_setPinConfig (GPIO_6_EPWM4A);//将 GPIO6配置为 bissC Clk 主站
GPIO_setPadConfig( 7, GPIO_PIN_TYPE_STD );
GPIO_setPinConfig (GPIO_7_EPWM4B);//将 GPIO7配置为 SPI 时钟从器件
// GPIO16是 MOSI 引脚
GPIO_setPadConfig( 16, GPIO_PIN_TYPE_STD );
GPIO_setPinConfig (GPIO_16_SPISIMOA);
GPIO_setQualificationMode( 16, GPIO_QUAL_ASYNC);
// GPIO17是 MISO 引脚
GPIO_setPadConfig (17,GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig (GPIO_17_SPISOMIA);
GPIO_setQualificationMode( 17, GPIO_QUAL_ASYNC);
// GPIO18是 SCLK 引脚
GPIO_setPadConfig( 18, GPIO_PIN_TYPE_STD );
GPIO_setPinConfig (GPIO_18_SPICLKA);
GPIO_setQualificationMode( 18, GPIO_QUAL_ASYNC);
// GPIO19为/CS 引脚
GPIO_setPadConfig (19,GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig (GPIO_19_SPISTEA);
GPIO_setQualificationMode( 19, GPIO_QUAL_ASYNC);
//将 GPIO94配置为 bissC 功率 CTL
GpioDataRegs.GPCCLEAR.bit.GPIO94=1;
GPIO_setPadConfig (94,GPIO_PIN_TYPE_STD);
GPIO_setDirectionMode (94,GPIO_DIR_MODE_OUT);