蓝牙主机在连接外设时会影响到PWM某寄存器值

CH582M 运行Central程序,另一CH582M运行Peripheral程序。

当运行Central程序的CH582M连另一CH582M时,PWM功能会受到影响,出现情况是连接前PWM数据保存寄存器是一个初值,但是在蓝牙连接时,PWM寄存器初值就会跳动,大概率变成127-131数值。

   

更换过两块不同方案的电路板测试问题依然存在,更换过1.5和1.8协议栈测试问题依然存在。

  

用官方的Central的Demo添加了打印0x40005008寄存器值的测试

1693366245847384.png



如下图PWM寄存器R32_PWM8_11_DATA的值从【D3C18300】在BLE连接后变成了【D7C18300】

1693366339196353.png

1693366339477257.png

1693366339847378.png



附上可以复现的精简工程

icon_rar.gifCentral.zip


您好,使用demo板来测试此工程并没有复现上述的现象(lib 1.80版本),可以尝试给初值之后,连接后寄存器的值是否仍会改变,也可以换一个芯片测试看看。


你好,发布问题时我已更换不同外围电路的CH582M板进行测试,不同时间购买的芯片样品测试,发现问题。

今早上使用两块最初评估芯片时淘宝购买的【源地CH582M】核心板测试问题依旧。


在昨天给的程序里面增加了赋初值代码【*((volatile uint32_t *)0x40005008) = 0;】


请试一下我这边能复现问题的固件

icon_rar.giftest.zip


复现步骤

    1.两块板分别烧录固件

    2.Central固件板子连接串口上电启动

    3.peripheral固件板子通电,当Central板子连接成功后断电,再上电。循环直至Central打印出现异常。


乱跳.png


有技术支持微信吗,这个问题需要尽快解决。


您好,可以将完整的工程发送至邮箱hy@wch.cn 我们来帮你看下,目前使用你的主从固件可以复现。


问题大概解决了,在开启HAL_SLEEP宏情况下睡眠唤醒时会影响到某些外设寄存器,我测试了包括TMR1和TMR2的FIFO寄存器也会影响到。

 

针对PWM寄存器的影响可以在【CH58X_LowPower】函数里Sleep模式唤醒后的代码段增加PWM寄存器清零函数。


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