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.

[参考译文] LAUNCHXL-F2.8379万D:获取&'sci_echoback_cpu01'演示程序开始工作

Guru**** 2563300 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/633864/launchxl-f28379d-getting-sci_echoback_cpu01-demo-program-to-work

主题中讨论的其他部件:LUNCHXL-F2.8379万DC2000WARE

大家好,我正在 为一个组项目使用LUNCXL-F2.8379万D C2000微处理器,并且希望使用UART来连接RFID模块和蓝牙等设备。 我们尝试运行给定的'scI_echoback_cpu01'示例项目,以了解UART通信如何与我们的微控制器配合工作,但我们根本无法使其正常工作。

该程序应该让微控制器通过发送文本和回显用户输入的文本(使用超级终端或Putty终端)与PC进行来回通信,但即使验证了正确的设置(每秒位数,正确的GPIO端口等),该程序也不会正确执行。 在我们的情况下,代码将始终在这种情况下停止,并且永远不会继续:

while (SciaRegs.SCIFFRX.bit.RXFFST ==0){}//等待空状态 

程序还应该使用'scia_msg()'函数输出一些文本,但它从不向终端输出任何内容,即使它更改了各种寄存器值。 我们最多可以让微控制器在连接到PC时向终端发送一些垃圾字符,但 这种'scI_echoback_cpu01'根本无法正常工作。

我希望有足够的信息可以帮助我们(我们一般不熟悉此微控制器或UART,之前有关类似主题的论坛帖子也没有那么有帮助),因此非常感谢任何帮助,无论它是否能发挥此功能, 或者通过其他方式,我们可以轻松地使用UART和我们的Launchpad微控制器。 提前感谢您的回复。

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

    我很抱歉,这条线被裂缝掉了,没有得到及时的回应。

    首先要确认您的软件是最新版本的C2000ware。

    接下来,检查系统是否以所需的时钟速率运行是一件好事。 执行此操作的最佳方法是启用XCLKOUT:

    gpioCtrlRegs.GPCGMUX1.bit.GPIO73 = 0;
    GpioCtrlRegs.GPCMUX1.bit.GPIO73 = 3;
    GpioCtrlRegs.GPCDIR.bit.GPIO73 = 0;

    然后在GPIO73上使用示波器或频率计数器。 遗憾的是,GPIO73仅连接到J9上的引脚37,该引脚非常小(如果您走这条路,您可能需要在此引脚上焊接一根细小的导线,然后您可以将示波器连接到该引脚)。 200MHz SYSCLK在XCLKOUT上应产生25MHz。

    或者,您可以使用ePWM计时器间接测量时钟频率:

    EALLOW;
    gpioCtrlRegs.GPAMUX1.bit.GPIO4 = 1;//将GPIO4配置为EPWM3A
    CpuSysRegs.PCLKCR2.bit.EPWM3 =1;//ePWM时钟已启用
    CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;//ePWM时钟门控
    EPwm3Regs.TBCTL.bit.CTRMODE = 0;//ePWM UP计数
    EPwm3Regs.TBPRD = 249;//ePWM周期= 250 ePWM时钟
    EPwm3Regs.AQCTLA.bit.PRD = 3;//在ePWM期间匹配时切换GPIO4
    CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;//启动ePWM时钟
    EPwm3Regs.TBCTL.bit.FREE_SOFT = 3;//ePWM自由运行

    如果SYSCLK为200MHz,ePWM时钟为SYSCLK/2且ePWM TBPRD HSPCLKDIV =/2 (默认值),则应在GPIO4 (J2,Pin19)上产生100kHz的方波。

    现在,就SCI而言,我想您是在FTDI芯片上使用虚拟COM端口,而不是将SCI模块输入/输出发送到引脚,然后再发送到RS-232收发器?

    无论您使用哪一种,您都需要确定TX引脚的范围,以确保波特率正确(并且设备正在传输)。 如果使用虚拟COM端口,TX将使用GPIO42 (注意,这需要使用GPIO28对库存示例进行SW更改)。

    当程序启动时,它会发送"Hello world"...,因此这是您要侦听TX引脚的时候。

    至于SW中发生的情况,RXFFST字段是接收FIFO大小。 如果为零,则表示未收到任何字符。 基本上,它正在等待您从PC终端向设备发送内容(然后,它希望通过重新传输来回复您)。 在这里,您可能还需要确定SCI RX引脚(如果使用虚拟COM端口,则为GPIO43)上的活动范围。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    AM99,您好!

    您是否能够使其发挥作用?