TI中文支持网
TI专业的中文技术问题搜集分享网站

【求助】Keystone_SPI例程 中的 “SPI_Shift_Direction”问题

       各位工程师好,我在调试论坛推荐使用的Keystone_SPI例程,过程中遇到一些问题,故向工程师咨询一下。

      在例程中的 SPI_Init() 初始化函数中需要配置SPI的移位方向(见下图1),即SPI_Shift_Direction,它包括两项:SPI_MSB_SHIFT_FIRSTSPI_LSB_SHIFT_FIRST(见下图2)。

     在实际应用中发现配置SPI_Shift_Direction 不同会直接影响和从设备的SPI通信(我的从设备ADS1298手册要求是MSB(见图3),但是我设置SPI_Shift_Direction 为SPI_MSB_SHIFT_FIRST时通信不成功,当改变为SPI_LSB_SHIFT_FIRST时则工作正常!)。

     希望工程师回答一下

1.SPI_Shift_Direction的工作机理;

2.SPI_MSB_SHIFT_FIRST和SPI_LSB_SHIFT_FIRST两者有何不同,应当基于何种情况才能正确设置;

3.我在工程Properties-general中设定Device endianness为little(见图4),请问这个选项对于选择SPI_MSB_SHIFT_FIRST和SPI_LSB_SHIFT_FIRST有影响吗?如何判断一个机器是大端序(big-endian)还是小端序(little-endian)呢?  请工程师提供一下方法!

      thanks in advance!

       

                                                                                      图1

                                                  图2

                                                            图3

                                                                 图4

Andy Yin1:

shift direction指的是16bit输出串行输出的顺序,MSB first out即从高bit开始依次将数据输出,LB first out即对应从低bit依次输出。

编译工程的大小端决定了数据存储字节序,如在小端模式读取16bit的数据,高字节对应高地址存储的数据,地字节对应低地址存储的数据,在写数据时存储顺序也是如此;大端模式则正好相反,读取16bit数据,低地址对应高字节,高地址对应低字节。

我觉得你可以测试当DSP侧SPI进行不同的配置后,分析对端收到的数据格式进行调整。

赞(0)
未经允许不得转载:TI中文支持网 » 【求助】Keystone_SPI例程 中的 “SPI_Shift_Direction”问题
分享到: 更多 (0)