描述
电子工程师必知:SPC56xL70和SPC56xL64设备勘误指南
作为电子工程师,在设计和开发电子系统时,我们经常会遇到各种硬件设备的功能和电气问题。今天就来聊聊SPC56xL70和SPC56xL64这两款设备,深入探讨它们的勘误情况。这些勘误信息对于确保设备的正常运行和系统的稳定性至关重要,让我们一起来看看都有哪些问题以及相应的解决办法吧。
文件下载:SPC564L70L5BBOSR.pdf
一、设备概述
本次勘误涉及的是SPC56xL70和SPC56xL64设备的第2版,其JTAG ID为0X0AEA_9041。文档中涵盖的内容参考了RM0342和SPC56xL70xx数据手册。
二、功能问题及解决办法
1. 寄存器保护相关
- ERR000063:MC_ME中ME_PCTL18寄存器未受保护
ME_PCTL18用于选择FlexCAN_2的配置,但它不受寄存器保护。可以使用设备内置的MPU和AIPS等机制来防止其被意外写入。你在实际设计中遇到过这种寄存器保护失效的情况吗?
- ERR003320:Flash单比特纠错状态不可用
Flash的单比特纠错状态无法传递到ECSM和FCCU,只能通过Flash模块配置寄存器的SBC位检测。可以轮询该位来检测单比特纠错事件。
2. PWM模块问题
- ERR003511:FlexPWM在IPOL设置时操作错误
在互补模式下设置IPOL位,PWM波形源未按预期切换。可以通过交换VAL2/3和VAL4/5的值来解决。想想看,类似的波形源切换问题是否会影响整个系统的性能呢?
- ERR007877:FlexPWM故障滤波器启用问题
启用故障滤波器可能导致操作不一致,建议不要启用,将故障滤波器周期设为0。
3. 内核相关问题
- ERR003697:e200z在推测预取时产生异常
e200z4核心预取可能导致总线错误或ECC异常。避免在内存区域最后64字节执行代码,在内部ECC SRAM执行代码时,初始化额外内存。这对于内存管理和代码布局有什么要求呢?
- ERR006481:NZ4C3/NZ7C3在某些条件下产生错误资源满消息:可以通过工具检查、代码重写或使用传统程序跟踪模式来解决。
4. ADC模块问题
- ERR004016:ADC通道9、10、15预采样结果错误
通过编程ADC转换定时寄存器1和预采样控制寄存器的相关字段,来选择合适的转换持续时间和参考电压。
- ERR004168:ADC“中止开关”异常
使用CEOCFR0寄存器检测异常行为,在每个链执行结束时检查其EOC_CHx字段。
- ERR004186:ADC触发问题
避免在ADC转换开始前设置ABORT或ABORTCHAIN,若CTU触发转换被阻塞,可通过清除和设置ADC_MCR[CTUEN]重新激活。
5. 复位相关问题
- ERR004334:MC_RGM外部复位后设备停留在复位状态
外部复位配置为“长”且系统时钟非16 MHz内部RC振荡器时,设备可能无法恢复。可以通过配置外部复位事件或设置为“短”复位来解决。
- ERR007394:MC_ME低功耗模式退出可能进入错误模式
在进入低功耗模式前,将RUNx模式进入两次,确保返回正确的运行模式。
6. 通信模块问题
- ERR004340:LINFlexD在UART Rx FIFO模式下无法检测缓冲区溢出
通过启用LIN错误组合中断中的该错误源来检测溢出。
- ERR007274:LINFlexD连续接收头触发意外状态
按照特定步骤配置从机和主机,避免出现帧错误。
- ERR008933:LINFlexD同步字段不一致导致波特率错误和标志未设置
可以通过配置LIN超时计数器或禁用自动同步功能来解决。
- ERR008970:LINFlexD扩展帧模式下的虚假位错误
通过配置数据字段长度,避免使用扩展帧模式。
7. 其他问题
- ERR006726:NPC中MCKO时钟提前门控
重新启用MCKO后,预期会接收到对应空闲状态的MCKO边沿。
- ERR006967:eDMA连续链接模式下被抢占通道可能异常
禁用连续链接模式以避免计数器损坏。
- ERR007120:NZxC3中DQTAG字段长度问题
工具应将DQTAG字段解码为可变长度包。
- ERR007227:FCCU输出监控单元问题
按照特定步骤启用故障输入和退出配置状态,确保正确监控。
- ERR007322:FlexCAN总线关闭状态下软复位异常
使用特定的软复位程序,防止总线关闭标志错误。
- ERR007352:DSPI从机CTAR中保留位可写
可通过写入零或屏蔽保留位来解决。
- ERR007589:LINFlexD模式切换或复位时的虚假超时错误
切换模式前确保LINTCSR[MODE]位设置正确。
- ERR008070:SWG未断电时GPIO[55]功能不可用
在将SWG断电前,确保其时钟输入启用。
- ERR008080:LINFlexD空闲时TX引脚设为高阻态
在LIN模式使用内部上拉的收发器,UART模式启用TX引脚的内部上拉。
- ERR009682:SPI溢出后移位寄存器数据加载不一致
避免接收FIFO溢出,或溢出后从接收FIFO读取一次数据并丢弃。
- ERR009849:BAM使用Power Architecture指令集软件时不支持串行引导
目前未提及有效解决办法,在设计时需注意这一限制。
- ERR009928:FlexPWM子模块0半周期自动故障清除问题
使用全周期自动故障清除。
- ERR009976:DSPI主模式下修改传输格式和连续时钟模式的问题
正确配置帧大小和传输顺序,确保接收正确数据。
- DAN-0046129:STCU运行MBIST的模式错误
使用正确的模式值。
三、参考资料和版本历史
文档中还提供了参考文档和缩略词表,方便大家查阅。同时,也记录了文档的修订历史,让我们可以了解各个问题的发现和更新情况。在实际应用中,及时关注这些修订信息,有助于我们更好地应对新出现的问题。
总之,SPC56xL70和SPC56xL64设备存在的这些功能和电气问题需要我们在设计和开发过程中格外注意。通过采用合适的解决办法,我们可以有效避免这些问题对系统造成的影响,提高设备的可靠性和稳定性。大家在使用这两款设备时,有没有遇到过这里没有提到的问题呢?可以一起交流分享。
打开APP阅读更多精彩内容