logo资料库

STM32F107_Errata_CH_V1(6STM32勘误资料).pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
芯片的识别
1 ARM™ 32-bit Cortex®-M3 的使用限制
1.1 Cortex-M3的局限性在STM32F105xx/STM32F107xx互联型产品的影响
1.1.1 Cortex-M3在中断或访问失效时,LDRD列表中的基址操作可能导致不正确的基址寄存器内容
1.1.2 Cortex-M3事件寄存器没有被中断和调试设置
1.1.3 Cortex-M3的BKPT在调试监控模式下可以导致DFSR不匹配
1.1.4 Cortex-M3可能在使用SLEEPONEXIT功能时,在单指令的ISR中停止
2 STM32F10xxx 芯片的使用限制
2.1 在ADC输入0上的电压毛刺
2.2 WFI/WFE指令之后读Flash存储器
2.3 复用功能
2.3.1 SPI1处于从模式并且USART2处于同步模式
2.3.2 SPI1处于主模式并且USART2处于同步模式
2.3.3 SPI2处于从模式并且USART3处于同步模式
2.3.4 SPI2处于主模式并且USART3处于同步模式
2.4 边缘扫描TAP:”capture IR”状态之后送出错误的数据
2.5 相对于设置STRT位,Flash存储器的BSY位延后
2.6 I2C外设
2.6.1 某些软件事件必须在发送当前字节之前处理
2.6.2 不完全支持SMBus标准
2.7 通用定时器
2.7.1 捕获标志丢失
2.7.2 过早检测到捕获溢出
2.7.3 通用定时器:占空比为100%的PWM
2.8 LSI时钟稳定时间
2.9 如果PLL的输入为HSE且预分频系数>1或输入为PLL2,复位后当PLL的输入是HSI/2时,PLL不能锁住
附录A 产品上版本号标示
版本修订记录
STM32F105xx和 STM32F107xx 勘误手册 STM32F105xx和STM32F107xx版本Z 互联型产品的使用限制 芯片的识别 该勘误表适用于意法半导体的STM32F105xx和STM32F107xx互联型版本Z的芯片。该芯片系列集成 了ARM™ 32位Cortex®-M3内核,本文中也包含内核的勘误信息(详见第1章)。 表2列出了所有的产品型号。表1列出了本文涉及产品的识别: ● 通过芯片封装上产品标识下的版本号 ● 通过包装盒标签上的产品标识的最后3个数字 表1 芯片的识别(1) 销售型号 STM32F105xx STM32F107xx 标注在芯片上的版本代码(2) “Z” “Z” 1. DBGMCU_IDCODE寄存器中REV_ID位指明芯片的版本号(关于版本号的详情,参见STM32F10xxx参考手册) 2. 关于在不同芯片封装上识别版本号,请参考附录A:产品上版本号标示。 表2 芯片概览 涉及到的芯片 STM32F105x STM32F107xx 芯片型号 STM32F105R8, STM32F105V8 STM32F105RB, STM32F105VB STM32F105RC, STM32F105VC STM32F107RB, STM32F107VB STM32F107RC, STM32F107VC 译著:本文英文原文下载地址:http://www.st.com/stonline/products/literature/es/15866.pdf 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 1/11
1 STM32F105xx和STM32F107xx勘误手册 ARM™ 32-bit Cortex®-M3 的使用限制 STM32F10xxx内核的勘误可以从如下网址获得: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.eat0420a/ 还有一个勘误PDF文档的直接链接地址: http://infocenter.arm.com/help/topic/com.arm.doc.eat0420a/Cortex-M3-Errata-r1p1-v0.2.pdf 描述的所有限制对应用的影响都很小,并且是针对Cortex-M3内核中的r1p1-01rel0版本。下表列出了这 些局限性和它们对STM32F105xx/STM32F107xx互联型产品所产生的影响。 表3 Cortex-M3核心局限性和对微控制器的影响 ARM 勘误ID 对STM32F10xxx 中容量产品的影响 ARM勘误说明 ARM 勘误分类 602117 563915 531064 511864 532314 538714 548721 463763 463764 463769 2 类 2 类 实现 3 类 3 类 3 类 3 类 3 类 3 类 3 类 如果LDRD的基址在队列中,当被中断或失效时会导致不正确的基址寄 存器 事件寄存器没有被中断和调试设置 SWJ_DP缺少POR复位同步 从异常返回时,Cortex-M3可能使用不正确的优先级取指令 DWT CPI计数器在睡眠时递增 Cortex-M3 TPIU时钟区域交叉 内部写缓冲区可能在睡眠时仍活跃 BKPT在调试监控模式下能产生DFSR不匹配 核心可能停止在SLEEPONEXIT单指令ISR 在写操作时不对齐的MPU失效可能导致写入错误的数据到一个成功的 第一次操作 小 小 没有 没有 没有 没有 没有 小 小 没有 1.1 Cortex-M3的局限性在STM32F105xx/STM32F107xx互联型产品 的影响 只有下面涉及的局限性才对STM32F105xx/STM32F107xx互联型产品的实现产生较小的影响。 在ARM的勘误文档中所有其它的局限性(在表3列出),对STM32F105xx/STM32F107xx互联型产品 (Cortex-M3 r1p1-01rel0)没有影响,也与STM32F105xx/STM32F107xx互联型产品的实现无关。 1.1.1 Cortex-M3在中断或访问失效时,LDRD列表中的基址操作可能导致不正确 的基址寄存器内容 问题描述 从系统总线区执行LDRD指令时,当在一个列表中的基址寄存器出现下述形式的指令时,Cortex-M3 核心有一个缺陷:LDRD Ra, Rb, [Ra, #imm]。在加载了第一个目标寄存器后,可能因为加载第二个 寄存器完成之前的中断,或因为加载第二个寄存器而产生总线失败时,不能完成指令的执行。 暂时解决办法 1. 当 STM32F10xxx 以 标 准 的 形 式 — — 从 内 置 闪 存 存 储 器 运 行 代 码 时 , 这 个 局 限 性 不 影 响 STM32F10xxx的运行。 2. 使用最新的编译器版本,从本文档发布之日起,编译器将不再产生这样的指令。同时,可以向你 的编译器供应商索取”扫描工具”,它可以用于在早期版本编译器产生的代码中,检测这样的指令。 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 2/11
STM32F105xx和STM32F107xx勘误手册 1.1.2 Cortex-M3事件寄存器没有被中断和调试设置 问题描述 当中断与一个WFE相关,而在WFE执行之前产生了这个中断时,不能设置用于WFE唤醒事件的事件 寄存器,该事件会被丢失。因此,当执行WFE时,如果没有其它事件或中断发生时,核心不能被唤醒。 暂时解决办法 配置一个外部的或内部的EXTI线为事件模式,使用STM32F10xxx的外部事件,代替中断去把核心从 WFE唤醒。 1.1.3 Cortex-M3的BKPT在调试监控模式下可以导致DFSR不匹配 问题描述 在调试监控模式下有可能执行BKPT指令,这会产生调用调试监控程序,但是在地址0xE000ED30的 调试失效状态寄存器(DFSR)的位1并没有被设置,该位指示调用调试监控程序的源头是BKPT指令。 这个现象仅仅出现在即将执行BKPT之前,正要处理中断而不是调试监控的时候。 暂时解决办法 如果在进入调试监控程序时,DFSR寄存器中没有任何标志位,则表示出现了这种极端情况,即在调 试监控模式下执行了BKPT指令。 1.1.4 Cortex-M3可能在使用SLEEPONEXIT功能时,在单指令的ISR中停止 问题描述 如果使用了Cortex-M3的SLEEPONEXIT功能,并且涉及到的中断服务程序(ISR)仅包含一条指令,则 核心会停止。如果只用一个中断有效,而且这个中断被一个仅包含一条指令的中断处理程序所抢断时, 核心将会停止。 但是,如果任何新的中断能够造成抢断当前的中断处理程序,则核心恢复正常。 暂时解决办法 这个现象不会发生在真实地应用系统中,因为任何中断服务程序至少会包含一条以上的指令。如果确 实只有一条指令,可以在退出指令(BX或BLX)之前插入一个NOP或任何其它指令。 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 3/11
STM32F105xx和STM32F107xx勘误手册 2 STM32F10xxx 芯片的使用限制 下表是所有已经发现的局限性概览: 表4 芯片局限性列表 芯片局限性 第2.1节:在ADC输入0上的电压毛刺 第2.2节:WFI/WFE指令之后读Flash存储器 第2.3节:复用功能 2.3.1节:SPI1处于从模式并且USART2处于同步模式 2.3.2节:SPI1处于主模式并且USART2处于同步模式 2.3.3节:SPI2处于从模式并且USART3处于同步模式 2.3.4:SPI2处于主模式并且USART3处于同步模式节 第2.4节:边缘扫描TAP:”capture IR”状态之后送出错误的数据 第2.5节:相对于设置STRT位,Flash存储器的BSY位延后 第2.6节:I2C外设 第2.7节:通用定时器 2.6.1节:某些软件事件必须在发送当前字节之前处理 2.6.2节:不完全支持SMBus标准 2.7.1节:捕获标志丢失 2.7.2节:过早检测到捕获溢出 2.7.3节:通用定时器:占空比为100%的PWM 第2.8节:LSI时钟稳定时间 第2.9节:如果PLL的输入为HSE且预分频系数>1或输入为PLL2,复位后当PLL的输 入是HSI/2时,PLL不能锁住 1. 原有的局限性是指那些在STM32大容量产品版本Z上已有局限性。 2.1 在ADC输入0上的电压毛刺 原有的 局限性(1) 版本Z的 局限性 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 问题描述 当以注入触发进行ADC转换时,在PA0引脚(ADC输入0)上,可能会产生一个低振幅的电压毛刺。这 个毛刺是由内部耦合和同步到注入序列的开始和结束产生的,与要转换的通道无关。 毛刺的振幅低于150mV,典型的持续时间是10ns(在I/O引脚配置为高阻输入并悬空时测量的)。如果 PA0是作为数字输出,这将不会影响到输出信号。如果PA0是配置为数字输入,只要驱动PA0的另一 端的阻抗低于5kΩ,这个毛刺将不会被检测为意外的转换。在单ADC配置时,这个毛刺不会对端口A 的其它引脚产生影响,也不会对ADC注入转换的结果产生影响。 当使用ADC的双模式,并使用注入触发时,为了避免任何可能的副作用,建议分配模拟通道时,把通 道0配置为注入通道。 暂时解决办法 无。 2.2 WFI/WFE指令之后读Flash存储器 配置条件 ● 打开Flash的预取指 ● Flash的时序设置为2个等待周期 ● 在停止模式下,FLITF(Flash接口)时钟停止 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 4/11
STM32F105xx和STM32F107xx勘误手册 问题描述 如果在访问Flash存储器时,执行了WFI/WFE指令,而睡眠的时间又非常的短(少于2个时钟周期),则 在下一个唤醒事件时,从Flash存储器的取指操作可能被干扰。 暂时解决办法 当使用2个等待周期的Flash存储器配置并打开预取指功能时,在睡眠模式下不要停止FLITF(Flash接 口)的时钟,即保持RCC_AHBENR寄存器的FLITFEN位为”1”(默认的复位状态)。 2.3 复用功能 在某些特殊的情况下, 映射到同一个引脚上的多个复用功能可能会有一些使用限制。 2.3.1 SPI1处于从模式并且USART2处于同步模式 配置条件 ● SPI1和USART2的时钟都使能 ● PA4被配置为复用输出 问题描述 如果SPI1处于从模式,则USART2(由于USART2_CK)不能工作于同步模式。 暂时解决办法 无 2.3.2 SPI1处于主模式并且USART2处于同步模式 配置条件 ● SPI1和USART2的时钟都使能 ● PA4被配置为复用输出 问题描述 如果SPI1处于主模式,并且SPI1_NSS配置为软件控制,则USART2不能工作于同步模式。因为以上 的情况造成USART2_CK引脚上不能输出。 暂时解决办法 为了输出USART2_CK,必须设置SPI1_CR2寄存器中的SSOE位为’1’以使引脚处于输出模式。 2.3.3 SPI2处于从模式并且USART3处于同步模式 配置条件 ● SPI2和USART3的时钟都使能 ● PB12被配置为复用输出 问题描述 如果SPI2处于从模式,则USART3(由于USART3_CK)不能工作于同步模式。 暂时解决办法 无 2.3.4 SPI2处于主模式并且USART3处于同步模式 配置条件 ● SPI2和USART32的时钟都使能 ● PB12被配置为复用输出 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 5/11
STM32F105xx和STM32F107xx勘误手册 问题描述 如果SPI2处于主模式,并且SPI2_NSS配置为软件控制,则USART3不能工作于同步模式。因为以上 的情况造成USART3_CK引脚上不能输出。 暂时解决办法 为了输出USART3_CK,必须设置SPI2_CR2寄存器中的SSOE位为’1’以使引脚处于输出模式。 2.4 边缘扫描TAP:”capture IR”状态之后送出错误的数据 问题描述 当边缘扫描TAP进入”capture IR”状态之后,指令寄存器中2个最低位应该被加载为”01”,以便在移入 下一个指令时移出去。 但是,边缘扫描TAP会移出最后进入指令寄存器的数值,可以是”00”、”01”、”10”或”11”。 暂时解决办法 在边缘扫描的流程中,应该丢弃”capture IR” 状态之后移出的数据,软件不能仅仅检查最低2 位 (XXXX01),而应该检查所有的寄存器位(XXXXX)。 2.5 相对于设置STRT位,Flash存储器的BSY位延后 问题描述 当设置了Flash存储器控制寄存器的STRT位(启动擦除操作),Flash存储器状态寄存器的BSY位晚一个 周期变高。 如果在写入了FLASH_CR寄存器(设置STRT位)之后,立即读取FLASH_SR寄存器,则BSY位为’0’。 暂时解决办法 在设置了STRT位,至少一个周期之后再读BSY位。 I2C外设 2.6 2.6.1 某些软件事件必须在发送当前字节之前处理 问题描述 如果没有在传输当前字节之前处理EV7、EV7_1、EV6_1、EV2、EV8和EV3事件,有可能产生问题, 如收到一个额外的字节、两次读到相同的数据或丢失数据。 暂时解决办法 当不能在传输当前字节之前和当改变ACK控制位送出相应脉冲之前,处理EV7、EV7_1、EV6_1、EV2、 EV8和EV3事件时,建议如下操作: 1. 使用I2C的DMA模式,除非作为主设备时只接收一个字节。 2. 使用I2C的中断并把它的优先级设为最高级别,使得它不能被中断。 2.6.2 不完全支持SMBus标准 问题描述 I2C外设不完全兼容SMBus v2.0标准,它不能对非法的字节或命令发送一个NACK。 暂时解决办法 需要实现高层次的处理机制,验证在目标设备上执行的写操作是正确的,例如: 1. 如果主机支持,使用SMBAL引脚。 2. 使用警告响应地址(ARA)协议。 3. 使用主机提醒协议。 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 6/11
STM32F105xx和STM32F107xx勘误手册 2.7 通用定时器 2.7.1 捕获标志丢失 问题描述 在捕获模式下,当发生捕获时正好在读CCRx寄存器,捕获标志(CCxIF)可能被清除而没有设置捕获溢 出标志(CCxOF)。实际上,新的数据已经捕获至捕获寄存器中。 暂时解决办法 在处理捕获中断时,可以在读出捕获寄存器之前,使能捕获引脚上的外部中断,然后在读出捕获数据 后关闭这个外部中断。这样有可能通过EXTI设备检测到错过的捕获事件。 2.7.2 过早检测到捕获溢出 问题描述 在捕获模式下,可能在没有丢失数据的情况下设置了捕获溢出标志(CCxOF)。 条件 当发生捕获时正好在读捕获寄存器,即使前面捕获的数据已被读出并且新的数据已经存入捕获寄存 器,也会设置捕获溢出标志。 暂时解决办法 无 2.7.3 通用定时器:占空比为100%的PWM 问题描述 当使用OCREF_CLR功能时,当在OCREF_CLR信号上施加一个高电平,OCxREF信号变为无效(导 致OCx无效并且OCxN有效),PWM会在下一次计数器溢出时重新开始(输出再使能)。 但是如果PWM被配置为100%(CCxR > ARR),则不能重新开始,同时OCxREF保持无效。 暂时解决办法 无 2.8 LSI时钟稳定时间 问题描述 当设置了LSIRDY标志,时钟仍有可能不在给定的频率范围内(见产品数据手册中的LSI振荡器特性,fLSI 参数)。 暂时解决办法 为得到在给定范围内完全稳定的时钟,使用软件加入一个100μs的稳定时间。 2.9 如果PLL的输入为HSE且预分频系数>1或输入为PLL2,复位后当 PLL的输入是HSI/2时,PLL不能锁住 问题描述 当出现下述序列时,会出现问题: ● PLL输入=HSI/2,SYSCLK输入=PLL ● PLL输入=HSE,并且与分频系数>1,或PLL输入=PLL2;SYSCLK输入=PLL ● 系统复位 ● PLL输入=HSI/2,SYSCLK输入=PLL 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 7/11
STM32F105xx和STM32F107xx勘误手册 如果PLL的输入为HSE且预分频系数>1或输入为PLL2,复位后当PLL的输入是HSI/2时,PLL不能锁 住。 暂时解决办法 在转换PLL输入至HSI/2之前,使能HSE振荡器并且等待PLL锁住。 参照2009年6月 STM32F105xx/107xx勘误手册 英文第1版 (本译文仅供参考,如有翻译错误,请以英文原稿为准) 8/11
分享到:
收藏