TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640低功耗power_saving模式下,使用UART Software Handshaking问题请教

你好,项目需要CC2640在低功耗POWER_SAVING模式下,使用串口UART跟其他MCU通信。

想要实现,貌似有两个方法:

1. 硬件上使能流控CTS/RTS,缺点是多了两个pin,硬件需要改版,而且MCU端的UART通信代码也要改;

2. 不改硬件的情况下,使用Unified NPI with UART Software Handshaking,TI例子用的是SimpleAP + SimpleNP。

目前用的方式2,把UART串口初始化,收发等接口都换成npi_tl_uart_swhs.c中的,但没法通信,uart没有反应,请问其中是有什么坑需要注意的吗?

MCU侧的串口代码需要改动吗?谢谢…

chao wang22:

有TI工程师帮忙解答下吗?

chao wang22:

或者在power_saving使能的情况下,有没有相应的API,可以在uart操作前调用,临时唤醒睡眠状态,串口收发完成后,再进入休眠?谢谢

kqian0327:

你好,

请问你参考的是TI GETHUB上的例程吗?

TI的例程SimpleAP +SimpleNP是4线的UART,有两个线是用来做两边MCU 唤醒使用的。

所以你必须按照指导文档,确保硬件没问题,另外你可以通过示波器抓波形对比。

http://processors.wiki.ti.com/index.php/SimpleAP%2BSNP

另外,如果你想使用2线UART,你可以参考下面的例程:

http://processors.wiki.ti.com/index.php/SimpleAP%2BSNP

chao wang22:

回复 kqian0327:

谢谢,希望用2线UART,所以参考的是TI github上的software handshaking。

在SimpleBLEPeripheral基础上把uart相关的改成sw handshaking,并打开power_saving编译,uart连接pc测试,但没能成功。

请问是什么原因? 难道通信的两端都要实现sw handshaking,所以跟PC测试不能通过?

kqian0327:

回复 chao wang22:

你好,

是通信的两端都要实现sw handshaking,所以跟PC测试不能通过!

完整的通讯协议你可以参考sdk中的文档  

C:\ti\simplelink\ble_cc26xx_2_01_01_44627\Documents

CC2640 Simple Network Processer API Guide.pdf

另外你可以使用Python写一个串口的脚本和CC2640 sw handshaking做通讯。

我把脚本附上。

da qin zheng sheng:

建议先关闭POWER_SAVING模式,调试串口通信。

chao wang22:

回复 kqian0327:

谢谢了,我先学习下

chao wang22:

回复 da qin zheng sheng:

恩,谢谢。硬件系统中除了CC2640还有另一个mcu,它们之间通过uart通信,

关闭POWER_SAVING的时候,所有功能一切正常,。

但电池供电,必须考虑功耗,所以要使用POWER_SAVING。

chao wang22:

回复 kqian0327:

Hi Michael如果不希望修改CC2640对端设备(如PC,stm32)的uart代码,就能跟CC2640正常进行串口通信,跟没打开POWER_SAVING的时候一样,比如让PC可以直接使用串口调试助手跟CC2640双向uart收发。同时要让CC2640工作在低功耗,请问有什么方法吗?硬件上让CC2640使能MDRY/SDRY,使用4线uart应该可以做到的吧?另外有什么其他方法,可以在低功耗下使用2线uart?

现在想使用一个pin做isr,uart收发前先在isr中把CC2640从STANDBY/SHUNDOWN下唤醒,uart通信结束再睡眠。貌似是不可以。。。

ke lu1:

楼主怎么解决这个问题的

赞(0)
未经允许不得转载:TI中文支持网 » CC2640低功耗power_saving模式下,使用UART Software Handshaking问题请教
分享到: 更多 (0)