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.

[参考译文] RTOS/TMS320F28027:F28027

Guru**** 2578945 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/647576/rtos-tms320f28027-f28027

器件型号:TMS320F28027
Thread 中讨论的其他器件:controlSUITE

工具/软件:TI-RTOS

我尝试使用 ePWM 向超声波传感器发送脉冲、并侦听回波信号。 我还使用 eCAP 来测量回波所需的时间。

但是、我看不到 eCAP 中存储的任何值。 我使用的是3引脚超声波传感器(28015)。 如何配置输入和输出?

GpioCtrlRegs.GPAMUX1.bit.GPIO5=1; // 0=GPIO、1=EPWM3B、2=Resv、3=ECAP1
GpioCtrlRegs.GPADIR.bit.GPIO5=1; // 1=输出,0=输入
GpioCtrlRegs.GPAMUX1.bit.GPIO5=3; // 0=GPIO、1=EPWM3B、2=Resv、3=ECAP1
GpioCtrlRegs.GPADIR.bit.GPIO5=0; // 1=输出,0=输入

EALLOW;
EPwm3Regs.TBCTL.bit.HSPCLKDIV = 5;
EPwm3Regs.TBCTL.bit.CLKDIV = 3;
EPwm3Regs.TBPRD = 48675; // 100ms 周期
//EPwm3Regs.CMPA.half.CMPA = 8;//生成10us 脉冲
EPwm3Regs.CMPB = 8;//生成10us 脉冲
EPwm3Regs.TBPHS.Half.TBPHS = 0;
EPwm3Regs.TBCTR = 0;
EPwm3Regs.TBCTL.bit.CTRMODE = 0;
EPwm3Regs.TBCTL.bit.PHSEN = 0;
EPwm3Regs.TBCTL.bit.PRDLD = 0;
EPwm3Regs.TBCTL.bit.SYNCOSEL = 2;
EPwm3Regs.CMPCTL.bit.SHDWBMODE = 1;
EPwm3Regs.CMPCTL.bit.LOADBMODE = 0;
EPwm3Regs.AQCTLB.bit.ZRO = 2;
EPwm3Regs.AQCTLB.bit.CAU = 1;

//配置外设寄存器
ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0;//连续模式
ECap1Regs.ECCTL2.bit.STOP_Wrap = 3; //在4个事件时停止
ECap1Regs.ECCTL1.bit.CAP1POL=0; //上升沿
ECap1Regs.ECCTL1.bit.CAP2POL=1; //下降沿
ECap1Regs.ECCTL1.bit.CAP3POL=0; //上升沿
ECap1Regs.ECCTL1.bit.CAP4POL=1; //下降沿
ECap1Regs.ECCTL1.bit.CTRST1 = 1; //差动运算
ECap1Regs.ECCTL1.bit.CTRST2 = 1; //差动运算
ECap1Regs.ECCTL1.bit.CTRST3 = 1; //差动运算
ECap1Regs.ECCTL1.bit.CTRST4 = 1; //差动运算
//ECap1Regs.ECCTL2.bit.CAP_APWM = 0; //禁用同步输入
ECap1Regs.ECCTL2.bit.SYNCI_EN = 0; //禁用同步输入
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 3; //禁用
ECap1Regs.ECCTL1.bit.prescale = 0; //预分频= 1 /禁用
ECap1Regs.ECCTL1.bit.CAPLDEN = 1;
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; //开始计数器
ECap1Regs.ECEINT.BIT.CEVT4 = 1; // 4个事件=中断
EDIS; 

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

    Jacky、

    controlSUITE 将向您展示如何配置引脚以使用 eCAP 模块、请尝试运行" \controlSUITE\device_support\F2833x\v142\DSP2833x_examples_ccsv5\ECAP_CAPTURE_PWM"。  

    完全了解此代码的用途后、您可以开始修改它以满足您的需求、或将其与您自己的现有代码结合使用。 未经修改、这个代码将用于演示 eCAP。

    如果您正在寻找有关如何使用传感器的信息、则应查看制造商网站、它似乎需要固定的强度5V 触发脉冲并具有设置的监听窗口。

    请注意、您使用的传感器似乎是5V 器件。 这意味着您需要一个电平转换器或其他隔离栅来保护 Launch Pad 免受损坏(在输出和输入端都是如此)。 此外、根据传感器的设计方式、您提供的3.3V PWM 信号可能不会导致传感器激活。 这取决于传感器的 VIH 电平。

    注意:您连接到传感器的任何引脚都可能由于 EOS 而损坏。

    此致、
    Cody