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.
工具/软件:Code Composer Studio
这是器件 SPI 寄存器;
这是 halcogen 部分;
最后一个是代码
#include "sys_common.h" #include "sys_core.h" #include "spi.h" /*用户代码开始(1)*/ //*用户代码结束*/ //@fn void main (void) *@简要应用程序主函数 *@注意默认情况下,此函数为空。 * *此函数在启动后调用。 *用户可以使用此函数来实现应用程序。 */ /*用户代码开始(2)*/ uint16 TX_Data[]={0xF7D0}; uint16 RX_Data[]={}; //用户代码结束*/ int main (void) { //用户代码开始(3)*/ spiDAT1_t 数据通信 fig1_t; dataconfig1_t.CS_hold = false; dataconfig1_t.WDEL = true; dataconfig1_t.DFSEL = SPI_FMT_0; dataconfig1_t.CSNR = 0xFE; spiSendInit(); spiSendData (spiREG1、&dataconfig1_t、16、&TX_Data); SendspiAndGetData (spiREG1、&dataconfig1_t、16、&TX_Data、&RX_Data); while (1) { }; /*用户代码结束*/ 返回0; }
因此、DAC 器件中不会发生任何情况。 有人可以帮助我吗?
Suat、您好!
从第一个 SPI 时序图中可以看到、SDI 是 MSB 优先的。 但会在您的 SPI 配置中检查"Shift LSB First"。 另请仔细检查 SPI 器件(DAC)数据表上的时钟相位和极性要求。
王您好;
感谢您的建议、我仔细检查了时钟相位和极性、电路在模式11和00下工作、所以我尝试了00和11、但仍然找不到问题
在数据图器件中、有 DFSEL 和 CSNR、我找不到关于它们的任何解释、您能帮我吗?
您好!
您是否试用过 SDI 的 MSB? MSB 意味着最高有效位被首先发出。 这意味着16位字的 bit15 - bit14 - bit14……bit1、bit0。
LSB 反转传输顺序: 位0 -位1 -位2 ...位14、16位字的位15。
DFSEL: 数据字格式选择.. 在一个 SPI 网络中、不同类型的从器件支持四种独立的数据字格式。 数据字格式通过 SPIFMTx 寄存器进行配置。
CSNR: 芯片选择(CS)号、定义在数据传输期间将被激活的芯片选择引脚。 如果使用 SPICS[0]、则应将0xFE 写入 CSNR 域。 每个芯片选择(未激活)的默认值可通过寄存器 csdef 进行配置。
您好!
是的、我发现我在错误的方向感应它们、它必须是 MSB。 我是在上传此帖子后进行的。 因此我尝试了您说的所有内容、但不起作用、因此我编写了一个代码、它的作用类似于 SPI、但我对 GPIO 进行了管理并正常工作。
总之、我无法很好地启动 TMS 的 SPI 模块、但我编写了一个在 GPIO 上工作的 SPI 代码。
我注意到您错误地调用了 SPI API。
spiSendData(spiREG1, &dataconfig1_t, 16, &TX_Data);
spiSendAndGetData(spiREG1, &dataconfig1_t, 16, &TX_Data, &RX_Data);