Hello, I am using a Wiz5500 with a CC1310 MCU and I am trying to simply send an ethernet packet via socket 0. I am currently trying to fill the TX buffer with some random data 0xFF to see if the buffer’s free size decreases and it does not seem to be doing that.
ETH_Write8_8( 0xFF); //This is what I am passing to be written.
void ETH_Write8_8(uint8_t data)
{
//ETH_NCS_LOW(); //CS
uint16_t addr = getSn_TX_WR(0);
ETH_WRITE8(Sn_TX_WR(0),data);
addr++;
WIZCHIP_WRITE(Sn_TX_WR(0), addr);
uint16_t addr1 = getSn_TX_WR(0);
uint16_t addr2 = getSn_TX_RD(0);
//ETH_NCS_HIGH(); //CS
}
void ETH_WRITE8(uint32_t add, uint8_t data)
{
WIZCHIP_WRITE(add,data);
}
void WIZCHIP_WRITE(uint32_t AddrSel, uint8_t wb )
{
WIZCHIP_CRITICAL_ENTER();
WIZCHIP.CS._select();
#if( (_WIZCHIP_IO_MODE_ & _WIZCHIP_IO_MODE_SPI_))
#if ( _WIZCHIP_IO_MODE_ == _WIZCHIP_IO_MODE_SPI_VDM_ )
AddrSel |= (_W5500_SPI_WRITE_ | _W5500_SPI_VDM_OP_);
#endif
WIZCHIP.IF.SPI._write_byte((AddrSel & 0x00FF0000) >> 16);
WIZCHIP.IF.SPI._write_byte((AddrSel & 0x0000FF00) >> 8);
WIZCHIP.IF.SPI._write_byte((AddrSel & 0x000000FF) >> 0);
WIZCHIP.IF.SPI._write_byte(wb);
#endif
WIZCHIP.CS._deselect();
WIZCHIP_CRITICAL_EXIT();
}
that is what my function looks like to write to the TX buffer but the write pointer for TX buffer do not seem to be updating when I write to the buffer.
EDIT 1: From my understanding when I want to write to the TX buffer I have to first get the Tx write pointer and then write to it and then update the pointer so that I don’t overwrite anything that I just saved in the buffer. I believe that I am calling the write pointer address and sending it to WizChip Write so that it can write my data to that location unless I am misunderstanding how to write to the TX buffer.