/*---------------------------------------------------------------------------*/ static uint8_t readreg(uint8_t reg) { uint8_t r; enc28j60_arch_spi_select(); enc28j60_arch_spi_write(0x00 | (reg & 0x1f)); if(is_mac_mii_reg(reg)) { /* MAC and MII registers require that a dummy byte be read first. */ enc28j60_arch_spi_read(); } r = enc28j60_arch_spi_read(); enc28j60_arch_spi_deselect(); return r; }
/*---------------------------------------------------------------------------*/ static uint8_t readreg(uint8_t reg) { uint8_t r; enc28j60_arch_spi_select(); enc28j60_arch_spi_write(0x00 | (reg & 0x1f)); r = enc28j60_arch_spi_read(); enc28j60_arch_spi_deselect(); return r; }
/*---------------------------------------------------------------------------*/ static uint8_t readdatabyte(void) { uint8_t r; enc28j60_arch_spi_select(); /* THe Read Buffer Memory (RBM) command is 0 0 1 1 1 0 1 0 */ enc28j60_arch_spi_write(0x3a); r = enc28j60_arch_spi_read(); enc28j60_arch_spi_deselect(); return r; }
/*---------------------------------------------------------------------------*/ static int readdata(uint8_t *buf, int len) { int i; enc28j60_arch_spi_select(); /* THe Read Buffer Memory (RBM) command is 0 0 1 1 1 0 1 0 */ enc28j60_arch_spi_write(0x3a); for(i = 0; i < len; i++) { buf[i] = enc28j60_arch_spi_read(); } enc28j60_arch_spi_deselect(); return i; }