硬汉嵌入式论坛

 找回密码
 立即注册
查看: 12087|回复: 4
收起左侧

[客户分享] STM32F40x 和 STM32F41x  CPU硬件BUG

[复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2012-10-28 16:53:02 | 显示全部楼层 |阅读模式

STM32F40x and STM32F41x Errata sheet(2012-08 Rev 3).pdf (277 KB, 下载次数: 245)

还未未翻译完,留个帖子保存下翻译内容。
没有时间翻译了,大家如果有时间,可以帮忙翻译下,全部结束后,我将整理文档格式为 pdf 文档,共享给大家。

STM32F40x 和 STM32F41x 硬件BUG

2.1 系统
2.1.1 不支持ART预取指令加速
版本A不支持ART预取指令加速功能。
版本A无此BUG

2.1.2 MCU器件ID不正确
A版本,STM32F40x、STM32F41x和STM32F20x、STM32F21x 具有相同的器件ID。器件ID可以通过读0xE004 2000获得。
对于版本A,可以结合内核型号来区别。STM32F2xxx的内核为CortexM3, STM32F4xxx的内核为CortexM4
版本Z无此BUG

2.1.3 调试Stop模式和systick定时器
在Stop模式调试时(DBGMCU_CR寄存器的DBG_STOP位为1),如果systick定时器中断使能,它会将从CPU从Stop模式唤醒。
解决方法:调试Stop模式时,请静止Systick 定时中断。


2.1.4 调试WFE进入的调试模式
当DBGMCU_CR寄存器的DBG_STOP位为1时,应该允许在Stop模式调试软件。
然而,如果软件使用WFE指令进入Stop模式,在唤醒后WFE指令后面的指令可能遗失。
解决方法:在WFE指令后面插入一条NOP指令, 例如:
__asm void _WFE(void) {
   WFE
   NOP
   BX lr }

2.1.5 无NJTRST引脚的全功能JTAG接口无法使用
问题描述:如果NJTRST(PB4)用足普通GPIO,那么4线JTAG接口将无法使用。
解决方法:使用2线的SWD调试接口替代4线JTAG接口。

2.1.6 Z版本PDR_ON引脚功能在LQFP100封装的器件中无效
问题描述:Z版本LQFP100封装的器件,PDR_ON(99脚)固定接Vss。也可以这样认为:POR/PDR(上电复位和掉电复位)一直使能。
解决方法:
  A版本的PDR_ON引脚连接到VDD(POR/PDR使能)
  Z版本连接PDR_ON引脚到VSS
  如果A版本的PDR_ON引脚连接到VSS(POR/PDR禁止)。以后MCU升级到Z版本时,无需修改硬件。然而,因为POR/PDR使能时VDD最小值是1.8V,
  因此LQF100封装的MCU的供电电压VDD不能为1.7V。

2.1.7 连续编程BOR选项字节时会出错
问题描述:当AHB预分频设置大于2时,连续编程BOR选项字节将导致写入错误的数据。
解决方法:每编程一个BOR字节时执行一次系统复位,即使当AHB与分频设置为1或2时。

2.1.8 配置PH10和PI10作为外部中断时将导致错误结果
问题描述:PH10和PI10作为EXTI10外部中断源时(通过设置SYSCFG_EXTICR3寄存器的EXTI10[3:0]为0x0111或0x1000),
将使能PH2和PI2为外部中断源。造成的结果是如果PH2/PI2没有设置为中断源时,PH10/PI10不能作为外部中断源。
意思是SYSCFG_EXTICR3寄存器的EXTI10[3:0]和SYSCFG_EXTICR1寄存器的EXTI2[3:0]将被编程为相同的值:
0x0111 将选择PH10/PH2为中断源
0x1000 将选择PI10/PI2为中断源
解决办法:无

2.1.9 同时管理AHB和APB外设时,DMA2数据将混乱
问题描述:当DMA2正在管理AHB外设(仅外设内置FIFO)并且APB传输时,将产生数据混乱(多个DMA访问)
反生的条件:
  1、被DMA传输到AHB外设的数据将被破坏
  2、对于内存,结果是多重访问(软件不可见),数据不会被破坏
  3、对于DCMI,将产生一个多重无应答请求,也可以说是一个位置的DMA行为

  AHB外设内置FIFO指DCMI,CRYPTO和HASH。在售的型号没有CRYPTO,仅DCMI被影响。通过FSMC控制的FIFO也被影响。
解决办法:避免用DMA2同时管理AHB(DCMI,CRYPTO,HASH,FSMC外部FIFO)和APB传输。

2.1.10 DMA传输时降低APB时钟将导致DMA传输终止
问题描述:当DMA正在对APB外设执行写操作时,如果CPU修改APB时钟(降低时钟;修改AHB/APB预分频从1到2,1到4,1到8或者1到16)
将导致DMA传输被终止。只有系统复位才能恢复。
解决方法:在降低APB时钟前,等待这个APB上的DMA传输结束。

2.1.11 MPU属性设置到RTC和IWDG寄存器时将被错误管理
问题描述:如果MPU被使用并且无缓冲属性被设置到RTC或IWDG内存映射区域时,CPU访问RTC或IWDG寄存器将被作为可缓冲的,
但前提是没有配置APB预分频(AHB/APB与分频比为1)
解决办法:如果这些寄存器需要无缓冲特性,软件可以在写操作后执行一次读操作,从而保证写操作完成。

2.1.12 RCC外设时钟使能后的延迟
问题描述:使能RCC外设时钟和外设有效之间存在延迟
这个延迟决定于外设映射:
1, 如果外设映射到AHB,延迟将是2 个AHB周期
2. 如果外设映射到APB,延迟将是1 + (AHB/APB预分频比)个周期

解决方法:
1) 使用DSB指令暂缓Cortex-M CPU 管道直到执行完成为止
2) 在写RCC使能位和写外设寄存器之间插入n个NOP指令
  AHB外设,n = 2;   APB外设,n = 1 + AHB/APB分频比

