Exemple #1
0
static void writeBuf(word len, const byte* data) {
    enableChip();
    xferSPI(ENC28J60_WRITE_BUF_MEM);
    while (len--)
        xferSPI(*data++);
    disableChip();
}
Exemple #2
0
static void WriteBuffer(word len, byte* data) {
    enableChip();
    sendSPI(ENC28J60_WRITE_BUF_MEM);
    while (len--)
        sendSPI(*data++);
    disableChip();
}
Exemple #3
0
void enc28j60WriteOp(uint8_t op, uint8_t address, uint8_t data)
{
    enableChip();
    sendSPI(op | (address & ADDR_MASK));
    sendSPI(data);
    disableChip();
}
Exemple #4
0
static void readBuf(uint16_t len, byte* data) { //this bit ipsis literis from Seradisis's port
    enableChip();
	SPI.transfer(ENC28J60_READ_BUF_MEM);
    while (len--) {
		*data++ = SPI.transfer(0x00);
    }
    disableChip();
}
Exemple #5
0
void enc28j60WriteBuffer(uint16_t len, uint8_t* data)
{
    enableChip();
    sendSPI(ENC28J60_WRITE_BUF_MEM);
    while (len--)
        sendSPI(*data++);

    disableChip();
}
Exemple #6
0
static void readBuf(word len, byte* data) {
    enableChip();
    xferSPI(ENC28J60_READ_BUF_MEM);
    while (len--) {
        xferSPI(0x00);
        *data++ = SPDR;
    }
    disableChip();
}
Exemple #7
0
static void writeBuf(uint16_t len, const byte* data) { //this bit ipsis literis from Seradisis's port
    enableChip();
	SPI.transfer(ENC28J60_WRITE_BUF_MEM);

	while (len--)
		SPI.transfer(*data++);

    disableChip();
}
Exemple #8
0
void enc28j60ReadBuffer(uint16_t len, uint8_t* data)
{
    enableChip();
    sendSPI(ENC28J60_READ_BUF_MEM);
    while (len--) {
        sendSPI(0x00);
        *data++ = SPDR;
    }
    disableChip();
}
Exemple #9
0
static void drop(word len) {

    enableChip();
    xferSPI(ENC28J60_READ_BUF_MEM);
    while (len--) {
        xferSPI(0x00);
        SPDR;
    }
    disableChip();
}
Exemple #10
0
static void ReadBuffer(word len, byte* data) {
    enableChip();
    sendSPI(ENC28J60_READ_BUF_MEM);
    while (len--) {
        sendSPI(0x00);
        *data++ = SPDR;
    }
    disableChip();
    *data='\0';
}
byte ENC28J60Driver::readOp (uint8_t op, uint8_t address) {
    enableChip();
    xferSPI(op | (address & ADDR_MASK));
    xferSPI(0x00);
    if (address & 0x80)
        xferSPI(0x00);
    uint8_t result = SPDR;
    disableChip();
    return result;
}
Exemple #12
0
static byte readOp (byte op, byte address) {
    enableChip();
    xferSPI(op | (address & ADDR_MASK));
    xferSPI(0x00);
    if (address & 0x80)
        xferSPI(0x00);
    byte result = SPDR;
    disableChip();
    return result;
}
Exemple #13
0
static byte readOp (byte op, byte address) {
    enableChip();
	byte result;
	SPI.transfer(op | (address & ADDR_MASK));
	result = SPI.transfer(0x00);
	if (address & 0x80)
		result = SPI.transfer(0x00);
	
    disableChip();
    return result;
}
Exemple #14
0
void enc28j60WriteBuffer(uint16_t len, uint8_t* data)
{
	if(len >= (MAX_FRAMELEN))
		return;

    enableChip();
    sendSPI(ENC28J60_WRITE_BUF_MEM);
    while (len--)
        sendSPI(*data++);

    disableChip();
}
Exemple #15
0
void enc28j60ReadBuffer(uint16_t len, uint8_t* data)
{
    enableChip();
    sendSPI(ENC28J60_READ_BUF_MEM);
    while (len--) 
    {
        sendSPI(0x00);
        *data++ = ReadSPDR();
    }
    disableChip();
    // Remove next line suggested by user epam - not needed
//    *data='\0';
}
Exemple #16
0
void ADE7758::write8bits(char reg, unsigned char data)
{
    enableChip();
        
    delay(10);
    spi_transfer(REG_WRITE(reg));
    delay(2);

    spi_transfer(data);

    delay(1);
    
    disableChip();
}
Exemple #17
0
void ADE7758::write16bits(char reg, unsigned int data)
{
    enableChip();
    
    delay(10);
    spi_transfer(REG_WRITE(reg));
    delay(2);
    spi_transfer((unsigned char)((data>>8)&0xFF));
    delay(2);
    spi_transfer((unsigned char)(data&0xFF));
    delay(1);

    disableChip();
}
Exemple #18
0
uint8_t enc28j60ReadOp(uint8_t op, uint8_t address)
{
        enableChip();
        // issue read command
        sendSPI(op | (address & ADDR_MASK));
        sendSPI(0x00);
        if (address & 0x80)
            sendSPI(0x00);

        byte result = SPDR;
        // release CS
        disableChip();
        return result;
}
Exemple #19
0
unsigned char ADE7758::read8bits(char reg)
{
    enableChip();
    
    unsigned char ret;
    delay(10);
    spi_transfer(REG_READ(reg));
    delay(2);
    ret=spi_transfer(0x00);
    delay(1);
    
    disableChip();

    return ret;
}
Exemple #20
0
unsigned int ADE7758::read16bits(char reg)
{
    enableChip();
    unsigned int ret=0;
    unsigned char ret0=0;
    delay(10);
    spi_transfer(REG_READ(reg));
    delay(2);
    ret=spi_transfer(0x00);
    delay(2);
    ret0=spi_transfer(0x00);
    delay(1);
    
    disableChip();
    ret= (ret<<8)|ret0;
    return ret;
}
Exemple #21
0
static void writeBuf(uint16_t len, const byte* data) {
    enableChip();
    if (len != 0) {
        xferSPI(ENC28J60_WRITE_BUF_MEM);
           
        SPDR = *data++;    
        while (--len) {
            uint8_t nextbyte = *data++;
        	while (!(SPSR & (1<<SPIF)))
                ;
            SPDR = nextbyte;
     	};  
        while (!(SPSR & (1<<SPIF)))
            ;
    }
    disableChip();
}
Exemple #22
0
static void readBuf(uint16_t len, byte* data) {
    uint8_t nextbyte;

    enableChip();
    if (len != 0) {    
        xferSPI(ENC28J60_READ_BUF_MEM);
          
        SPDR = 0x00; 
        while (--len) {
            while (!(SPSR & (1<<SPIF)))
                ;
            nextbyte = SPDR;
            SPDR = 0x00;
            *data++ = nextbyte;     
        }
        while (!(SPSR & (1<<SPIF)))
            ;
        *data++ = SPDR;    
    }
    disableChip(); 
}
/* ======================================================================= */
ENC28J60Driver::ENC28J60Driver(uint8_t* macaddr, uint8_t csPin): 
  EthernetDriver(macaddr){

  this->sendBuffer = new ENC28J60Buffer(this,TXSTART_INIT+1,
					TXSTOP_INIT,
					MAX_FRAMELEN,
					0,false);
  this->recvBuffer = new ENC28J60Buffer(this,RXSTART_INIT,
					RXSTOP_INIT,
					MAX_FRAMELEN,
					0,true);
  this->stashBuffer = new ENC28J60Buffer(this,STASH_START_INIT,
					 STASH_STOP_INIT,
					 STASH_STOP_INIT - STASH_START_INIT +1,
					 0,false);
					 

  if (bitRead(SPCR, SPE) == 0)
    initSPI();

  selectPin = csPin;  
  pinMode(selectPin, OUTPUT);
  disableChip();

  writeOp(ENC28J60_SOFT_RESET, 0, ENC28J60_SOFT_RESET);
  delay(2); // errata B7/2

  while (!readOp(ENC28J60_READ_CTRL_REG, ESTAT) & ESTAT_CLKRDY)
    ;
  
  gNextPacketPtr = RXSTART_INIT;
  writeReg(ERXST, RXSTART_INIT);
  writeReg(ERXRDPT, RXSTART_INIT);
  writeReg(ERXND, RXSTOP_INIT);
  writeReg(ETXST, TXSTART_INIT);
  writeReg(ETXND, TXSTOP_INIT);
  
  writeRegByte(ERXFCON, ERXFCON_UCEN|ERXFCON_CRCEN|ERXFCON_PMEN|ERXFCON_BCEN);

  writeReg(EPMM0, 0x303f);
  writeReg(EPMCS, 0xf7f9);
  writeRegByte(MACON1, MACON1_MARXEN|MACON1_TXPAUS|MACON1_RXPAUS);
  writeRegByte(MACON2, 0x00);
  writeOp(ENC28J60_BIT_FIELD_SET, MACON3,
	  MACON3_PADCFG0|MACON3_TXCRCEN|MACON3_FRMLNEN);
  writeReg(MAIPG, 0x0C12);
  writeRegByte(MABBIPG, 0x12);
  writeReg(MAMXFL, MAX_FRAMELEN);  
  writeRegByte(MAADR5, macaddr[0]);
  writeRegByte(MAADR4, macaddr[1]);
  writeRegByte(MAADR3, macaddr[2]);
  writeRegByte(MAADR2, macaddr[3]);
  writeRegByte(MAADR1, macaddr[4]);
  writeRegByte(MAADR0, macaddr[5]);
  writePhy(PHCON2, PHCON2_HDLDIS);
  SetBank(ECON1);
  writeOp(ENC28J60_BIT_FIELD_SET, EIE, EIE_INTIE|EIE_PKTIE);
  writeOp(ENC28J60_BIT_FIELD_SET, ECON1, ECON1_RXEN);
  
  this->revision = readRegByte(EREVID);
  // microchip forgot to step the number on the silcon when they
  // released the revision B7. 6 is now rev B7. We still have
  // to see what they do when they release B8. At the moment
  // there is no B8 out yet
  if (this->revision > 5) this->revision++;
}
void ENC28J60Driver::writeOp (uint8_t op, uint8_t address, uint8_t data) {
    enableChip();
    xferSPI(op | (address & ADDR_MASK));
    xferSPI(data);
    disableChip();
}
Exemple #25
0
static void writeOp (byte op, byte address, byte data) {
    enableChip();
	SPI.transfer(op | (address & ADDR_MASK));
	SPI.transfer(data);
    disableChip();
}
Exemple #26
0
static void writeOp (byte op, byte address, byte data) {
    enableChip();
    xferSPI(op | (address & ADDR_MASK));
    xferSPI(data);
    disableChip();
}