工具/软件:Code Composer Studio
您好!
我尝试将28335与 wiz-net W5500连接,但在尝试建立连接时遇到了一些问题。
出于测试目的、w5500中有一个回读寄存器、如果连接完美、该寄存器应回读值0x04。 但不幸的是、每次都能得到错误的值。
相同的源代码如下所示
InitSpiaGpio()
{
EALLOW;
GpioCtrlRegs.GPBPUD.bit.GPIO54 = 0;//启用 GPIO54上的上拉电阻(SPISIMOA)
GpioCtrlRegs.GPBPUD.bit.GPIO55 = 0;//启用 GPIO55上的上拉电阻器(SPISOMIA)
GpioCtrlRegs.GPBPUD.bit.GPIO56 = 0;//启用 GPIO56上的上拉电阻器(SPICLKA)
GpioCtrlRegs.GPBPUD.bit.GPIO57=1;//启用 GPIO57上的上拉电阻器(SPISTEA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3;//异步输入 GPIO17 (SPISOMIA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 3;//异步输入 GPIO18 (SPICLKA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO57 = 3;//异步输入 GPIO19 (SPISTEA)
GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1;//将 GPIO54配置为 SPISIMOA
GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 1;//将 GPIO55配置为 SPISOMIA
GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 1;//将 GPIO56配置为 SPICLKA
GpioCtrlRegs.GPBMUX2.bit.GPIO57=1;//将 GPIO57配置为 SPISTEA
GpioDataRegs.GPBSET.BIO57 = 1;//将 SPISTEA 置为高电平空闲
// GPIO 引脚配置为复位引脚
GpioCtrlRegs.GPBPUD.bit.GPIO63 = 1;//启用上拉
GpioCtrlRegs.GPBQSEL2.bit.GPIO63 = 3;
GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 1;//
GpioDataRegs.GPBCLEAR.bit.GPIO63=1;
uint16 tmp = 0xFF;
while (tmp--);
GpioDataRegs.GPBSET.BIO63 = 1;
}
void SPI_init()
{
SpiaRegs.SPICCR.all =0x0047;//复位打开、下降沿、8位字符位
SpiaRegs.SPICTL.ALL =0x00E;//启用主控模式、正常相位、
//启用 TALK、禁用 SPI int。
SpiaRegs.SPIBRR = 0x001F;
SpiaRegs.SPICCR.all =0x00C7;//从复位中撤回 SPI
SpiaRegs.SPIPRI.bit.FREE = 1;//设置断点以避免干扰 xmission
}
void_ReadVersionReg ()
{
GpioDataRegs.GPBCLEAR.bit.GPIO57=1;//STE 低电平
sdata = 0x0039;
SPI_xmit (sdata);
sdata = sdata>>8;
SPI_xmit (sdata);
sdata = 0x0000;
SPI_xmit (sdata);
sdata =sdata>>8;
SPI_xmit (sdata);
GpioDataRegs.GPBSET.BIO57=1; //STEA 高电平
RDATA = 0x00;
RDATA = SpiaRegs.SPIRXBUF;
}