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.

[参考译文] TMS570LC4357:SPI 芯片选择和 SPI 引脚选择之间的区别是什么?

Guru**** 2451970 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1247213/tms570lc4357-what-is-the-difference-between-spi-chip-select-and-spi-pin-select

器件型号:TMS570LC4357

SPI 芯片选择和 SPI 引脚选择之间的区别是什么?

此外、我们还尝试将三个8位数据从 TMS570LC43x 板发送到子板。 要求是 CS 在整个操作过程中应处于低电平。 我们将值写入特定的寄存器、然后从该寄存器中读取相同的值。 传输操作使用3个 spiTransmit() API。 在另一个函数中,有2个 spiTransmit() API 后跟一个 spiReceive() API。 下面给出了该函数的代码。

发送操作:
dataconfig1_t.CS_HOLD = true;
dataconfig1_t.WDEL = false;
dataconfig1_t.DFSEL = SPI_FMT_0;
dataconfig1_t.CSNR = SPI_CS_0;

dataconfig1_f.CS_HOLD = FALSE;
dataconfig1_f.wdel = false;
dataconfig1_f.DFSEL = SPI_FMT_0;
dataconfig1_f.CSNR = SPI_CS_0;

ACK= spiTransmitData ((spiBASE-_t *) spiREG1、(spiDAT1_t *)和 dataconfig1_t、1、(uint16 *)&OP1);
Ack1=spiTransmitData ((spiBASE-_t *) spiREG1、(spiDAT1_t *)和 dataconfig1_t、1、(uint16 *)&OP2);
spiTransmitData ((spiBASE-_t *) spiREG1、(spiDAT1_t *)和 dataconfig1_f、1、(uint16 *)&value);


接收操作:
dataconfig1_t.CS_HOLD = true;
dataconfig1_t.WDEL = false;
dataconfig1_t.DFSEL = SPI_FMT_0;
dataconfig1_t.CSNR = SPI_CS_0;

dataconfig1_f.CS_HOLD = FALSE;
dataconfig1_f.wdel = false;
dataconfig1_f.DFSEL = SPI_FMT_0;
dataconfig1_f.CSNR = SPI_CS_0;  

Flag1=spiTransmitData ((spiBASE-_t *) spiREG1、(spiDAT1_t *)&dataconfig1_t、1、(uint16 *)&optcode1);
flag2=spiTransmitData ((spiBASE-t *) spiREG1、(spiDAT1_t *)和 dataconfig1_t、1、(uint16 *)&optcode2);
flag3=spiReceiveData ((spiBASE-_t *) spiREG1、(spiDAT1_t *)&dataconfig1_f、1、(uint16 *)&RECEIVED_DATA);

我们要发送的值为0x31、但得到的值为00。 有人能帮忙解释一下吗?
提前感谢!

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

    您好、Varikoti:

    Unknown 说:
    SPI 芯片选择和 SPI 引脚选择有何区别?

    spiPinSelect:

    实际上、SPI 引脚也可以作为 GIO 运行、我的意思是我们可以通过使 SPI 引脚值成为 GIO 输出来设置或重置它们、同样、我们也可以使它们成为 GIO 输入并可以读取 SPI 引脚值。 SPI"spipinSelect"结构仅在这种情况下使用。

    例如、您可以看到 SPIPC3寄存器、一旦将任何特定 SPI 引脚配置到 GIO 输出中、您就可以使用该寄存器设置或保持输出。

    可以将"spipinSelect"结构与上述位的放置进行比较、它们会彼此匹配。

    例如、您还可以看到上面的图片、在此示例中、它尝试控制几个 SPI 引脚的输出值、我在这里使用了"spipinSelect" 枚举结构的值。

    spiChipSelect:

    该结构用于在 SPI 数据传输期间激活特定的片选引脚。

    如果您参考 SPIDAT1寄存器的"CSNR"字段、该寄存器中介绍了如何启用特定的芯片选择引脚。

    例如、 如果我想在传输数据时将 CS0激活为低电平、我必须将 CSNR 值写入0xFE (SPI_CS_0)、如下所示:

    在传输数据时、上述代码会使唯一的 CS0低电平有效、其他 CS 引脚变为高电平有效。

    您还可以参考以下主题以了解更多详细信息:

    (13) LAUNCHXL2-RM57L:配置 SPI3以访问 Aardvard I2C/SPI 活动板上的 AT25080 SPI EEPROM -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    这里是 TMS570LC4357的 SPI 主代码示例:

    e2e.ti.com/.../5224.SPI_5F00_MASTER_5F00_TEST_5F00_LC4357.zip

    --

    谢谢。此致、
    Jagadish。

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

    e2e.ti.com/.../test-_2800_2_2900_.zip

    我们已经根据您提供给我们的信息处理并更新了代码。
    代码不起作用、我们发送的是8位数据、但我们得到的0作为接收的数据
    您能评论一下我们的代码 并告诉我们哪里出了问题吗?

    谢谢!

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

    您好、Varikoti:

    您没有提供您正在使用的从设备的详细信息?

    我的建议是首先在环回模式下测试主站、 这将帮助您 确保主站侧的一切正常运行。

    尝试实现建议通信的协议从设备。  

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!  
    我们已经尝试了环回。 它工作正常。 我们将 Holt HI-3220用作从设备。  

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

    您好、Varikoti:

    我们正在使用 Holt HI-3220作为从设备。  [/报价]

    这个从设备对我来说是一个新设备、我需要一些时间来探索它。

    如果您有逻辑分析仪、则执行以下操作。

    因此、我的建议是、首先确保通过使用逻辑分析仪轻触 MOSI 线路来正确发送数据。 如果您发送的数据正确无误、请再次使用 MISO 线路点击、查看天气从属设备是否正确发送数据。 如果操作正确、那么我们应该将数据接收到主控制器中的接收缓冲区。

    --

    谢谢。此致、
    Jagadish。

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

    您好,Jagadish

    我们能够确定从器件的工作情况以及如何配置它。 我们唯一停留的地方是 TMS 电路板的 SPI、如果你可以检查是否所有内容都已正确初始化、这将非常有帮助。  

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

    好的、明白了、明天我会检查并更新您的信息。

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

    您好、Varikoti:

    对不起,我被其他一些问题卡住了。

    您的问题是否已得到解决?您是否仍然需要我的支持?

    --

    谢谢。此致、
    Jagadish。