Tool/software: Code Composer Studio
hello,
I am trying to interface 28335 with wiz-net W5500 , but am having some problems while trying to establish the connection.
below shown is the frame format i need to send
For the testing purpose there is a read back register in w5500 which should read back the value 0x04 if the connection is perfect. But unfortunately am getting the wrong values every time.
The source code for the same is as shown below
InitSpiaGpio()
{
EALLOW;
GpioCtrlRegs.GPBPUD.bit.GPIO54 = 0; //Enable pull-up on GPIO54 (SPISIMOA)
GpioCtrlRegs.GPBPUD.bit.GPIO55 = 0; //Enable pull-up on GPIO55 (SPISOMIA)
GpioCtrlRegs.GPBPUD.bit.GPIO56 = 0; //Enable pull-up on GPIO56 (SPICLKA)
GpioCtrlRegs.GPBPUD.bit.GPIO57 = 1; //Enable pull-up on GPIO57 (SPISTEA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3; // Asynch input GPIO17 (SPISOMIA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 3; // Asynch input GPIO18 (SPICLKA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO57 = 3; // Asynch input GPIO19 (SPISTEA)
GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1; // Configure GPIO54 as SPISIMOA
GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 1; // Configure GPIO55 as SPISOMIA
GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 1; // Configure GPIO56 as SPICLKA
GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 1; // Configure GPIO57 as SPISTEA
GpioDataRegs.GPBSET.bit.GPIO57 = 1; // set SPISTEA idle high
// Gpio pin configures as reset pin
GpioCtrlRegs.GPBPUD.bit.GPIO63 = 1; // enable pull up
GpioCtrlRegs.GPBQSEL2.bit.GPIO63 = 3;
GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 1; //
GpioDataRegs.GPBCLEAR.bit.GPIO63 = 1;
Uint16 tmp = 0xFF;
while(tmp--);
GpioDataRegs.GPBSET.bit.GPIO63 = 1;
}
void spi_init()
{
SpiaRegs.SPICCR.all =0x0047; // Reset on, falling edge, 8-bit char bits
SpiaRegs.SPICTL.all =0x00E; // Enable master mode, normal phase,
// enable talk, and SPI int disabled.
SpiaRegs.SPIBRR =0x001F;
SpiaRegs.SPICCR.all =0x00C7; // Relinquish SPI from Reset
SpiaRegs.SPIPRI.bit.FREE = 1; // Set so breakpoints don't disturb xmission
}
void_ReadVersionReg()
{
GpioDataRegs.GPBCLEAR.bit.GPIO57 = 1; //STE Low
sdata = 0x0039;
spi_xmit(sdata);
sdata = sdata>>8;
spi_xmit(sdata);
sdata = 0x0000;
spi_xmit(sdata);
sdata =sdata>>8;
spi_xmit(sdata);
GpioDataRegs.GPBSET.bit.GPIO57=1; //STEA High
rdata = 0x00;
rdata = SpiaRegs.SPIRXBUF;
}