Nvidia Xavier Nx平台SPI接口调试记录

 1. 前言

现有的硬件使用CS0和CS1在一个SPI上连接一个FRAM和一个TPM模块,在Jetson Nano上运行ok。

Xavier NX模块的问题是硬件控制芯片选择信号(CS0)的不同行为。

以下描述适用于FRAM, TPM是没有问题的,是两种配置。

SPI由“ioctl”函数控制,利用了“cs_change”选项。

FRAM需要操作码,24位地址和内存数据。

从操作码到数据流结束,CS必须保持低。

下面的代码在Nano上运行良好:

uint8_t tx[4] = { OPCODE_WRITE };
  tx[1] = (uint8_t) (address >> 16) & 0xFF;
  tx[2] = (uint8_t) (address >> 8) & 0xFF;
  tx[3] = (uint8_t) (address & 0xFF);

  struct spi_ioc_transfer tr = { .tx_buf = (unsigned long) tx, .rx_buf = 0,
      .len = 4, .delay_usecs = delay, .speed_hz = 0, .bits_per_word = 0,
      .cs_change = 0, };

  struct spi_ioc_transfer tr2 = { .tx_buf = (unsigned long) send, .rx_buf = 0,
      .len = len, .delay_usecs = delay, .speed_hz = 0, .bits_per_word = 

你可能感兴趣的:(Nvidia,Jetson平台驱动和系统开发,nvidia,SPI,xavier,nx)