工具/软件:Code Composer Studio
我正在尝试在 TMS320F28377D 和 W5500 (WIZnet、 硬件 TCP/IP IC)之间进行连接。
我花 了很多时间 与 他们进行连接。 但是、我遇到了困难。
以下代码是我的 SPIA 模块设置代码。
void SPIA_init()
{
EALLOW;
DevCfgRegs.CPUSEL6.bit.SPI_A = 0; //选择 CPU1
CpuSysRegs.PCLKCR8.bit.SPI_A = 1; //选择 CPU 时钟/
// GPIO_setting。
GpioCtrlRegs.GPBPUD.bit.GPIO54 = 0; //启用 GPIO16上的上拉电阻(SPISIMOA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO54 = 3;//异步输入 GPIO16 (SPISIMOA)
GpioCtrlRegs.GPBGMUX2.bit.GPIO54=0;
GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1;//将 GPIO16配置为 SPISIMOA
GpioCtrlRegs.GPBPUD.bit.GPIO55 = 0; //启用 GPIO17上的上拉电阻(SPISOMIA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3;//异步输入 GPIO17 (SPISOMIA)
GpioCtrlRegs.GPBGMUX2.bit.GPIO55=0;
GpioCtrlRegs.GPBMUX2.bit.GPIO55=1;//将 GPIO17配置为 SPISOMIA
GpioCtrlRegs.GPBPUD.bit.GPIO56 = 0; //启用 GPIO18上的上拉电阻器(SPICLKA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 3;//异步输入 GPIO18 (SPICLKA)
GpioCtrlRegs.GPBGMUX2.bit.GPIO56=0;
GpioCtrlRegs.GPBMUX2.bit.GPIO56=1;//将 GPIO18配置为 SPICLKA
GpioCtrlRegs.GPBPUD.bit.GPIO57 = 0; //启用 GPIO57上的上拉电阻器(SPISTEA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO57 = 3;//异步输入 GPIO57 (SPISTEA)
GpioCtrlRegs.GPBGMUX2.bit.GPIO57=0;
GpioCtrlRegs.GPBMUX2.bit.GPIO57=1;//将 GPIO18配置为 SPICLKA
GpioCtrlRegs.GPAPUD.bit.GPIO23=0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 3;
GpioCtrlRegs.GPAGMUX2.bit.GPIO23 = 0x0; // W5500的 RST 引脚
GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 0x0;
EDIS;
SpiaRegs.SPICCR.bit.SPISWRESET = 0;
SpiaRegs.SPICCR.bit.CLKPOLARITY = 1;//下降沿数据传输
SpiaRegs.SPICCR.bit.SPICHAR =7;//8位字符
SpiaRegs.SPICTL.ALL = 0x0006;//启用主控模式、正常阶段、启用通话
SpiaRegs.SPIBRR.ALL = 0x001F;//波特率= LSPCLK/(BRR+1)
SpiaRegs.SPIFFTX.ALL = 0xE040;//发送寄存器
SpiaRegs.SPIFFRX.ALL = 0x2041;//读取寄存器
SpiaRegs.SPIFFCT.all = 0x00;//发送延迟=无延迟
SpiaRegs.SPIPRI.bit.free=1;
SpiaRegs.SPICCR.bit.SPISWRESET = 1;
}
使用前面提到的代码、我尝试确认 W5500接口是否工作正常。 实际上、如果 我向 W5500发送一条特定的命令消息(24位)、我希望得到所需的数据、如下图(来自 W5500数据表)所示。
但是,在我的情况下,我无法获得下图所示的数据(通道1 (黄色线路):SPI_CLK, 通道2 (浅蓝色线路):SPI_MOSI,通道3 (深紫色线路):SPI_MISO
我不理解与结果相关的几种情况
1) 1)为什么 SPI_CLK 和/AWEW 信号在从 W5500接收数据之前完成。
2) 2) TMS32028377D 的命令传输期间不需要的信号是什么。
要解决此问题、 您能否 给我 一个 SPIA 设置代码和 任何解决方案的审核?
此致
李承浩