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.

[参考译文] TRF7960A:SPI 通信

Guru**** 670150 points
Other Parts Discussed in Thread: TRF7964A, MSP430F2370, TRF7960, TRF7960A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1216470/trf7960a-spi-communication

器件型号:TRF7960A
主题中讨论的其他器件:TRF7964AMSP430F2370TRF7960

如果我将 TRF7964A 的 EN 和 EN2引脚直接连接至5V 电压、MSP430是否仍能通过 SPI 控制 TRF7964A?

ZHCS904I 指出、对于使用切片选择的 SPI 通信、SS 上拉和 EN 启用之间存在4ms 的延迟。

现在、EN 引脚直接连接到5V 电压、但现在 MSP430芯片和 TRF7964A 之间的 SPI 通信未建立。

这是否与我的 EN 引脚直接连接到5V 电压有关?

在当前条件下、MCU 只能使用并行端口通信来与 TRF7964A 通信。

我现在使用的微控制器芯片模型是 msp430f2370。

请告诉我使用 SPI 通信和 TRF7964A 通信的 MSP430 MCU 的情况是什么。

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

    您好、客户、感谢您提出问题并对我们的产品感兴趣。

    此产品的论坛支持已缩减为首先参考我们现有的文档和配套资料。 TI 没有停止生产或将器件置于"不推荐在新型设计中使用"状态的计划、我们真的觉得通过查看现有配套资料和之前提出的问题可以回答有关这些器件的大多数问题。 请随时根据您的应用需求继续使用此器件。 如需支持、请查看该主题页面右下角的"类似主题"部分。 此外、请参阅 TRF7964A 产品网页的"技术文档"部分中的现有配套资料 以及 常见问题解答文档。 或者、您可以使用您选择的搜索引擎来查找相关的 E2E 主题。 借助这些资源、我们相信可以帮助解决您的问题。

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

    您好、我参考了其他相关线程、既然 SPI 通信已成功发送、我可以在寄存器0x09上操作、从而使 SYS_CLK 输出不同的频率时钟、但 TRF7960 SPI 不会反馈到 MCU、后者会读取 TRF7964任何寄存器值始终为零

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

    我指的是 sloc297c 例程的 SPI 通信与 trf7964通信

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

    您好,Yaowei:

    对于较旧的 TRF7960A 和较新的 TRF7964A 器件间的差异、请参考 FAQ 文档的4.1章节。

    此致、

    Andreas。

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

    很抱歉、我选择了错误的器件类型。

    事实上、我使用的是 TRF7964芯片、我引用的例程是基于 DLP-7970的 sloc297c。

    昨天、我的 SPI 通信刚刚开始、我可以从 TRF7964接收到数据反馈、

    但在重复若干次后、接收到的数据为零。

    此致、

    Yaowei。

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

    以下是我的发送和接收代码:

    uint8_t tmp=0;
    void SPI_sendByte(uint8_t ui8TxByte)
    {
        while (!(IFG2 & UCB0TXIFG));     // USCI_B0 TX buffer ready?
    
    	UCB0TXBUF = ui8TxByte;
    
    	while (UCB0STAT & UCBUSY);
    	tmp = UCB0RXBUF;
    }
    
    uint8_t SPI_receiveByte(void)
    {
        uint8_t RXData = 0;
        while (!(IFG2 & UCB0TXIFG));     // USCI_B0 TX buffer ready?
    	UCB0TXBUF = 0x00;
    
    	while (UCB0STAT & UCBUSY);
    	RXData = UCB0RXBUF;
    	return RXData;
    }
    

    void SPI_writeSingle(uint8_t * pui8Buffer)
    {
    	SLAVE_SELECT_LOW; 						// Start SPI Mode
    
    	// Address/Command Word Bit Distribution
    	// address, write, single (fist 3 bits = 0)
    	*pui8Buffer = (0x1f & *pui8Buffer);				// register address
    
    	SPI_sendByte(*pui8Buffer++);
    	SPI_sendByte(*pui8Buffer++);
    
    	SLAVE_SELECT_HIGH; 						// Stop SPI Mode
    }
    
    void SPI_readSingle(uint8_t * pui8Buffer)
    {			
    	SLAVE_SELECT_LOW; 						// Start SPI Mode
    
    	// Address/Command Word Bit Distribution
    	*pui8Buffer = (0x40 | *pui8Buffer); 			// address, read, single
    	*pui8Buffer = (0x5f & *pui8Buffer);				// register address
    
    	SPI_sendByte(*pui8Buffer);					// Previous data to TX, RX
    	*pui8Buffer = SPI_receiveByte();
    	
    	SLAVE_SELECT_HIGH; 						// Stop SPI Mode
    	
    }

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

    现在、当我更改电路板时、SPI 开始正常通信、程序继续运行、

    并且在执行轮询命令时会发生程序错误。

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

    然后、MCU 的 SPI 通信无法读取由 TRF7964反馈的数据。

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

    SLOC297C 中出现问题:

    NFC_findTag ()->NFC_appIso14443a ()->ISO14443A_selectTag (REQA)->ISO14443A_sendPollCmd (ui8命令)->TRF79xxA_writeRaw (uint8_t * pui8Payload、uint8_t ui8Length):


    如果(TRF79xxA_MAX_FIFO_SIZE+5 > ui8Length)

    SPI_Rawwrite (pui8Payload、ui8Length、bContinuedSend);
    }

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

    Andreas、您好!

    我发现进入 ISR 的原因是 MCU 收到了 IRQ 请求、但我没有放置标签。

    MCU 发送命令来检测标签后、连接到 IRQ 的引脚端口的 IFG 位置为1

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

    您好 Andreas M ü,

    我发现了问题。 我没有正确初始化 trf7964。 因为我的 EN 和 EN2已连接 Vin、所以在我首次上电然后烧录程序时、TRF7964无法初始化。 在重新仿真中、我始终未能遵循 SS 和 EN 的延迟要求、这导致在第一次成功初始化之后、TRF7964的初始化失败。

    此致、

    八尾威。

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

    您好  Andreas M ü,

    现在我的 SPI 通信正常运行、但 MISO 接收的数据电平为低电平。 什么可能是原因?

    请回答我的问题、谢谢。

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

    您好,Yaowei:

    您是否已将 MCU 的 SPI 接口共享给其他 SPI 器件? 当 SS 为高电平时、TRF7964A 的 SPI 不会进入高阻抗状态、需要一个三态缓冲器(请见 固件设计提示文档中的第7.1章)。

    此致、

    Andreas。