失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > SYD8811开发板使用说明

SYD8811开发板使用说明

时间:2024-03-01 04:04:46

相关推荐

SYD8811开发板使用说明

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开发板使用说明》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。