基于TC3xx SPI驱动的MCAL开发

基于MCU TC3xx的SPI驱动的MCAL开发


前言

这篇文章以驱动SBC芯片的SPI驱动开发为例子说明SPI MCAL开发的整个流程。

一、软件开发文档

硬件原理图:
SBC芯片端原理图
主芯片端原理图
UserManual : Infineon-AURIX_TC3xx_Part2-UserManual-v02_00-EN.pdf
DataSheet : Infineon-TC38x-DataSheet-v01_02-EN.pdf
SBC UserManual :网上没有找到链接,我在资源中上传了。

二、和SBC通信SPI硬件配置

根据SPI通信概念及MACL SPI Handler软件规范一文的介绍,我们了解有如下属性需要配置:

  1. SCLK/MOSI/MISO/CS MCU测端口配置
  2. clock 频率配置
  3. clock polarity
  4. clock phase
  5. Channel配置:IB/EB, IB/EB大小,SpiDataWidth
  6. Job
  7. Sequence
  8. SPI Level Delivered
  9. 其他

开发步骤如下:

第一步、查看原理图,确认主从节点及主机端口:

  1. 从原理图看出,MCU通过P02_4端口连接FS6500的片选信号,从Infineon-TC38x-DataSheet-v01_02-EN.pdf中确认
    P02_4对应的时QSPI3的SLSO0端口,功能是Master slave select output。
    对应配置硬件端口为QSPI3, Channel0。

第二步、查看从设备SBC FC6500 DataSheet确认从机需求,配置通信属性:

  1. SPI通信波形如下图
    SBC SPI通信波形示例
    可以获取信息:
  2. channel的SpiDataWidth配置为16;
  3. CS有效电平为低电平;
  4. SCLK Idle电平是低电平(CPOL = 0);
  5. 表示数据采样是在第2个边沿,数据发送在第1个边沿(CPHA = 1);
  6. 从DataSheet中确认fspi范围为0.5M-8M(实际项目中配置1M,MCU SPI时钟配置50M)。

根据以上确认EB Tresos Channel和ExternalDevice配置选项如下:
在这里插入图片描述
在这里插入图片描述

这里的SCLK有几个参数我们单独拎出来说明下,
8. SpiIdleTime(TIDLEA,B),SpiTrailingTime,SpiTimeClk2Cs, SpiDelayParams
这个几个参数需要查看Tc3xx UserManual和SBC的DataSheet一起确认。
根据Tc3xx UserManual 37.3.2.1介绍,Sequence包含5 phases(这些phase的长度都是在BACON寄存器中定义的):
idle delay, leading delay, data phase, trailing delay, and an optional wait phase, idle phase 可以均分为idle A和idle B两个相位,在idle A/B之间转换下一次Sequence通信的时钟极性。各个相位在数据传输时序上显示如下:
在这里插入图片描述
Sequence phase参数设置需要满足SBC datasheet规范,SBC规范如下:
在这里插入图片描述
在这里插入图片描述
根据SBC需求:
Idle delay(作者理解,IeadB从时钟极性切换到leading delay,即到CS片选选中结束) = Tsclch > 75ns,所以SpiIdleTime > 150ns;
leading delay(lasts between the active edge of the SLSO and the first shift clock edge,即从片选选中开始,到第一个有效时钟边沿) = Thclcl > 75ns;
trailing delay(starts after the last shift clock period of a data block and is followed either by the deactivating edge of SLSO, or a new data block in continuous mode,即从最后一个时钟结束开始计时,到下一个CS片选切换开始,或者到下一次连续数据发送开始) = Tonncs >500ns;

  1. SpiBandrateParams
    ECONz(z = 0-7)寄存器定义了A,B,C三个参数,采样点总是在相位B和C之间的转换处,并且时钟占空比由相位A和B+C定义。这里定义A,B,C
    三个参数主要考虑到时钟设置不对称值时,提高时钟的精度。当设置SpiAutoCalcBaudParams = TRUE时,A,B,C三个参数值由系统分配。
    在这里插入图片描述
  2. Job配置如下:
  3. Sequence配置如下:
    在这里插入图片描述

以上是SPI配置MCAL的开发。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值