当前位置:网站首页>STM32 MDK(Keil5) Contents mismatch错误总结
STM32 MDK(Keil5) Contents mismatch错误总结
2022-07-29 05:23:00 【BobBobBao】
硬件、软件背景
- ODrive控制板:ODRIVE V3.6-56V
- 固件版本:fw-v0.5.1(更新版本的固件不再完全开源,用odriveTool时会报错)
- 配备耗散电阻:2Ω
- 编码器:TLE5012B
- 电机:X2212-13 (安装径向磁铁)
- KV:980
- 外转子
- 槽极数:12N14P
- 相间内阻:92mΩ
- 空载电流:0.6A
- 最大连续功率:385W
- 最大连续电流:26A/30S
- 建议使用电流:20~30A
- 下载器:
- STLink/V2
- PWLINK2
- USB转串口:CH340
问题描述
测试ODrive程序时,在配置好ODrive电路、电机参数、TLE5012磁编码器、控制器配置、梯形加减速。参考ODrive踩坑(二)3508电机和TLE5012B磁编码器参数配置、校准、位置闭环模式转动电机(TLE5012B-E1000)。配置完成后,开始电机和编码器校准,输入电机参数校准后,odrivetool无响应。
# 进行电机参数校准(运行后电机会发出哔~的一声)
odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION
进行如下测试:
- ODrive电路板断电重启,odrivetool无响应
- 退出odrivetool,ODrive电路板断电重启后,再启动odrivetool:提示连接设备,说明ODrive电路板与odrivetool没有建立起连接,硬件出了问题

- 退出odrivetool,ODrive电路板断电,拔掉USB头,重新连接USB,ODrive电路板上电,打开odrivetool。仍然无法连接
- 查看设备管理器,插拔USB头,设备管理器没有任何反应。说明硬件根本没有启动USB驱动程序。
- 用STM32CubeProgrammer+STLink重新给STM32F405烧录固件,点击烧录,软件会闪退。更换PowerWriter+PWLINK2给STM32F405烧录固件,烧录成功。再插拔USB头测试,设备管理器仍然没有任何反应。(怀疑MCU出了问题)
- 再次用PWLink2下载程序,一直无法连接到芯片
- 编写最简闪灯程序,用MDK(keil5)+ STLink来测试烧录程序:报错Contents mismatch at: 0800D03AH (Flash=FFH Required=C2H) !Verify Failed!
- 同样的程序,用MDK(keil5)+ PWLink2尝试下载烧录,报同样的错误

错误分析
Contents mismatch at: 0800D03AH (Flash=FFH Required=C2H) !
Verify Failed!
这个错误说明STLink把程序下载到了STM32芯片中,下载完成后STLink会对STM32芯片内Flash的内容(十六进制)与MDK对应.bin文件中的内容进行验证(Verify)。验证时发现STM32芯片Flash地址0800D03AH处的内容与.bin文件不一致,Flash=FFH(即空,Flash擦除后为FF), 而正确的内容是 Required=C2H。所以会报错。针对这个问题尝试了以下几种方法,目前都无效:
在MDK中,Options for target–>Debug–>Settings–>
Flash Download中,去掉Verify,不进行验证。虽然不会报错了,但是用示波器测试,程序任然没有运行。这显然是掩耳盗铃了o(╥﹏╥)o
参考用KL16芯片跑别人的程序出现的BUG_已解决提供的思路:
复位电路硬件出错?下载烧录时,多试几次复位。无效果
擦除整个Flash。测试无效果
用STM32 Cube Programmer读取STM32芯片Flash中内容,用PowerWriter读取.bin/hex文件,对比二者差异。

keil版本过低?我目前测试的是keil V5.23.0.0+STM32F4x_DFP V2.16.0;keil V5.36.0.0+STM32F4x_DFP V1.0.8,两个版本都无法下载。更换STM32F103芯片后可以正常烧录,应该不是软件的问题、DFP包问题


参考Keil : Contents missmatch at:08000E84H Verify Failed!提供的思路:
- 芯片电源引脚是否加了退耦电容?加了
- 电文波是否过大,是否稳定?稳定
- 电路是否虚焊?更换F103RET6,测试能够正常下载使用
- 下载器线太长(可能导致电压、通信不稳)?引线尽量短,问题依然存在

5. MDK中Options for target–>Target–>Memory设置问题?整个工程是用STM32CubeMX生成的,使用的默认设置,尝试过两种IRAM地址,但是问题依然存在
总结
STM32下载烧录出现问题,排查方向:
- 烧录器问题:确认烧录器连接,更换烧录器/连接线
- STM32芯片电源:测试电源引脚供电、纹波大小、退耦电容
- STM32芯片Flash下载设置问题:检查Target选项卡中IROM、RAM地址段,检查Debug选项卡中erase full chip,erase sector,programming algorithm
- IDE软件版本问题:MDK(或者其他软件)版本、STM32 PACK包版本
- 芯片Flash损坏,更换芯片
目前能想到的问题都测试过了,只有新买个芯片更换上去再试了。但是具体问题仍然没有找到,始终觉得是个隐患。
边栏推荐
- 新能源充电桩后台管理系统平台
- 4、 Application of one hot and loss function
- Torch. NN. Embedding() details
- Migration learning - geodesic flow kernel for unsupervised domain adaptation
- 低成本2.4GHz 无线收发芯片--Ci24R1
- Hal library learning notes - 8 use of serial communication
- 三、如何搞自定义数据集?
- Transfer joint matching for unsupervised domain adaptation
- Flink connector Oracle CDC synchronizes data to MySQL in real time (oracle12c)
- Si12T和Si14T低功耗电容触摸芯片
猜你喜欢

预训练语言模型的使用方法

ML7自学笔记
![[target detection] generalized focal loss v1](/img/8b/458d51422df8dcda65cb6afaa10b3f.png)
[target detection] generalized focal loss v1

基于wifi的温度采集与控制系统

六、基于深度学习关键点的指针式表计识别

2022春招——芯动科技FPGA岗技术面(一面心得)

京微齐力:基于HMEP060的心率血氧模块开发(1:FPGA发送多位指令)

Chongqing Avenue cloud bank, as a representative of the software industry, was invited to participate in the signing ceremony of key projects in Yuzhong District

1、 Usage of common loss function

物联网倾斜监测解决方案
随机推荐
QT learning notes QtSql
Migration learning - geodesic flow kernel for unsupervised domain adaptation
PHY6252是一款超低功耗物联网蓝牙无线通信芯片
CV520国产替代Ci521 13.56MHz 非接触式读写器芯片
Transfer feature learning with joint distribution adaptation
二、多并发实现接口压力测试
HAL库学习笔记- 8 串口通信之概念
倾角传感器精度校准检测
华为云14天鸿蒙设备开发-Day3内核开发
基于51单片机的DAC0832波形发生器
Torch. NN. Embedding() details
C connect to SharePoint online webservice
QT学习笔记-QtSQL
Torch. NN. Parameter() function understanding
[target detection] generalized focal loss v1
125KHz唤醒功能2.4GHz单发射芯片-Si24R2H
Transformer review + understanding
ML15 neural network (1)
2021-06-10
Tf.get in tensorflow_ Detailed explanation of variable() function