CH582M上电一会掉电压

如题,同样的代码,一份用vscode eide插件编译,工具链直接设置MRS目录下的RISCV目录,另一份直接在MRS编译,用vscode编译的固件上电几秒后BLE广播就消失了,万用表测量3.3V供电只有0.5V多的电压,MRS直接编译的固件蓝牙一直正常。


vscode编译的固件在某宝卖的核心板上也运行正常,故推测是自己设计的PCB上没有DCDC功能所需的相关器件造成的问题,但是在查看config.h发现

DCDC_ENABLE

宏已被设置为FALSE,所以也不知道是哪里的问题,只有使用BLE时才有此问题,不用BLE时运行一切正常。?


另外还有一个问题,手里有一个板子蓝牙特征值只能在上电的时候用代码设置一次,用其他工具写特征写不进去,表现为执行了写入操作后再读取特征依然还是原来的值,同样的固件烧录到其他板子就可以正常使用其他工具连接写入特征,这个代码拷贝到MRS编译后再烧录也是这个问题,有问题的板子flash校验能过,请教一下这是什么问题?谢谢解答


所用到的工具是nRF connect,电路与PCB设计等均遵循官方指南。

原理图设计是按照不使用DCDC功能设计的,此原理图核心部分在之前其他设计中也使用过多次,已经验证没有问题。


HAL、RVMSIS、StdPeriphDriver、LIB等目录均从MRS所使用的位置拷贝过去的,链接脚本和启动文件也是拷贝过去的,也对比了项目宏定义也没有问题。


代码开启dcdc使能,务必外挂电感,电感要求可以参考:

额定电流>50mA;自谐振频率>11Mhz;等效电阻<1Ω

可以将你的硬件原理图/PCB提供我们看下:lpc@wch.cn。

第二个问题,可以使用peripheral例程测试,char1通道write数据后再read,查看对应的数据。


@TECH_Lpc 谢谢回复,代码没有开启DCDC使能,外围电路是按照不使用DCDC功能布置的。


第二个问题已经使用peripheral例程测试过了,char1写数据后再读取数据没有被写进去,同样的代码烧录到别的板子上功能正常。


char1写入数据后,看下从机的打印信息,是否触发char1的回调并接收到正确数据。如果接收到,则在read的时候,打印此处数据,查看是否为write的数据。

image.png

供电如果只有0.5V,建议查看一下供电情况,使用typec供电或者3.3V只给vcc。建议使用MRS编译器。

在给到芯片vcc的电压为3.3V的情况下。可以添加一个tmos任务,查看过几秒后是否有周期执行的任务。同时测量vinta的电压是否为1.05V


@TECH_Lpc 谢谢回复,问题已经找到了,EIDE默认的工程模板中宏定义部分有一个多余的内容导致了依赖文件中很多位置在条件编译时发生故障,如下:

 "defineList": [

          "CLK_OSC32K=0"

        ]

就是这个宏定义造成的,这个宏定义在执行条件编译时会选择外部32.768k晶振作为时钟,删除之后可以解决问题了,因为这个宏定义是在eide的专属配置文件中的,所以一直被忽略了


@TECH_Lpc 另外特征值读写问题的那个板子,在删除了这个宏定义外,特征值也可以写入了,但是疑惑的是,这个板子是上了外部32.768k晶振的,按理来说 CLK_OSC32K=0 选择外部晶振也应该是没问题的,难道是外部32.768k晶振有故障?刚才测试了一下,现在无论使用外部LSE还是LSI这个板子又都可以正常写入了,这个板子没有修改任何硬件,只是在那放了几天就好了


只有登录才能回复,可以选择微信账号登录