This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28388D:TRF7970A BoosterPack 和 F28388D 初始化以及通过 SPI 进行通信

Guru**** 2540720 points
Other Parts Discussed in Thread: TRF7970A, MSP430G2553

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/867378/tms320f28388d-trf7970a-boosterpack-and-f28388d-initialization-and-communication-via-spi

器件型号:TMS320F28388D
主题中讨论的其他器件:TRF7970AMSP430G2553

我正在尝试将 TRF7970A BoosterPack (http://www.ti.com/tool/DLP-7970ABP)与 F28388D controlCARD (http://www.ti.com/tool/TMDSCNCD28388D)集成。 为此、我希望要求 TI 提供帮助、以确认我的实施情况和/或为以下问题提供可行的解决方法:

1.我的 SPI 连接是否配置正确? (低速外设时钟速率、波特率、字数据宽度、FIFO/无 FIFO 等)

2.我是否正确转换了8位整数以便在 F28388D driverlib 库函数中使用? (SPI_writeDataNonBlocking ()、SPI_writeDataNonBlockingFIFO ()等)

MSP430G2553和 TRF7970A 使用基于位和寄存器的实施方案、在两者之间实现 SPI 连接、我将此作为灵感来源。 迄今为止、我尝试将该实现修改为基于 driverlib 的实现方案的做法未能成功。

首先、我使用以下设置配置了 SPI 连接

SPI_setConfig (SPIA_BASE、800000、SPI_PROT_POL0PHA0、SPI_MODE_MASTER、200000、 8);

这意味着外设时钟以8MHz 运行、时钟没有极性或相移、F28388D 是 SPI 主器件、波特率为2MHz、数据宽度为8位。

其次、我假设 SPI 连接从 MSB 开始传输左对齐、因此我必须将8位字符转换为16位整数并向左移位8位。

例如、为了与 TRF7970A 对接、MSP430通过 SPI 发送左对齐8位字。 但是、F28388D 能够通过 SPI 传输16位字。 因此、我已将 SPI 连接配置为发送和接受8位字。 此外、每次我的 F28388D 通过 SPI 传输字(字符)时、我必须将 uint8_t 转换为16位整数、向左移位8位、然后将该值写入 SPI 传输缓冲区。 具体而言、我将 SPI_writeData 函数打包如下:

void SPI_directCommand (uint8_t ui8Command)


   uint16_t valueToSend;


  //从器件选择低电平以启动 SPI 传输
   setSpiSlaveSelectLow();

   //将地址/命令字位分配设置为命令(这是 TRF7970A 固件特有的)
   ui8Command =(0x80 | ui8Command);//命令
   ui8Command =(0x9f & ui8Command);//命令代码

   //将 ui8Value 转换为的左对齐16位值
   // SPI_WRITE 函数(转换和位向左移位8)
   valueToSend =(uint16_t) ui8Command;
   ValueToSend <<= 8;

   //将数据写入发送缓冲区
   SPI_writeDataBlockingFIFO (SPIA_BASE、valueToSend);

   //从器件选择高电平到端 SPI 发送
   setSpiSlaveSelectHigh();

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有人可以帮助我验证 SPI 连接是否配置正确以及我是否正在正确处理数据? 我的读取结果来自 TRF7970A、不一致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    查尔斯

    根据 F28388D 数据表(PG:95、表5-12)、LSPCLK 频率最小值为2MHz、您已将 LSPCLK 配置为800KHz。 因此、您的工作超出了器件规格限制、看到结果不一致也不足为奇。

    此致、

    曼诺伊