2.1.13 电池电压检测低于2.4V
问题描述:如果 (VDD = VDDA)低于或等于2.4V,将不能保证在全温度范围内和全电压范围内VBAT转换的正确性。
当VBAT被设置分压(VBAT/2)连接到ADC输入时。为了正确地监视电池电压,ADC输入必须不高于(VDD-0.6V).
于是, VBAT/2 < VDD - 0.6V 指示为 VDD > 2.4V

解决方法:无。 (VDD = VDDA)应该大于2.4V。
2.1.14 内部噪声印象ADC精度
问题描述:内部产生的VDD噪声在内部传播可能影响ADC精度
这个噪声一直有效,无论MCU的电源模式是RUN还是Sleep.

解决方法:
1、配置Flash ART为关闭预取功能和(Data + 指令)cache 打开
2、对ADC转算结果进行平均和滤波处理

对于更多的细节,请参考 AN4073
2.2 IWDG 外设限制
2.2.1 进入STOP模式RVU和PVU标志没有复位
问题描述:写IWDG_RLR和IWDG_PR寄存器后IWDG_SR寄存器的RVU和PVU标志应该由硬件分别设置为1.
如果在写操作后立即进入STOP模式,RVU和PVU标志不能被硬件设置为1

在执行第2次写IWDG_RLR或IWDG_PR寄存器之前,软件必须等待RVU或PVU标志被复位。
但因为退出STOP模式时,RVU/PVU标志没有复位,软件可能进入死循环,独立看门狗(IWDG)超时后产生
一个复位信号。

