TC397 之 TLF35584 SPI配置 代码实现章节

1 QSPI特性

  QSPI允许基于标准化的spi总线信号与外部设备进行任何同步串行通信:时钟、数据输入、数据输出和从属选择。
  QSPI工作在全双工模式下,或作为主设备或从设备高达50 Mbit/s。
  DMA模块通道可以配置为将数据从QSPI FIFOs从内部内存传输,而不需要任何CPU干预。

2 TLF35584 QSPI0配置

  QSPI通过DMA进行主从数据传输通信。DMA传输好处:两个DMA通道用于实现RAM与SPI FIFOs之间的数据传输,而不需要CPU干预:

  • DMA CH0配置为QSPI0 TX。
  • DMA CH1配置为QSPI0 RX。

  QDPI0配置为SPI主设备,TLF35584作为SPI从设备。主从交换遵循TLF35584数据传输格式要求,每次传输数据为16bit。

  QSPI0引脚连接:

TC397 QSPI0 (Master) WIRE TLF35584(Slave)
P20.13(M,CS,OUT) <-> SCS
P20.11(M,CLK,OUT) <-> SCL
P20.14(M,DATA,OUT) <-> SDI
P20.12(M,DATA,IN) <-> SDO

2.1 QSPI0 Master Module initialization

1)调用IfxQspi_SpiMaster_initModuleConfig()函数,使用默认值初始化IfxQspi_SpiMaster_Config结构体。
2)配置主模式和最大波特率。(base.mode,base.maximumBaudrate)

  • QSPI0 设置为主模式。
  • TLF35584 SPI时钟频率 <= 10MHz。因此,波特率设置为10MHz。

3)配置QSPI0通信引脚。(pins)
4)配置DMA通道。(dma.useDma,dma.txDmaChannelId,dma.rxDmaChannelId)
5)配置QSPI0中断优先级。(base.txPriority,base.rxPriority,base.erPriority,base.isrProvider)
6)调用IfxQspi_SpiMaster_initModule()函数,使用IfxQspi_SpiMaster_Config结构体参数初始化QSPI0模块。

2.1.1 代码实现

static void SpiDrv_Qspi0ModuleInit(void)
{
   
    // create module config
    IfxQspi_SpiMaster_Config spiMasterConfig;
    IfxQspi_SpiMaster_initModuleConfig(&spiMasterConfig, &MODULE_QSPI0);

    // set the desired mode and maximum baudrate
    spiMasterConfig.base.mode             = SpiIf_Mode_master;

    // pin configuration
    const IfxQspi_SpiMaster_Pins pins = 
    {
   
        &IfxQspi0_SCLK_P20_11_OUT, IfxPort_OutputMode_pushPull, // SCLK
        &IfxQspi0_MTSR_P20_14_OUT, IfxPort_OutputMode_pushPull, // MTSR
        &IfxQspi0_MRSTA_P20_12_IN, IfxPort_InputMode_pullDown,  // MRST
        IfxPort_PadDriver_cmosAutomotiveSpeed3 // pad driver mode
    };
    spiMasterConfig.pins = &pins;

    // dma configuration.
    spiMasterConfig.dma.txDmaChannelId = IfxDma_ChannelId_0;
    spiMasterConfig.dma.rxDmaChannelId &
  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值