SYD8811开发板正面实物图如下:
反面实物图:
注意:开发板默认焊接OLED128X64的屏幕,但是在OLED屏幕下方也留有TFT0.96和TFT1.3的接口!
在使用开发板的时候先把电源开关往屏幕这个方向拨动,然后使用jlink连接按照《SYDTEK Studio》工具目录下的"SYDTEK Studio release\Documentation\SYD8811固件烧录方法.pdf"文件烧录“4k_setting"文件(如果没有特定要求可以烧录《SYDTEK Studio》目录下存放的相应文件,比如"SYDTEK Studio release\SYD8811_4ksetting_10pf_LPO32K_2000PPM0530.bin")和”ble_service"文件(该文件存放在KEIL工程的“profile”文件夹下,比如"SYD8811_SDK\Source Code\SYD8811_ble_peripheral\3.SYD8811_BLE_UART_EVBOLED_notifyen_open_power\profile\SYD_ble_service_Flash.txt")。
在烧录完“4k_setting"和”ble_service"后既可以在tool中直接烧录KEIL工程编译出来的bin或者hex档案(比如"SYD8811_SDK\Source Code\SYD8811_ble_peripheral\3.SYD8811_BLE_UART_EVBOLED_notifyen_open_power\Keil\output\Ble_Vendor_Service.bin"),也可以直接打开keil工程编译后下载:
关于keil的设置这里有几点细节要说明:
1.官方所有工程都是基于KEIL516进行编写调试的,所以建议使用KEIL516来编译工程
2.由于SWD复位不能够复位RF,所以这里要添加两个脚本:
3.拷贝SYDTEK提供的官方插件(存放在“SYD8811_SDK\Documentation”文件夹下)复制到KEIL的flash目录:
然后在KEIL的设置中引用这个插件:
4.在user中设置在编译完成是生成bin档案和反汇编文件:
“Output\HEX2BIN.EXE” “Output\Ble_Vendor_Service.hex”
fromelf -c .\output\Ble_Vendor_Service.axf -o .\output\Ble_Vendor_Service_assembly.txt
5.设置SYD8811的代码地址(IROM1)和内存地址(IRAM1),在默认的情况下SYD8811的代码空间大小为252KB,也就是0x3F000,cache映射到0x10000000,SYD8811一共有32KB的内存,其中12KB(0X20000000-0x20003000)被协议栈占用,剩下20KB给用户代码使用,但是注意0x2000074a开始的4K是芯片内部储存当前操作flash扇区的缓冲(写flash的操作是先读回整个扇区的数据,大小为4K,然后擦除扇区,最后修改数据并重新写入,所以这里要有一个临时数据缓冲区,在不操作flash的时候该缓冲区不会被使用,所以就可以流出来给用户使用),该缓冲区可以作为一个特定的内存,在特定的情况下使用。
这里勾选上“Use Cross-Module optimization”虽然每次编译代码都会进行上次编译,但是对于有lib库的工程而言能够做到最大程度的优化(没有使用的函数和变量都会被去掉),同时这里勾选“Use Microlib",这个选项也会缩小代码。
6.C/C++设置项中的优化选项设置为default,使用第二级优化,当然可以尝试使用第0级优化,能够最大减少对代码和内存的使用:
SDK的框架介绍,SDK文件框架如下:
所有的驱动C文件都放在了“\SYD8811_SDK\Source Code\Source”目录下
所有驱动已经工程需要的头文件都放在了“\SYD8811_SDK\Source Code\Include”目录下
协议栈库文件放在了“\SYD8811_SDK\Source Code\Lib”目录下
每个驱动工程都会对应的在“\SYD8811_SDK\Source Code\SYD8811_peripheral”目录下拥有一个工程文件夹,打开该文件夹即可看到具体工程的内容,并且该目录下还存放在该工程的main.c文件,也就是说所有工程的驱动的c文件和头文件都是一样的,不一样的只有工程的设置文件(包括工程文件)和main.c文件还有一个config.h头文件。
相应的所有的带BLE的工程代码在“\SYD8811_SDK\Source Code\SYD8811_ble_peripheral”目录下,每个工程对应一个文件。
这里打开一个实例工程,比如“SYD8811_SDK\Source Code\SYD8811_ble_peripheral\3.SYD8811_BLE_UART_EVBOLED_notifyen_open_power”,可以看到他的工程结构如下:
双击"\Keil\SYD8811_BLE_UART.uvprojx"可以在KEIL中看到如下的工程页面:
关于KEIL的下载和仿真这里不再累述,具体可以自行查看相应手册。
编译下载程序运行后开发板的状态是这样的:
SYD8811程序框架的简单说明:
程序下载完成后通过一系列的初始化操作将会运行到用户代码的main函数中,该函数会先进行一系列的初始化流程,然后进入while(1)主循环,初始化操作如下:
其中Timer_Evt_List和RTC_Evt_List函数定义如下:
其中ble_init函数内容如下:
当蓝牙事件发生变化的时候蓝牙协议栈将调用ble_evt_callback函数,该函数根据蓝牙事件的类型进行不同的处理:
SYD8811开发板功耗测试
SYDTEK系列芯片遵循的规则都是电源分为两个大部分,一个是VDDIO,这个是流过IO口模块的电流,也叫做IO口的漏电,另一个是VBAT,这个是除了VDDIO其他模块的电流,所以VBAT加上VDDIO的电流就是芯片的总电流!
这里如果要测试功耗,请用这个工程” SYD8811_SDK\Source Code\SYD8811_peripheral_misc\SYD8811_BLE_UART_LowPower\Keil”,因为透传的工程是在透传模组上测试的,透传模组只有最小系统,并没有各种外设,在功耗方面并不符合开发板!
为了方便测试,开发板上的留有跳线帽,这里如果要测试电流可以把P5的7、9金额8、10管脚的跳线帽拿开,然后短路8、10管脚,然后再7和8管脚之前串联电流表就好,如下是电路图和硬件实物连接图:
代码运行后测试的功耗如下:
这个电流对SYD8811而言功耗还是偏大,因为开发板上加上各个外设后有地方存在漏电(具体什么地方还没有仔细查找),这里功耗依透传的测试为准,请看文章“SYD8811透传使用说明”
到此开发板的说明结束!
关键的提示:
到目前为止SYDTEK已经有3颗芯片在大批量量产,分别是SYD8801,SYD8821,SYD8811,所以在芯片和软件以及硬件的说明上,SYD8801是最完善的,SYD8821次之,但是因为这三颗芯片都是同一个团队开发的,所以他们在软件框架,使用方式上基本都一样。
当我们困惑与SYD8811的某个技术点想不通的时候可以参考SYD8801或者SYD8821的资料,这样或许你能够快速的得到你想要的知识,相对于不同的芯片,这里变化的只是函数的名称而已。比如ble_init函数的详细说明就可以在这篇博文中得到很理想的解析:/chengdong1314/article/details/76169279; 另外ble_evt_callback函数可以在这篇博文中得到最佳的解析:/chengdong1314/article/details/73929998
SYDTEK技术方面的资料可以从微信公众号“SYDTEK技术交流讨论”开始寻找了解,也可以直接扫描如下二维码关注:
如果觉得《SYD8811开发板使用说明》对你有帮助,请点赞、收藏,并留下你的观点哦!