- 博客(33)
- 资源 (334)
- 收藏
- 关注
原创 SYD8821或SYD8811连接《SYDTEK Studio》异常状况说明
不管是SYD8811还是SYD8821在焊接完成后都可以先用《J-Link Commander》进行一次连接,如果没能够出现这样的界面那么硬件焊接不正常,先要检查硬件:出现这样的界面后可以使用《SYDTEK Studio》进行连接,如果还有问题可能会出现这样的界面:这时候可以先尝试降低SWD的速度,因为有些仿真器不支持比较高的速度,这里尝试降低为1M,如果还是不行就要从硬件上检查问题,硬件上主要注意如下几点:32MHz晶振以及和32MHz晶振连接的MCU芯片管脚是否焊接OK!注意不管是SYD88
2021-06-28 10:18:07 724
原创 SYD8811 GPIO模块中PAD和GPIO的关系
这里看PIN_Pullup_Enable函数,我们发现我们看到这里是设置了PAD_PULLU的相关寄存器,这里所谓的PAD就是指芯片内部晶圆的标号,而GPIO只是某些PAD拥有的功能,但是PAD和GPIO的序号却不是一一对应的,比如PAD1对应着GPIO1,PAD17对应GPPIO11,PAD和GPIO的关系以及GPIO的功能列表请看SDK的文档:“SYD8811_SDK\Documentation\SYD8811_pinmux_table_20190527.xlsx”...
2021-06-28 10:16:25 2980
原创 SYD8811 使用外部32.768Khz晶振作为时钟源
要使用外部32.768KHZ晶振作为时钟源,要保证外部32.768KHZ晶振的电路是正确的,对于开发板而言,有个地方需要注意,因为LED1,LED2占用了晶振的关键,所以这里首先要把SB5和SB6断开:软件上首先在ble_init协议栈初始化完成后这样调用接口:ClockSwitch(SYSTEM_32K_CLOCK_XOSC);在我们的工程中是打开宏:USER_32K_CLOCK_RCOSC:因为晶振和GPIO0 GPIO1复用,所以这里要把这两个管脚的初始化和上拉去掉:同时查看一下代码看看还
2021-06-28 10:12:30 1090
原创 SYD8811选在外部32k晶振作为时钟源在断线后不广播的解决办法
这是因为4k_setting中默认选择的是内部晶振,在代码开始的时候选择了外部晶振,但是在断线的时候协议栈会自动装载4k_setting的相关设置,也就是断线后始终源又被切换到内部晶振了,而不经过校准相关的操作时钟是不准的,也就有可能造成再也看不到广播了!这里在《SYDTEK_Studio.exe》中增加配置时钟源的功能,按照下图根据自己的需要正确配置时钟源即可:本文的工具如下:https://download.csdn.net/download/chengdong1314/19867291...
2021-06-28 10:08:17 225
原创 SYDTEK OTA版本协议的区别
《SYDTEK BLE 》安卓APP,最下面有一个“About”按钮,按下这个按钮就可以看到关于OTA的说明:这里有关于OTA各个版本的简要说明更新要点!Version 2.0该版本OTA协议是基于“Version 1.0”修复代码量最大为65536Byte的问题,同时当升级完成后蓝牙设备端还会上报是否升级成功,当然这里修改了协议,蓝牙设备端的代码也要相应的修改!Version 3.0该版本OTA协议是基于“Version 2.0”,同时这里对协议有很大的改动,采用分段传输的形式,每段传输还会
2021-06-28 10:03:26 728
原创 SYD8821连接上功耗大,latency不能够控制以及发现服务慢解析
SYD8821在协议上已经支持到5.0,所以有些4.0上没有的新东西可能会处理不当,这里就说LL_CONNECTION_PARAMS连接参数的设置,BLE4.2及其以上在LL层增加了LL_CONNECTION_PARAM_REQ的命令:这里就体现在我们代码的gap_s_connection_param_set接口接口上,对于一些心得手机就可能出现一些不好的情况,下面详细解析怎么解决:原来的方式在ble_init函数中这样初始化连接参数:这是一套没有latency并且连接参数速度很快的连接参数,如果
2021-06-28 10:01:30 188
原创 SYD8821和SYD8811在writewithoutresponse属性上的差异
8821没有勾选上writewithoutresponse的情况下write command也能够进来,但是SYD8811是不可以的,从遵循规范的角度上来说,SYD8811的做法更加符合规范!但是SYD8821的做法也是没有问题的,这里另外提及:nordic的芯片和SYD8821的做法是一样的!注意:也就是说SYD8811的profile的OTA的writewithoutresponse属性一定要勾选上!...
2021-06-28 09:56:07 376
原创 SYDTEK系列芯片低速PWM的三个模式和用法
SYD8801的pwm只能够挂在32.768Khz上,所以速度不是很快,但是他依旧支持三种模式,SYD8811和SYD8821就都有高速的PWM,挂在MCU的时钟上,这里以SYD8801作为说明,介绍三种PWMSYD8801 PWM使用说明Syd8801的PWM模块支持三种模式:闪光、PWM、呼吸灯,他们的时序如下:使用内部定时器的话必须经过校准,对于外设驱动代码使用LPOCaliWaitUS函数进行校准,如果代码中包含了《syd_ble_keil.lib》库,则调用LPOCalibration函数
2021-06-28 09:54:08 575 1
原创 以SYD8821为切入点对下载仿真的一些常见问题进行解析
以SYD8821为切入点对下载仿真的一些常见问题进行解析首先声明一点:对于SYD8821而言,《让SYD8821 SYD8811更好的下载仿真》这篇文章中对SYD8821拉出复位线的方式在很大程度上能够让下载仿真更加容易的运行。对于SYD8821是否能够流畅仿真有下面几个情况要注意(这是SYD8821特有的,SYD8811就没有这些注意点):睡眠函数中绝对不能够传入POWER_SAVING_RC_OFF作为第一个参数,因为SWD总线的clock依赖于MCU的clock,如果这里设置为OFF,那么SW
2021-06-28 09:47:53 275
原创 SYDTEK硬件上layout的注意点
SYDTEK硬件上layout的注意点1.对于SYD8810芯片,第29脚是GND,这个管脚硬件加上一个禁止敷铜的区域,防止敷铜不让这个管脚焊盘变得更宽:敷铜一定要全覆盖敷铜,不能够用如下方式敷铜:芯片底部的GND焊盘应该尽量留足够多的过孔:4. 电感的连线尽量粗一下:5. 管脚焊盘的GND网络除了和芯片底部地,最好还有另外的途径流回GND网络:6.保持TXD 和RXD的测试点:7.在没有元件的地方多打孔,特别是天线周围:...
2021-06-28 09:39:26 209
原创 SYDTEK系列芯片之低功耗相关说明
SYDTEK系列芯片的低功耗设置大体上都相似,只是有些细节有差异!这里以SYD8801来作为说明!SYD8801的低功耗模式分为浅度睡眠和深度睡眠,其中浅度睡眠内存数据依旧能够保持,而深度睡眠下内存会被清空,两者比较如下:注意:不管是深度睡眠还是浅度睡眠,在配置睡眠之前必须保证作为唤醒源的GPIO管脚对MCU而言是低电平,也就是说如果在睡眠的时候唤醒源GPIO外部状态为高电平,这里就必须要配置上gpio模块输入的反相器,也就是 PIN_CONFIG->PIN_13_POL(这里GPIO13为唤醒
2021-06-27 21:33:21 1111 1
原创 SYD8821 SYD8811内部上拉电阻
SYD8811的GPIO15,GPIO16是850K,其余都是50KSYD8811的GPIO1,GPIO4是850K,其余都是50K也就是说在上拉电阻为50K的管脚上,如果外部管脚接地,那么该管脚的漏电是3.3/50约60UA!
2021-06-25 10:48:52 515 4
原创 SYD8821 gpio驱动注意点
因为SYD8811的历史原因和实际的需求,SYD8821\的GPIO驱动的GPIO的定义有两种方式,一种是以枚举的方式,从0-31;另外一种是以BIT的形式,从0x01到0x80000000:有两种方式定义GPIO就相应的有两套GPIO的驱动函数,比如下面是以GPIO枚举形式参数的GPIO驱动:下面是以BIT形式参数的GPIO驱动:两种驱动方式的参数各有各的好处,比如BIT形式的参数就不能够操作GPIO34管脚!另外唤醒源的设置是以BIT形式传入的:...
2021-06-25 10:37:10 162
原创 SYDTEK系列芯片程序框架之密码加密配对
SYD8801作为从机,按照规范说明可发起SecurityReq,然后主机将进入配对流程SecurityReq函数定义如下:uint8_t SecurityReq(uint8_t flag, uint8_t mitm);其中flag和mitm属于规范中的内容,如下说明:这些都是协议栈的内容,一般不用关心,只要记得传入1,0即可。此篇博客是针对密码加密的情况,所以在配对过程中协议栈会上报一个事件来获取密码:这里设置密码为123456!加密成功后会进入上图的“else if(p_evt->ev
2021-06-25 10:14:44 421 1
原创 SYDTEK OTA v3.0版本profile的注意事项
SYDTEK v3.0版本profile的注意事项,勾选上writewithoutresponse:
2021-06-25 10:10:50 132
原创 SYDTEK系列芯片程序框架之ble_init和ble_evt_callback
ble_initble_init函数是SYD8801的协议栈初始化函数,该函数初始化BLE协议栈并且设置广播,扫描,地址等等,具体注释如下:static void ble_init() //应用层初始化函数接口(在用户代码中){struct gap_evt_callback evt;struct smp_pairing_req sec_params;struct gap_wakeup_config pw_cfg;struct gap_ble_addr ble_addr;BleInit()
2021-06-25 10:07:48 641 1
原创 SYDTEK系列芯片程序框架之ble_sched_execute和BLE_SendData
SYDTEK系列芯片程序框架之ble_sched_execute和BLE_SendDatable_sched_execute函数该函数把要写进flash的数据写到falsh中,因为写flash的操作比较耗时,如果把比较耗时的工作放到协议栈中进行的话这些操作将会阻塞蓝牙协议栈的正常运行,造成蓝牙工作异常。所以SYD8801的协议栈在要写数据到flash的时候只是把数据放到内存中,然后在主循环中调用ble_sched_execute把放在内存的数据写到flash中,这样错开了比较耗时的flash操作和要求快
2021-06-25 10:04:17 349 1
原创 SYDTEK芯片的UARTEN和RFAutoSleep的作用
不管是SYD8811还是SYD8821都有UARTEN这个配置,在SYD8811上是UartEn函数,在SYD8821是PMU_CTRL->UART_EN,他们的作用其实是一样的,那就是说打开外部32M晶振。因为串口的波特率是外部32M晶振分频产生的,所以如果没有PMU_CTRL->UART_EN那么串口将得不到工作。但是打开UARTEN后因为32M晶振不会关闭,所以芯片功耗是比较高的,大约有300UA,所有再不需要的时候要关闭uarten,比如调用UartEn函数传入false!RFA
2021-06-25 09:56:49 707
原创 SPI驱动陷阱
spi_write函数定义如下当按照如下调用这个函数的时候:#define ACC_CHIPID 0x00spi_write(ACC_CHIPID,1);指针变量传入了一个宏进入,这时候编译器是不会报错的,但是在spi_write函数中确是把这个宏当成了一个地址指针,这时候会有问题!另外注意:SYD8811的SPI接口本身的设计没有读/写操作的概念,都需要host分两次发起操作。按照SPI的时序:SPI的最高位代表了是要进行写操作还是读操作,而这个R/W位
2021-06-25 09:54:10 760
原创 SYD8811 内存和代码的分布
SYD8811 内部一共有 512KB 的 flash,在默认的情况下 flash 分布如下:如果使用了“FLASH DATA 的”功能,也就是在“FW Code”中分出一部分来做数据区使用,“FLASH DATA”功能在《SYDTEK_Studio》中设置:使用“FLASH DATA”后 flash 分布如下:SYD8811 一共有 32KB 的内存:注意:其中“Rom sued”的 32KB 中有 4kByte 是作为 flash 扇区操作的缓冲区,因为ROM 中操作 flash 的时候很.
2021-06-25 09:52:18 953 1
原创 volatile变量的巨大作用
发现“test_state_type”变量没有volatile关键字,那么“testend”将不会有打印:volatile uint32_ttest_state_type=0;也就是说如果有代码频繁的访问同一个变量,如果没有volatile关键字就有可能出错注意:这个问题是在优化等级为0的时候发生!...
2021-06-25 09:50:24 135
原创 关于SYDTEK批量烧录的一些心得
在得到最新的工具后可以使用批量烧录的功能,关于批量烧录这里最值得关注的就是克隆功能的使用,因为对于已经量产过的客户,第二个案子后都不在需要一步一步的去配置CU小板了,克隆功能在《SYDTEK 批量烧录工具使用说明V6.0.pdf》一文中说明如下:也就是说克隆功能可以得到只是MAC和“Verdor datas”(需要的时候)变化的CU小板,所以当要配置第二个案子的CU板子时可以这样做,首先使用上次克隆到的CU小板的资料对新的案子的CU进行“Execute”操作,CU Index选择为CU1,得到和上次板子
2021-06-24 10:05:59 467 2
原创 SYD8811关闭广播后在没有复位的情况下重新开启广播的设置[老化测试]
SYD8811关闭广播后在没有复位的情况下重新开启广播的设置之前应用的领域在关闭广播后重新开启广播都是重新复位系统,所以并没有发现问题,但是这里有个弊端就是再次复位的时候内存将不再存在,最近有需求在关闭广播到再次开启广播的过程中不能够有复位,也就是说要维持内存数据不变,这时候开启广播的设置就有点不一样。首先在开机的时候在ble_init函数中调用setup_adv_data设置这样的广播参数:这时候广播超时时间达到30S,这里使用一个GPIO中断来开启关闭广播,按键就切换:A.在gpio_init
2021-06-23 19:17:22 711 1
原创 SYD8811透传使用说明
这里提供一个透传的通用demo,主要功能是程序开机的时候正常广播,蓝牙连接上并且使能了notify功能后,SYD8811一直打开串口,这时候主机端(手机APP)发送的任何数据都会原封不动的通过串口0(GPIO15,GPIO16管脚)发送给主控制器或者PC。本文章对应的程序在:“SYD8811_SDK\Source Code\SYD8811_ble_peripheral\1.SYD8811_BLE_UART_notifyen_open_power”这里先介绍和蓝牙相关的内容,本程序中广播间隔是:adv_p
2021-06-23 17:24:50 1904 1
原创 SYD8811开发板使用说明
SYD8811开发板正面实物图如下:反面实物图:注意:开发板默认焊接OLED128X64的屏幕,但是在OLED屏幕下方也留有TFT0.96和TFT1.3的接口!在使用开发板的时候先把电源开关往屏幕这个方向拨动,然后使用jlink连接按照《SYDTEK Studio》工具目录下的"SYDTEK Studio release\Documentation\SYD8811固件烧录方法.pdf"文件烧录“4k_setting"文件(如果没有特定要求可以烧录《SYDTEK Studio》目录下存放的相应文件
2021-06-22 11:09:41 2589
原创 SYD8821电路图检查
SYD8821原理图检查检查VBAT网络是否连接正确,SYD8821的供电电压从1.8V到4.3V,在上图中VBAT(第29管脚)接的是电池电压4.2V,其实他也可以接和VDDIO(第42脚)一样的3.3V电压,同时该网络靠近芯片的位置必须要有10UF的电容,建议也加上0.1UF的电容。检查VDDIO(42管脚)网络是否连接正确,VDDIO电压就是GPIO管脚的电压,一般连接3.3V,不能够悬空。检查VDCDC网络是否连接正确,在上图中VDCDC网络和28管脚之间用一个4.7UH的电容隔了,26管
2021-06-21 22:17:44 472 2
原创 SYD8811电路图检查
SYD8811原理图检查检查VBAT网络是否连接正确,SYD8811的供电电压从1.8V到3.3V,在上图中VBAT(第48管脚)接的是LDO输出电源3.3VV,同时该网络靠近芯片的位置必须要有4.7UF的电容。检查VDDIO(36管脚)网络是否连接正确,VDDIO电压就是GPIO管脚的电压,一般连接3.3V,不能够悬空。检查VDCDC网络是否连接正确,在上图中VDCDC网络和47管脚之间用一个4.7UH的电感(要求电感的Imax>200mA,封装越大电流越大,这里建议使用0805
2021-06-21 22:15:34 904 1
原创 STDTEK RTT打印的设置[LOG编码的设置][增加支持对”%f”形式(浮点数)的打印]
STDTEK RTT打印的设置SYDTEK使用的ARM MO的内核,支持SWD的总线,也就支持RTT打印了,使用方法如下:1.在代码中加上RTT相关的代码文件:2.根据自己的需要合理修改RTT的地址,如果没有特殊需求可以这样改,RTT占用SYD8811 的32K内存的最后的256Byte,也就是说RTT的首地址是0x20007F00:3.编译下载运行后,使用《SYDTEK_Studio.exe》进行下面的设置,然后点击“start log"按钮:到此就可以看到RTT的打印了:工程在:“S
2021-06-21 22:05:27 824 1
原创 STDTEK UART打印的设置
STDTEK UART打印的设置因为SYD8801开始就是用UART进行log的输出,而且UART进行log的输出有着自己的优势,所以我们的tool《SYDTEK Studio》也支持UART输出log的查看, 这里以SYD8811为例介绍怎么使用UART的log输出功能1.在代码中进行相关的串口的初始化并输出相关信息:2.下载好程序后按照如下方式配置UART相应功能:3.这时候tool已经能够正确接收来自板子的UART输出了,但是这里其实有一个问题,就是一般情况下开发板的GPIO21没有设
2021-06-21 15:20:07 175
原创 SYDTEK 晶振匹配参数调整
SYDTEK 晶振匹配参数调整SYDTEK的芯片都需要接一个高频率的外部无源晶振,该晶振产生的时钟给RF模块和UART等对时钟精度有很高要求并且频率比较高的模块,也就是说外部晶振的时钟准确度直接决定了射频的频率偏移,SYD8801是16MHz,syd8821和SYD8811都是使用32MHz自身电容为9PF或者10PF。SYDTEK的芯片并不是不需要外部负载电容,而是把外部负债电容做到芯片内部了,为了更好的匹配外部电路的负载情况,芯片内部留有一个专门的寄存器用于调整芯片内部的匹配。这里以SYD8811为
2021-06-21 15:11:37 630
原创 SYDTEK ANCS说明
SYDTEK ANCS说明SYDTEK的ANCS遵循IOS的ANCS协议,从SYD8801到SYD8821以及SYD8811,在使用上都是类似的,以下就拿SYD8821来作为说明。连接上后开启2S的定时器:以2S为间隔调用函数Connection_latency4S后执行Connection_latency函数中的“else{ //not judge”分支,并且调用ancs_service_enable函数来开启ANCS:当ancs初始化完成时调用ancs_result函数返回an
2021-06-16 13:57:17 191
原创 windows install libusb driver
本博客摘录于:https://blog.csdn.net/chengwenyang/article/details/51592633下载libusblibusb 可以从 http://libusb-win32.sourceforge.net 处下载,32位系统和64位系统均可以用,例如下载libusb-win32-bin-1.2.6.0。安装下载文件后解压缩,进入libusb-win32-bin-...
2021-06-16 13:47:16 3096
原创 让SYD8821 SYD8811更好的下载仿真
**对于在KEIL中SYD8821的下载不了的解决办法:**因为SYD8821的GPIO31和SWD的DATA线复用,所以如果上电后程序把GPIO31设置为GPIO的模式,那么仿真器将连接不上SYD8821。另外还有一种情况也会造成连接不上SYD8821,因为M0内核的SWD模块能够正常工作的前提条件是MCU的clock必须要存在,如果在休眠的时候把MCU的clock关闭了也会造成SWD连接不上,比如使用了如下方式进行休眠:SystemSleep(POWER_SAVING_RC_OFF, FLAS
2021-06-16 12:59:48 834
nordic52832作为主机连接SYD8811-20240912-073704.7z
2024-09-12
Source Code-Clock-PPM-adjustment-api-20240119-165237.7z
2024-01-19
SourceCode解决channelmap长时间大电流问题20230129-181002.7z
2023-01-29
新版本lib解决电流大的问题20230129-180511.isd
2023-01-29
SYD8811公版LIB channelmap的时候长时间大电流
2023-01-29
SYD8811-GPIO-POL-双边沿中断Source Code
2022-11-02
SYD8811-SystemTick-Source Code
2022-11-02
SYD8811-Flashdata-RefreshCache-SourceCode
2022-10-20
C#调用Python 20220918_145208
2022-09-18
C语言生成二维码20220904_172434
2022-09-04
微软常用运行库合集 2022.03.17.exe
2022-06-08
window make工具 版本为:GNU Make 4.2.1
2022-05-06
gcc编译器20220506 082534 版本为:gcc-arm-none-eabi-10.3-2021.10-win32
2022-05-06
SYD_Calculator 测试数据20220407 215744
2022-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人