解决方法:进入STOP模式之前,等待IWDG_SR寄存器的RVU或PVU标志复位。
2.3 I2C外设限制
2.3.1 SMBus标准支持不完全
问题描述:I2C外设不能完全兼容SMBus v2.0标准,因为它不支持NACK应答一个无效字节/命令。
解决办法:在对目标设置进行写操作时,使用高层机制,比如:
1、如果主机支持的话,使用SMBAL引脚
2、告警应带地址协议(ARA)
3、主机通知协议

2.3.2 一个错位的Stop之后不能产生Start
问题描述:如果主机产生一个错位的Stop(总线错误),外设不能产生Start
解决方法:在I2C标准中,仅在完整字节(8Bit+ACK)结束后才允许发送Stop,所以这种情况是不允许的。
其它的衍生协议,象CBUS允许这种情况发生,但MCU的I2C外设不支持。

软件的解决方法为使用I2C_CR1控制寄存器中的SWRST位复位I2C外设。
2.3.3
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2013-5-20 10:25:09 | 显示全部楼层
【原创】数据手册首页翻译结果: 暂存
  

■ Core:ARM 32位带FPU浮点Cortex-M4内核,ART技术实现0等待执行Flash中的代码,最高频率至168MHz,内存保护单元,210 DMIPS / 1.25 DMIPS/MHz,DSP指令
■ 存储器
- 1M字节Flash存储器
- 192 + 4K 字节 SRAM, 含 64K字节CCM(内核紧密耦合内存)
- FSMC总线,支持CF、SRAM、PSRAM、NOR 和 NAND 存储器
■ LCD并口,8080/6800模式
■ 时钟,复位和电源管理
- 供电电压1.8V到3.6V
- POR, PDR, PVD 和 BOR
- 4 – 26MHz 晶振
- 内部16M校准的RC(1%精度)
- 32 kHz振荡器用于RTC,带校准
- 内部32kHz RC, 带校准
■ 低功耗
- Sleep、Stop和Standby模式
- VBAT供电给:RTC、20x32位backup寄存器 + 可选的4KB backup SRAM
■ 3x12位,2.4MSPS A/D转换器:最大24通道;最高采样频率7.2MSPS(3个ADC交替采样)
■ 2x12位D/A转换器
■ 通用DMA:16-stream DMA 控制器带FIFO,支持突发模式
■ 多达17个定时器:12个16位和2个32位 168M定时器,每个定时器有4个输入捕获/输出捕获/PWM输出或者脉冲计数器、正交编码器输入
■ Debug模式:
- SWD和JTAG调试接口
- Cortex-M4内嵌Trace Macrocel
■ 多达140个I/O,均带中断能力
- 136个快速I/O,最高84MHz
- 多达138个 5V兼容的I/O
■ 多大15个通信接口
- 3个IC接口(SMBus/PMBus)
- 4个USART/2个UART(10.5Mbit/s, ISO7816, LIN, IrDA, modem)
- 3个SPI(37.5Mbits/s),2个全双工I2S(内部音频PLL或外部时钟)
- 2个CAN接口(2.0B)
- SDIO接口
■ 高级互联
- USB 2.0全速device/host/OTG控制器,内置PHY
- USB 2.0高速/全速device/host/OTG控制器,带DMA,片内全速PHY和ULPI
- 10/100M以太网MAC,带DMA;支持IEEE 1588v2, MII/RMII
■ 8-14位并行摄像头接口,最高54MBytes/s
■ 真随机数发生器
■ CRC计算单元
■ 96-bit唯一ID (UID)
■ RTC: 亚秒级精度,硬件日历
回复

使用道具 举报

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
发表于 2013-6-22 13:17:43 | 显示全部楼层
不错不错,支持支持
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2013-7-25 09:47:00 | 显示全部楼层
不错,昨晚用尝试使用USART1失败,今天逛了论坛才知道原因何在,支持
学无止境。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2013-8-31 09:27:25 | 显示全部楼层
希望继续努力,加油,快点翻译完,造福我等E文盲
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 04:05 , Processed in 0.168194 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表