找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

nm1120程序驱动高压bldc电机,下载器怎么配置好

[复制链接]
楼主
Angus 发表于 2023-3-15 14:05:46 | 显示全部楼层
写FLASH, 请参考BSP中的代码,写之前要检测VDD, 电压低就不要写了,VDD 还要加大电容,防止刚检测完VDD不低,就开始写FLASH, 然后没电了,数据就乱了。
回复 支持 反对

使用道具 举报

沙发
Angus 发表于 2023-3-15 16:59:47 | 显示全部楼层
可以用BOD 中断,但是,硬件上必须有大电容,如果有耗电较大的元件与MCU 共用电源,还要接一个二极管。如果写FLASH 中间过程,掉电了,电容里的电足以维持到写完FLASH。
回复 支持 反对

使用道具 举报

板凳
Angus 发表于 2023-3-23 13:49:21 | 显示全部楼层

FLASH 页擦除启动后,代码执行停住,等20ms 后CPU才会继续执行代码。

启动擦除前检测VCC不低,但是刚启动 FLASH 擦除就掉电了,这时只能依靠电容里的电,维持MCU 工作,所以这个电容要加大。


如果VCC 上还并联着一个耗电很大的电路,可能1000uF电容,也是掉电后不到20ms 没电了。这时该怎么办呢?  这个问题留给你思考,办法有多种。

回复 支持 反对

使用道具 举报

地板
Angus 发表于 2023-3-23 21:05:16 | 显示全部楼层
本帖最后由 Angus 于 2023-3-23 21:06 编辑
liyuloveyou 发表于 2023-3-23 16:39
FLASH 页擦除启动后,代码执行停住,等20ms 后CPU才会继续执行代码。

一旦启动flash页擦除 我的程序代 ...

这是FLASH 的特性,哪个公司的芯片都一样。擦除一个扇区需要几十毫秒,这期间不能读出数据。

这个时候如果UART来数据了,UART能接收,若UART 中断代码在FLASH 中,无法执行,如果UART 速率又很快,连续发过来数据,缓存满了就会丢数据。如果UART 中断代码在RAM 中,则可以执行中断代码读出数据。
回复 支持 反对

使用道具 举报

5#
Angus 发表于 2023-3-27 09:15:24 | 显示全部楼层
liyuloveyou 发表于 2023-3-27 08:37
在读 写 擦除 date flash的时候  我要关闭所有中断吗?

不需要关中断。

擦写FLSAH时,

如果代码在FLASH 里执行,CPU无法取指令,代码执行停止。中断也不例外。

如果代码在RAM 中执行,CPU 可以取指令,仍可以执行代码,有中断能正常执行,但是中断向量表也要放RAM中。
回复 支持 1 反对 0

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU