介绍TTC SDK&透传异常问题与解决方法(二)

发布日期:2017.10.16     浏览次数:296

当前物联网发展迅猛,物联网中的连接通常利用无线通信。在多个设备进行对话的无线通信应用中,BLE作为一种近场无线通讯技术,毫无疑问是最理想的选择。随着越来越多的新型物联网设备涌入市场,BLE的低功耗、传输快的优势使得现有的消费类电子设备普遍都采用蓝牙技术。昇润科技作为专业的蓝牙模块和方案的供应商,其产品可应用在各场景中。当然,开发的过程中,难免也会碰到一些异常问题,这里,我们将介绍一些TTC SDK&透传常见问题与解决方法。


一,TTC SDK&透传的基本知识

1.蓝牙参数/配置

1)蓝牙角色:主机(Master)、从机(Slave

初始化后,从机开始广播;可以进行扫描并发起连接请求的是蓝牙主机。


2)广播间隔(Adv Interval

蓝牙初级初始化,按照广播间隔,从机会定时发起一次蓝牙广播,广播结束后模组自动睡眠,实现超低功耗。

备注:蓝牙广播间隔,会自动加入 10ms 以内的随机延迟,以避免 BLE 设备之间可能存在的持续干扰。所以,广播实际间隔与设置的广播间隔,出现偏差是正常现象。另外,SDK 中主机+广播的组合角色,广播为不可连接广播。

由此可见,减小广播间隔,会增加模组功耗,主机可以更快的扫描到从机。反之,加大广播间隔,会减小模组功耗,主机扫描到从机的时间也相应增加。用户可根据实际应用调节此参数。


3)连接间隔(Connection Interval

 当主机与从机建立连接后,按照连接间隔,每隔一段时间会自动产生一个连接事件,模组会自动唤醒一段时间,无需用户控制。

备注:蓝牙主从机如何同步唤醒无需关注,唤醒状态的时间长短由需传输数据的长度决定。

由此可见,减小连接间隔,会增加模组功耗,加快数据传输速度。反之,加大连接间隔,会减小模组功耗,数据传输变慢。用户可根据实际应用调节此参数。


4)连接超时(Supervision Time-out

超时时间为两个有效连接事件之间的时间差,超时则会断开连接。此参数设置需遵循一些规则: Interval Max * ( Slave Latency + 1) * 3 < ConnSupervisionTimeout


5)蓝牙参数更新

主机与从机建立连接之后,默认先使用主机指定的蓝牙连接参数。SDK 以及透传蓝牙从机均可发起蓝牙参数更新请求,但是发起更新请求的时间点并不一样。一般是在与主机建立连接后,延迟一段时间发起参数更新请求,如透传的“参数更新延迟寄存器”参数可设置。


2.接口时序

用户主控 MCU BLE 模组通信,可以使用 UART/SPI/IIC;均有一个引脚 WAKEUP/CSN,用于唤醒

BLE 模组:模组处于唤醒状态时,才能使用 UART/SPI/IIC 进行通信。

如前文提到,蓝牙广播以及蓝牙连接事件,会按照预设的参数自动完成,即 BLE 模组会自动唤醒完成蓝牙广播和连接事件。也就是说,WAKEUP/CSN 引脚的控制,只与 UART/SPI/IIC 通信有关,与蓝牙广播和蓝牙连接无关。

 

二,TTC SDK常见相关问题(CC2640为例)


1使用 IAR 仿真下载程序时,提示“Fatal error: Nodebug probe found connected to the USB port Session aborted!”错误


【原因】(1)IAR配置不正确 (2)模组可能已经烧录了我司的透传程序,并且调试接口已经被锁住。

 

【解决方法】(1)修改配置:选择正确的下载器,如图

 

(2)使用Flash Programmer2,若提示“The debug interface is locked!”,需强制擦除默认程序,解锁调试接口。



2SDK配置视频教程代码使用报错问题(编译提示报错:Error while Running C:TTC_BLE_CC2640_R2_SDK3.1.0 ixdctools_3_50_00_10_core/xs-xdcpath=C:TTC_BLE_CC2640_R2_SDK3.1.0TTC_CC2640_R2_SDKexamples tosCC2640R2_LAUNCHXLlestackSDKTIRTOSIARAPP...”)

 

【解决方法】1)检查 C 盘是否有对应路径,如果没有该路径,则说明 sdk 版本与视频教程中 sdk 版本不一致(视频教程中使用的 SDK 版本为 V3.1.0,而实际安装 SDK 可能是 V3.1.0 以后的新版本)。

        (2tools?Configure Custom Argument Variables…  


 

显示为 SDK 3.1.0 的版本:

 

需修改为实际所安装的SDK的版本,如3.2.0,再重新编译即可。

 

3TTC Programmer 提示“未发现 oad_image_tool,请手动选择所在目录”错误

 

【解决方法】手动添加oad_image_tool的路径,如下图

 

添加成功后,则提示“生成成功”,如下图: