武汉芯源CW32介绍
武汉芯源半导体是上市公司武汉力源信息技术股份有限公司全资子公司,主要是做电机控制方面的MCU。目前已推出:
通用高性能CW32F003/030系列
安全低功耗CW32L083/031/052系列
超低成本CW32L010/011/012高主频(96MHz)低功耗系列
无线射频CW32W031系列产品
CW32L010ESC_Driver电机驱动板是武汉芯源半导体生态社区推出的一款低成本BLDC无刷直流电机开发板。
可用在电钻、筋膜枪、智能小车等产品上。
可驱动电机到11W转多(需要电机、电源等等满足要求)、DIY暴力风扇。
之前在武汉芯源官网申请到了CW32F003和CW32F031的开发板,这次又获得了CW32L010和L011的小开发板,本次将DAPLink上位机DAPLinkUtility增加CW32全系列芯片烧录支持,并自制了全系列选项字节烧录算法,脱机烧录器EasyFlaser-META也将同步支持脱机烧录和选型字节配置烧录。
CW32L010读保护
武汉芯源CW32的全系芯片,没有选项字节,只有读保护设置,设置起来也很简单,以CW32L010为例,该芯片支持4种保护模式,分别为:
Level0,ISP可读写,SWD可读写
Level1,ISP可降级,SWD可降级,数据不可读出
Level2,ISP可降级,SWD无功能,数据不可读出
Level3,ISP无功能,SWD无功能,数据不可读出
等级1和等级2的保护能力一样,区别在于等级1可以通过SWD解除,等级2只能用ISP方式使用串口加官方工具解除。所以为了方便,在项目开发中还是建议使用等级1,这样就不用来回切换工具使用了,毕竟开发调试还是需要用SWD来烧录程序。
注意事项!!!这个芯片的读保护等级修改次数只有48次!修改超过48次之后在修改就无效了!
更改读保护等级的代码官方已经提供,设置起来还是比较简单的:
/**
* @brief 获取当前的读保护等级
*
* @return uint8_t :0/1/2/3
*/
uint8_t FLASH_GetReadOutLevel(void)
{
return(CW_FLASH->CR1_f.SECURITY);
}
/**
* @brief 设置MCU的读保护等级,RdLevel的有效取值范围为0,1,2,3
* //将等级写入MCU后,MCU会自动重启并完成读保护等级修改
* //如果从非0等级变为等级0,则MCU会擦除FLASH内的所有数据
* //Level0,ISP可读写,SWD可读写
* //Level1,ISP可降级,SWD可降级;数据不可读出
* //Level2,ISP可降级,SWD无功能;数据不可读出
* //Level3,ISP无功能,SWD无功能;数据不可读出
* @param RdLevel : FLASH_RDLEVEL0 FLASH_RDLEVEL1
* : FLASH_RDLEVEL2 FLASH_RDLEVEL3
*/
void FLASH_SetReadOutLevel(uint16_t RdLevel)
{
assert_param(IS_FLASH_RDLEVEL(RdLevel));
if(FLASH_GetReadOutLevel() != RdLevel)
{
RdLevel = 0x5A50 | (RdLevel & 0x03u);
*((volatile uint32_t*)(0x4000431C)) = RdLevel;
*((volatile uint32_t*)(0x40004370)) = 0x5A5AABCD; //MCU重启以更新读保护等级
while(1); //MCU重启以更新保护等级
}
}
在线烧录
CW32L010选项字节烧录演示
脱机烧录
CW32F003脱机烧录演示
————————————————
版权声明:本文为CSDN博主「觉皇嵌入式」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq153471503/article/details/151147604
|
|