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.

[参考译文] TMS320F28027:不读取接收到的 SPI 数据

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1336508/tms320f28027-not-reading-received-spi-data

器件型号:TMS320F28027

您好!

SPI 似乎在环回模式下工作。  我发送数据并看到它通过 SPIRXBUF 返回。

当我尝试连接到真实的器件时、我在 MISO 引脚上看到预期的数据(使用逻辑分析仪)、但没有通过从 SPIRXBUF 读取来看到它。  

我将 GPIO17配置为

// GPIO-17 -引脚功能= SPI MISO
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1;// 0=GPIO、1=SPISOMI-A、2=Resv、3=TZ3
GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 0x3;//异步
GpioCtrlRegs.GPADIR.bit.GPIO17 = 0;// 1=输出、0=输入

我要使用配置 SPI

// SPI 复位
SpiaRegs.SPICCR.bit.SPISWRESET = 0x0;
SpiaRegs.SPICCR.bit.SPISWRESET = 0x1;

SpiaRegs.SPICCR.bit.SPICHAR = 0x7;// 8位
SpiaRegs.SPICTL.bit.talk = 0x1;//发送启用
SpiaRegs.SPICTL.bit.MASTER_SLAVE = 0x1;//主控方
SpiaRegs.SPICTL.bit.OVERRUNINTENA = 0x1;//启用 SPI 溢出 INT


SpiaRegs. SPIBRR = 29;// 1Mbaud @ LSPCLK = 30 MHz

SpiaRegs.SPICTL.bit.CLK_PHASE = 0x1;// SPI_Clk Phase_Delayed

SpiaRegs.SPICCR.bit.SPILBK = 0x0;//启用/禁用环回

SpiaRegs.SPIFFTX.bit.SPIFFENA = 0x1;// SPI FIFO 增强启用

SpiaRegs.SPIFFTX.bit.SPIRST = 0;
SpiaRegs.SPIFFTX.bit.SPIRST = 1;


SpiaRegs.SPIFFTX.bit.TXFIFO = 0x0;//复位发送 FIFO
SpiaRegs.SPIFFTX.bit.TXFFINTCLR = 0x1;

SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0x0;//复位接收 FIFO
SpiaRegs.SPIFFRX.bit.RXFFIL = 0x3;// 3个字处的中断级别
SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 0x1;
SpiaRegs.SPIFFRX.bit.RXFFIENA = 0x1;//启用 Rx FIFO 中断

SpiaRegs.SPIFFTX.bit.TXFIFO = 0x1;

SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0x1;

我要将中断设置为以三个字进行接收、

进入 SPI ISR 时、SPIFFRX = 0x23A3、在我从 SPIRXBUF 读取三次之后、SPIFFRX = 0x20A3

我正在读取 SPIRXBUF 的

易失性 uint16_t 数据;

 数据= SpiaRegs。 SPIRXBUF;

该读取在回送模式中按预期工作

有什么想法、为什么我看不到数据从引脚传输到 SPIRXBUF?  还是其他尝试点?

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

    我们发现了可能导致这一问题的电气问题。  请忽略。