英飞凌-TC377的QSPI的Speed1模式下出现错误帧的问题解决方法

项目背景

在开发美标汽车充电功能时,会使用到PLC(power line carrier)PHY芯片,我们使用的是联发科的MSE102x芯片,依靠SPI与该芯片通信,但发现一个比较奇怪的现象,当我使用官方手测定义的MME进行通信的时候总会出现读取到的数据错误的问题,我使用的是TC377,但使用逻辑分析仪去对数据位解析出来的数据却没有问题。本文就解决此问题做一下记录

问题分析

1、硬件问题

当我使用官方的开发板MT5440-S1V1-P4的时候,用同一套PHY芯片驱动没有出现相关的问题,第一反应就是难道硬件有什么不同的导致读取的数据会有时延?但在经过与原厂讨论,更改了PCB布线,并且使用逻辑分析仪观察了CLK信号波形很好,但仍然存在相关问题,基本可以排除硬件问题。

2、软件问题

硬件问题排除后,结合逻辑分析仪得到的结果是正确的,分析我们发送的请求应该问题不大,主要问题应该是出现在采样上,我尝试去查了iLLD库的函数接口以查看是否有更改采样频率或者采样点的相关配置,可惜并没有找到,最终去看了英飞凌的官方用户使用手册,发现其实在TC377中是有对CLK的占空比和采样点配置的寄存器,具体我贴了下图:
在这里插入图片描述

大概意思就是说使用ECONz(z=0~7)寄存器的A B C三个寄存器位将一个CLK周期均分成A+B+C份,A:(B+C)是占空比,B与C之间的位置为采样点,比较坑的是官方例程和接口都没有对这几个寄存器进行配置而是在初始化配置函数里默认配了

问题解决

知道了有以上寄存器配置我debug看了一下默认的寄存器配置,A:B+C =1:1(50%占空比,这里没什么问题),问题出在了A=1,B=0,C=1,这就造成了采样点刚好就在CLK的沿上,但凡MSE102x的回复报文有一些延时就可能会采错,我初始化的时候通过直接修改存器B和C的值,将比例改为1:1之后问题得到了完美的解决。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
TC275 QSPI 是一种内嵌在 TC275 微控制器芯片中的 Quad Serial Peripheral Interface(QSPI)模块。QSPI 是一种串行外设接口协议,主要用于将微控制器与外部存储器和其他外围设备进行通信。TC275 QSPI 提供了高速数据传输和灵活配置选项,使其成为嵌入式系统设计中的理想选择。 TC275 QSPI 具有四个数据线和几个控制线,可以实现高速的全双工通信。通过 QSPI,TC275 能够直接与外部存储器(如闪存)和各种外设(如传感器和显示器)进行数据交换。通过串行通信,QSPI 可以减少芯片引脚的数量,非常适合于节约空间和资源的嵌入式设计。 此外,QSPI 还支持多种操作模式,包括单线模式、双线模式和四线模式。这些模式提供了不同的数据传输速率和灵活性。TC275 QSPI 还支持 EEPROM、NOR FLASH 和 F-RAM 等存储器类型,可以满足不同应用的需求。 TC275 QSPI 还有一些其他的特性,如 DMA 控制、自动片选和中断功能。DMA 控制可以实现高效的数据传输,减轻 CPU 的负担。自动片选功能可以简化外部设备的控制,提高系统可靠性。中断功能可实现实时响应和快速处理。 总之,TC275 QSPI 是一种功能齐全、高性能的串行外设接口模块,适用于各种嵌入式系统设计。它提供了高速数据传输、多种操作模式和灵活配置选项,以及其他一些实用的功能。通过使用 TC275 QSPI,设计工程师能够快速、高效地实现各种嵌入式应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值