Example #1
0
uint8_t W5100_MemReadWord(uint16_t addr, uint16_t *val) {
  uint8_t low, high;
  
  W5100_RequestSPIBus();

  W5100_CS_ENABLE();
  SPIWriteByte(W5100_CMD_READ);
  SPIWriteByte(addr>>8); /* high address */
  SPIWriteByte(addr&0xff); /* low address */
  high = SPIReadByte(); /* data */
  W5100_CS_DISABLE();
  
  addr++;
  W5100_CS_ENABLE();
  SPIWriteByte(W5100_CMD_READ);
  SPIWriteByte(addr>>8); /* high address */
  SPIWriteByte(addr&0xff); /* low address */
  low = SPIReadByte(); /* data */
  W5100_CS_DISABLE();
  
  W5100_ReleaseSPIBus();
  
  *val = (high<<8)|low;
  return ERR_OK;
}
Example #2
0
uint8_t W5100_MemReadByte(uint16_t addr, uint8_t *val) {
  W5100_GetBus();
  SPIWriteByte(W5100_CMD_READ);
  SPIWriteByte(addr>>8); /* high address */
  SPIWriteByte(addr&0xff); /* low address */
  *val = SPIReadByte(); /* data */
  W5100_ReleaseBus();
  return ERR_OK;
}
Example #3
0
//*******************************************************************************************
//
// Function : icmp_send_request
// Description : Send ARP request packet to destination.
//
//*******************************************************************************************
BYTE enc28j60ReadOp(BYTE op, BYTE address)
{
        BYTE data;
	// activate CS
	CSACTIVE;
        
	// issue read command
	SPISendByte(op | (address & ADDR_MASK));
	// read data
	data = SPIReadByte();
	// do dummy read if needed (for mac and mii, see datasheet page 29)
	if(address & 0x80)
	{
		data = SPIReadByte();
	}

	CSPASSIVE;
	return data;
}
Example #4
0
/////////////////////////////////////////////////////////////////////
//功    能:读RC632寄存器
//参数说明:Address[IN]:寄存器地址
//返    回:读出的值
/////////////////////////////////////////////////////////////////////
u8 ReadRawRC(u8   Address)
{
    u8   ucAddr;
    u8   ucResult=0;
	CLR_SPI_CS;
    ucAddr = ((Address<<1)&0x7E)|0x80;
	
	SPIWriteByte(ucAddr);
	ucResult=SPIReadByte();
	SET_SPI_CS;
   return ucResult;
}
Example #5
0
void enc28j60ReadBuffer(uint16_t len, uint8_t* data)
{
        CSACTIVE;

        SPISendByte(ENC28J60_READ_BUF_MEM);
        while(len)
        {
                len--;

                *data = SPIReadByte();
                data++;
        }
        *data='\0';
        CSPASSIVE;
}