CW32L010数据手册/用户手册/固件库
本帖最后由 pssyx 于 2025-2-10 14:43 编辑武汉芯源半导体发布高性价比、安全低功耗MCU: CW32L010系列{:victory:}
CW32L010数据手册 Rev1.2 2024/12/06
官网下载链接:
https://www.whxy.com/uploads/files/20250114/CW32L010_DataSheet_CN_V1.2.pdf
CW32L010用户手册 Rev1.1 2025/02/10
官网下载链接:
https://www.whxy.com/uploads/files/20250210/CW32L010_UserManual_CN_V1.1.pdf
CW32L010固件库 Rev1.0.4 2025/01/09
官网下载链接:
https://www.whxy.com/uploads/files/20250109/CW32L010_StandardPeripheralLib_V1.0.4.zip
看看,低功耗表现和430相比咋样 这个功耗如果能和MSP430拼一下,那就更好了。 定时器变化挺大的,看手册定时器部分,怀疑是在看ST的手册 正好需要,最近还申请到了一块L010的开发板,资料先下载下来瞅瞅,后续直接练练手 学习低功耗开发板 CW32L010固件库 Rev1.0.3 2024/11/18
执行ADC之后,再复位ADC,关掉ADC时钟,功耗依然再100uA跳动,不知道哪里没有关闭成功;
不操作ADC,啧不会多出100uA的电流; 本帖最后由 ye_jian_ping 于 2024-12-6 10:14 编辑
uint16_t V_Battery(void)
{
uint16_t Result_V = 3000;
/* ADC_InitTypeDef ADC_InitStructure = {0};
uint8_t i;
uint16_t TempShort,BGR_CST;
uint16_t Max,Min;
uint16_t Sum;
__SYSCTRL_ADC_CLK_ENABLE(); //打开ADC时钟
REGBITS_SET(CW_ADC->CR, ADC_CR_BGREN_Msk); //
......
//关闭资源;
// ADC_Disable();
__SYSCTRL_ADC_CLK_DISABLE(); //
CW_ADC->CR = 0x00000000; //恢复默认值;
ADC_DeInit(); //
*/
return Result_V;
}
留意/* ...... */
不屏蔽代码,则会多出100uA;
屏蔽代码,则是OK的,功耗不会奇高;
ye_jian_ping 发表于 2024-12-5 09:00
uint16_t V_Battery(void)
{
uint16_t Result_V = 3000;
不要DeInit这句话试下
这个芯片的功耗确实挺低的,很好的一款芯片。 ye_jian_ping 发表于 2024-12-5 09:00
uint16_t V_Battery(void)
{
uint16_t Result_V = 3000;
1、功耗多了100uA,原因是BGR没有关闭成功!
2、执行__SYSCTRL_ADC_CLK_DISABLE(); 之后,CW_ADC->CR = 0x00000000; 这一句无法生效。故需要两者交换下顺序即可。
3、试试将ADC待转换通道,更改为除ADC_InputVref1P2之外的其它通道,观察下待机电流。 新规格书 Vcore 电容 470n -> 1u使用470n 带来的风险是什么? J-Link可以仿真CW芯片吗,为什么我一直找不到device呢
ateganyl 发表于 2024-12-8 16:04
J-Link可以仿真CW芯片吗,为什么我一直找不到device呢
当然能仿真CW32 MCU,请参考附图。请检查SWD接线,MCU电源等硬件。
可以出gcc环境下的开发文件吗,我用的gcc 小涛DZGZS 发表于 2024-12-9 13:24
可以出gcc环境下的开发文件吗,我用的gcc
CW32L010的GCC示例,请参考本版帖子:
https://bbs.21ic.com/icview-3420196-1-1.html 千万注意,复位脚当IO口使用。
这个功能不是通过配置字固化的,而是只能在程序运行时通过软件去修改寄存器实现。因此默认只能是复位功能。不是所有场合都能适用。 ye_jian_ping 发表于 2024-12-5 08:56
CW32L010固件库 Rev1.0.3 2024/11/18
执行ADC之后,再复位ADC,关掉ADC时钟,功耗依然再100uA跳 ...
// 休眠关闭ADC操作
ADC_Disable(); // 关闭中断(实测调用ADC_DeInit并不能关闭ADC)
ADC_DeInit(); // 注意,此操作并不能关闭ADC
__SYSCTRL_ADC_CLK_DISABLE(); // 关闭ADC时钟
页:
[1]