1.问:P01 引脚作为数字外设输入输出功能时无法使用收不到数据?
答: P01 无法作为IOMUX 功能,不能配置为数字外设复用功能。
2.问:当在P23引脚输入或输出一个高于10KHz 信号时会造成蓝牙广播间隔不正常、连接不稳定?
答: P23 引脚内部通过开关与RF 中频信号相连,该开关隔离度不足导致高频信号会干扰到RF信号,因此该引脚上不能出现高于10KHz 的信号,否则会影响RF 接收性能。
3.问:BOOT0、BOOT1、BOOT2 有哪些组合,这些组合分别对应哪些工作模式?
答: 芯片有正常工作、烧录、芯片测试三种模式。
1、BOOT0、BOOT1、BOOT2 引脚内部默认开启下拉,当引脚悬空时,默认为输入低电平。对于未引出BOOT1、BOOT2 引脚的封装,该引脚悬空
2、当芯片已经处于正常工作模式下,若BOOT0/BOOT1/BOOT2 引脚状态变化为“芯片测试模式”组合状态,此时芯片将自动进入芯片测试模式
4.问:当芯片供电电源不稳定,纹波较大时偶尔会导致异常复位? 答: 芯片工作电源VDD 最大允许纹波电压为0.6V ,当电源波动上升沿上升速率超过0.6V/100us,芯片将发生复位。
5.问:芯片电源正常,BOOT0 拉高时复位芯片,P09引脚没有打印cmd>>:,无法烧录程序?
答: 芯片焊接正常,测量电源也正常但BOOT0 拉高后复位芯片没有打印进入烧录模式时,此时应检查以下几点
1)外部16M 晶振是否正常起振
2)BOOT1 与BOOT2 是否为低电平
6.问:P02、P03引脚为SWD接口,硬件设计上需要注意哪些?
答:P02、P03 在烧录模式及上电后默认为SWD 功能,在硬件设计时有使用到这两个引脚的其他功能时需要注意在上电至用户软件配置该引脚功能期间为SWD 功能,引脚状态为低电平,应尽量避免低电平有效的功能设计。
- 问:P09、P10引脚为串口烧录接口,硬件设计上需要注意哪些?
答:P09、P10 在烧录模式为UART 功能,在硬件设计中有使用到这两个引脚时,需要注意烧录模式的影响,避免外部信号影响烧录模式的使用。建议该两个引脚使用时作为输出功能。
8.问:ADC 信号范围与输入阻抗是多少?硬件设计上需要注意哪些?
答:ADC 两种模式的信号范围与输入阻抗如下:
1)旁路Bypass 模式:0V≤Vin≤0.8V,Rin>10MΩ。
2)衰减Attenuation 模式:0≤Vin≤VDD,Rin=18.87KΩ(内部采用 14.15KΩ与 4.72KΩ电阻分压网络,实现信号 1/4 衰减。芯片内部电阻绝对误差约为±15%,相对误差约为±1%。绝对误差不影响ADC 精度,相对误差会影响ADC 精度)。在对3.7V 锂电池电压测量时建议采用旁路模式,推荐如下电路:
9.问:ADC 内部参考电压多少?ADC 引脚是否可以同时分别配置旁路模式与衰减模式?
答:ADC 模块使用内部0.8V 参考电压;每个引脚独立配置,可将不同引脚同时配置成不同模式。ADC 引脚不可随意映射,只有P11、P14、P15、P20、P23、P24 六个引脚可配置为ADC输入。
10.问:芯片的 GPIO 强上拉与普通上拉有什么区别?
答:强上拉电阻值为150k,弱上拉电阻值为1M,下拉电阻值为100k。
11.问:芯片的外接 DCDC 电感怎么选型?
答:外接DCDC 电感选用10uH,要求额定电流要大于300mA。
12.问:芯片的电源需要添加限流电阻?
答: 串联10Ω电阻作为限流电阻,防止 EOS 烧毁。
13.问:使用 Keil 下载或调试时提示检测不到设备?
答:当芯片休眠或用户程序将P02、P03 引脚配置为其他功能时,该引脚处于非SWD 功能keil 识别不到芯片,此时把芯片BOOT0 拉高后复位芯片使芯片进入烧录模式后该管引脚会重新配置为SWD 功能,之后可使用keil 正常下载或调试设备。
14.问:将系统主频设置到 RC32M 时代码可正常运行有LOG 输出,但手机无法搜索到蓝牙广播?
答:芯片MCU 主频支持16M、RC32M、DBL32M、48M、64M,但只有使用外部晶振16M ,DBL32M,DLL48、DLL64M 才能发射正常蓝牙数据。
15.问:没有挂载外部低速晶振时软件上是否有某些配置需要更改?
答: 系统休眠高速晶振停止运行,系统采用低速时钟进行定时唤醒。如果未挂载外部低速晶振,在程序中需要将DEFAULT_32K_CLK_SRC 宏定义改为1(CLK_32K_RCOSC),使用内部RC 振荡器。
16.问:软件设置的发射功率与芯片实际发射功率不匹配?
答: 需检查硬件是否使用内部DCDC(外部需要采用电感与电容,实现Buck 电源转换),若未使用DCDC 宏定义CFG_DCDC_ENABLE 应设为0,使用了DCDC 电路则设为1。
17.问:使用 keil 下载程序时keil 提示校验失败?
答: 需检查keil 烧录算法是否配置正确,如下两点:
1)检查烧录算法《CST92F25.FLM》是否放置到keil 安装目录:Keil_v5\ARM\Flash
2)检查Keil 中配置页内容是否如下图
18.问:该芯片采用 xip 运行与ram 运行混合方式,中断函数及flash 操作函数运行位置有哪些注意事项?
答:该芯片采用xip 运行与ram 运行混合方式,一部分代码采用xip 运行,一部分代码上电时会加载到ram 中运行,用户可通过修改.sct 文件自由配置哪些代码在ram 中运行,需要注意的是上电部分、中断处理、flash 操作这几类代码需要放在ram 中运行。
19.问:SRAM 在休眠时有哪些配置注意事项?
答: 该芯片SRAM 总大小为64KB,分为一块32KB,两块16KB,为了降低休眠功耗,可配置休眠时保持哪些块,未配置休眠保持的块唤醒后该区域SRAM 内容将丢失导致程序运行异常,目前SDK 默认休眠保持所有块。
20.问:GPIO 中断,是否可以配置双边沿触发,如何配置?
答:可以同时配置上升沿、下降沿触发中断,调用HalGpioRegister 函数注册上升沿及下降沿回调函数即可在回调函数中收到上升沿、下降沿中断。
21.问:系统时钟最高多少?哪几种频率的主频有蓝牙广播?
答: 芯片MCU 主频支持16M、RC32M、DBL32M、48M、64M,主频最高64M,但只有使用外部晶振16M,DBL32M,DLL48、DLL64M 才能发射正常蓝牙数据。
22.问:如何获取芯片 MAC地址,具体存放在FLASH 哪个位置?
答:可通过以下两种方法获取MAC 地址
1)通过接口GAPRole_GetParameter(GAPROLE_BD_ADDR, buf)获取MAC 地址,该接口需要在协议栈初始化完成的前提下才能正常获取到。
2)通过接口LL_ReadBDADDR(buf)获取MAC 地址,该接口需在LL_Init 完成后才能正确获取到MAC 地址。
3)通过读取FLASH 中0x1000、0x1004 地址获取芯片出厂MAC 地址,读取FLASH 中0x4000、0x4004 地址获取用户烧录MAC 地址。
23.问:有几种低功耗模式,分别有什么区别?
答: 有以下几种功耗模式
1)全速运行模式,该模式只需要配置CFG_SLEEP_MODE 宏定义为PWR_MODE_NO_SLEEP 即可实现,该模式下MCU 全速运行,该模式下功耗较大。
2)蓝牙低功耗模式,该模式只需要配置CFG_SLEEP_MODE 宏定义为PWR_MODE_SLEEP 即可实现,该模式下MCU 间歇运行、RAM 可配置全部保持或部分块保持,RTC 保持运行、蓝牙可广播,该模式下功耗较低。
3)standby 模式,该模式只需调用函数hal_pwrmgr_enter_standby 进入,该模式下MCU 停止运行、RAM 可配置全部保持或部分块保持,RTC 不运行、蓝牙不可广播,GPIO 输出状态保持,可配置GPIO 引脚快速唤醒,唤醒后将进入wakeupProcess_standby 函数,不需要重新加载代码,唤醒速度较快,该模式下只有RAM 功耗13uA。
4)poweroff 模式,该模式只需调用hal_pwrmgr_poweroff 函数进入,该模式下RTC 不运行、蓝牙不可广播,GPIO 输出状态保持,可配置GPIO 引脚唤醒,唤醒后将发生硬件复位重新加载代码,唤醒速度较慢,该模式下功耗0.7 uA。
24.问:PWR_MODE_SLEEP 模式,初始化过的外设需要如何处理?
答: PWR_MODE_SLEEP 模式下,OSAL 系统会管理外设,休眠时会关闭外设,唤醒后会重新打开外设,用户不需要休眠前关闭外设,唤醒后重新初始化外设,只需在上电后初始化一次即可。