SYD8801从机和TIcc2540主机进行通讯(通过修改从机端代码实现)

SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.syd-tek.com/


SYD8801从机和TIcc2540主机进行通讯(通过修改从机端代码实现)


    之前已经有做过通过修改主机端代码实现TI cc2540主机和SYD8801从机通讯,请看:SYD8801从机和TIcc2540主机进行通讯(通过修改主机端代码实现) http://blog.****.net/chengdong1314/article/details/73824845


    但是对于有些TICC2540主机的代码不可以修改,或者不能够修改这里也提供一个例程。

    这里首先要说明的事TI的主机的一个bug,在TI主机获取从机特征值的时候,其发送att命令是AttReadByTypeReq,并且传送的类型是特性值的UUID,这时候SYD8801将返回正确的Attribute Data,返回的第一项就是这个特性的handle,随后是该特征的值,并且还有attribute handle-value pair的长度length,其响应时序如下:

SYD8801从机和TIcc2540主机进行通讯(通过修改从机端代码实现)SYD8801从机和TIcc2540主机进行通讯(通过修改从机端代码实现)

     原则上length最大能够达到23也就是0x17,但是目前TI的master存在着一个问题,如果发送的length大于等于0x17,TI MASTER将不承认这个数据包!


     鉴于TICC2540作为master的bug,这里要修改SYD8801的下位机程序,主要是修改0x0002这个特性的长度即可,修改特性的值得长度的方法请参考:SYD8801生成蓝牙profile的方法:http://blog.****.net/chengdong1314/article/details/70138657

    这里截取主要的配置如下:

SYD8801从机和TIcc2540主机进行通讯(通过修改从机端代码实现)SYD8801从机和TIcc2540主机进行通讯(通过修改从机端代码实现)

   

    接下来把生成色service.txt下载到芯片中即可!

   

    测试步骤请参考如下博客提到的测试步骤:SYD8801从机和TIcc2540主机进行通讯(通过修改主机端代码实现) http://blog.****.net/chengdong1314/article/details/73824845

  

    这里再次列出测试步骤如下:

    1.按下五向键的上键(UP),这时候TICC2540开始扫描设备,这里会列出设备列表,如果发现了SYD8801,那么SYD8801的地址(0XFF1122334455)会显示到OLED上

    2.当搜索到SYD8801的地址后按下五向键的中间键开始连接搜索到的地址列表中的每一项!连接完成后会自动的去发现服务获取特性的handle

    3.当正确获取到特性的handle后按下开发板上的S1键这是TICC2540将向SYD8801发送数据,这时候在SYD8801的OLED上将看到CC2540发送过来的数据

    4.如果要开启SYD8801从机的notify功能,在连接上后按下五向键的左键.这时候主机将发送使能notify功能的命令给SYD8801从机,notify功能将能够正常使用

    5.当使能了notify功能后再SYD8801开发板上按下SW1按键,SYD8801从机将会向主机通知数据,也就是notify数据


    这里记录下测试现象如下:

SYD8801从机和TIcc2540主机进行通讯(通过修改从机端代码实现)

     

      这篇博客只是SYD8801从机和TIcc2540主机进行通讯(通过修改主机端代码实现) http://blog.****.net/chengdong1314/article/details/73824845的补充,关于怎么使能notify和怎么发送数据,请看之前博客!

     

      这里上传本博客涉及到的代码:http://download.****.net/detail/chengdong1314/9888606

       其中的《BLE-CC254x-1.3.2_1Central_3Peripheral》文件夹目录下是CC2540主机端代码

       《OLED_ROSC_UUIDsalave》目录下是SYD8801从机端代码,下载此代码就可以和市面上所有的TI蓝牙主机进行通讯!该目录下的《SYD Service Utility》包含了配置service也就是特征得长度和UUID等配置工具!

       最后这里注意:透传服务的UUID是:0x0001,透传特性的UUID是:0x0002