' ENC28J60 Control Registers ' Control register definitions are a combination of address, ' bank number, and Ethernet/MAC/PHY indicator bits. ' - Register address (bits 0-4) ' - Bank number (bits 7-6) ' - MAC/PHY indicator (bit 5) 'All-bank registers Const Eie = &H1B Const Eir = &H1C Const Estat = &H1D Const Econ2 = &H1E Const Econ1 = &H1F 'for bank selection Const Bank0 = &B00_000000 Const Bank1 = &B01_000000 Const Bank2 = &B10_000000 Const Bank3 = &B11_000000 'MAC/PHY indicator Const Macphy = &B00_1_00000 'Bank 0 registers Const Erdptl = &H00 Or Bank0 Const Erdpth = &H01 Or Bank0 Const Ewrptl = &H02 Or Bank0 Const Ewrpth = &H03 Or Bank0 Const Etxstl = &H04 Or Bank0 Const Etxsth = &H05 Or Bank0 Const Etxndl = &H06 Or Bank0 Const Etxndh = &H07 Or Bank0 Const Erxstl = &H08 Or Bank0 Const Erxsth = &H09 Or Bank0 Const Erxndl = &H0A Or Bank0 Const Erxndh = &H0B Or Bank0 Const Erxrdptl = &H0C Or Bank0 Const Erxrdpth = &H0D Or Bank0 Const Erxwrptl = &H0E Or Bank0 Const Erxwrpth = &H0F Or Bank0 Const Edmastl = &H10 Or Bank0 Const Edmasth = &H11 Or Bank0 Const Edmandl = &H12 Or Bank0 Const Edmandh = &H13 Or Bank0 Const Edmadstl = &H14 Or Bank0 Const Edmadsth = &H15 Or Bank0 Const Edmacsl = &H16 Or Bank0 Const Edmacsh = &H17 Or Bank0 ' Bank 1 registers Const Eht0 = &H00 Or Bank1 Const Eht1 = &H01 Or Bank1 Const Eht2 = &H02 Or Bank1 Const Eht3 = &H03 Or Bank1 Const Eht4 = &H04 Or Bank1 Const Eht5 = &H05 Or Bank1 Const Eht6 = &H06 Or Bank1 Const Eht7 = &H07 Or Bank1 Const Epmm0 = &H08 Or Bank1 Const Epmm1 = &H09 Or Bank1 Const Epmm2 = &H0A Or Bank1 Const Epmm3 = &H0B Or Bank1 Const Epmm4 = &H0C Or Bank1 Const Epmm5 = &H0D Or Bank1 Const Epmm6 = &H0E Or Bank1 Const Epmm7 = &H0F Or Bank1 Const Epmcsl = &H10 Or Bank1 Const Epmcsh = &H11 Or Bank1 Const Epmol = &H14 Or Bank1 Const Epmoh = &H15 Or Bank1 Const Ewolie = &H16 Or Bank1 Const Ewolir = &H17 Or Bank1 Const Erxfcon = &H18 Or Bank1 Const Epktcnt = &H19 Or Bank1 ' Bank 2 registers Const Macon1 = &H00 Or Bank2 Or Macphy Const Macon2 = &H01 Or Bank2 Or Macphy Const Macon3 = &H02 Or Bank2 Or Macphy Const Macon4 = &H03 Or Bank2 Or Macphy Const Mabbipg = &H04 Or Bank2 Or Macphy Const Maipgl = &H06 Or Bank2 Or Macphy Const Maipgh = &H07 Or Bank2 Or Macphy Const Maclcon1 = &H08 Or Bank2 Or Macphy Const Maclcon2 = &H09 Or Bank2 Or Macphy Const Mamxfll = &H0A Or Bank2 Or Macphy Const Mamxflh = &H0B Or Bank2 Or Macphy Const Maphsup = &H0D Or Bank2 Or Macphy Const Micon = &H11 Or Bank2 Or Macphy Const Micmd = &H12 Or Bank2 Or Macphy Const Miregadr = &H14 Or Bank2 Or Macphy Const Miwrl = &H16 Or Bank2 Or Macphy Const Miwrh = &H17 Or Bank2 Or Macphy Const Mirdl = &H18 Or Bank2 Or Macphy Const Mirdh = &H19 Or Bank2 Or Macphy ' Bank 3 registers Const Maadr1 = &H00 Or Bank3 Or Macphy Const Maadr0 = &H01 Or Bank3 Or Macphy Const Maadr3 = &H02 Or Bank3 Or Macphy Const Maadr2 = &H03 Or Bank3 Or Macphy Const Maadr5 = &H04 Or Bank3 Or Macphy Const Maadr4 = &H05 Or Bank3 Or Macphy Const Ebstsd = &H06 Or Bank3 Const Ebstcon = &H07 Or Bank3 Const Ebstcsl = &H08 Or Bank3 Const Ebstcsh = &H09 Or Bank3 Const Mistat = &H0A Or Bank3 Or Macphy 'checken of goed is Const Erevid = &H12 Or Bank3 Const Ecocon = &H15 Or Bank3 Const Eflocon = &H17 Or Bank3 Const Epausl = &H18 Or Bank3 Const Epaush = &H19 Or Bank3 ' PHY registers Const Phcon1 = &H00 Const Phstat1 = &H01 Const Phhid1 = &H02 Const Phhid2 = &H03 Const Phcon2 = &H10 Const Phstat2 = &H11 Const Phie = &H12 Const Phir = &H13 Const Phlcon = &H14 ' ENC28J60 EIR Register Bit Definitions '-- Const Eir_pktif = 6 Const Eir_dmaif = 5 Const Eir_linkif = 4 Const Eir_txif = 3 Const Eir_wolif = 2 Const Eir_txerif = 1 Const Eir_rxerif = 0 ' ENC28J60 ESTAT Register Bit Definitions Const Estat_int = 7 'Const Estat_bufer = 6 '-- Const Estat_latecol = 4 '-- Const Estat_rxbusy = 2 Const Estat_txabrt = 1 Const Estat_clkrdy = 0 ' ENC28J60 EIE Register Bit Definitions Const Eie_intie = 7 Const Eie_pktie = 6 Const Eie_dmaie = 5 Const Eie_linkie = 4 Const Eie_txie = 3 Const Eie_wolie = 2 Const Eie_txerie = 1 Const Eie_rxerie = 0 ' ENC28J60 ECON2 Register Bit Definitions Const Econ2_autoinc = 7 Const Econ2_pktdec = 6 Const Econ2_pwrsv = 5 '-- Const Econ2_vrps = 3 '-- '-- '-- ' ENC28J60 ECON1 Register Bit Definitions Const Econ1_txrst = 7 Const Econ1_rxrst = 6 Const Econ1_dmast = 5 Const Econ1_csumen = 4 Const Econ1_txrts = 3 Const Econ1_rxen = 2 Const Econ1_bsel1 = 1 Const Econ1_bsel0 = 0 ' ENC28J60 MACON1 Register Bit Definitions Const Macon1_loopbk = 4 '?? reserved (&H10) Const Macon1_txpaus = 3 Const Macon1_rxpaus = 2 Const Macon1_passall = 1 Const Macon1_marxen = 0 ' ENC28J60 MACON2 Register Bit Definitions Const Macon2_marst = 7 Const Macon2_rndrst = 6 '-- '-- Const Macon2_marxrst = 4 Const Macon2_rfunrst = 2 Const Macon2_matxrst = 1 Const Macon2_tfunrst = 0 ' ENC28J60 MACON3 Register Bit Definitions Const Macon3_padcfg2 = 7 Const Macon3_padcfg1 = 6 Const Macon3_padcfg0 = 5 Const Macon3_txcrcen = 4 Const Macon3_phdrlen = 3 Const Macon3_hfrmlen = 2 Const Macon3_frmlnen = 1 Const Macon3_fuldpx = 0 ' ENC28J60 MICMD Register Bit Definitions Const Micmd_miiscan = 1 Const Micmd_miird = 0 ' ENC28J60 MISTAT Register Bit Definitions Const Mistat_nvalid = 2 Const Mistat_scan = 1 Const Mistat_busy = 0 ' ENC28J60 PHY PHCON1 Register Bit Definitions Const Phcon1_prst = &H8000 Const Phcon1_ploopbk = &H4000 Const Phcon1_ppwrsv = &H0800 Const Phcon1_pdpxmd = &H0100 ' ENC28J60 PHY PHSTAT1 Register Bit Definitions Const Phstat1_pfdpx = &H1000 Const Phstat1_phdpx = &H0800 Const Phstat1_llstat = &H0004 Const Phstat1_jbstat = &H0002 ' ENC28J60 PHY PHCON2 Register Bit Definitions Const Phcon2_frclink = &H4000 Const Phcon2_txdis = &H2000 Const Phcon2_jabber = &H0400 Const Phcon2_hdldis = &H0100 ' ENC28J60 Packet Control Byte Bit Definitions Const Pktctrl_phugeen = 3 Const Pktctrl_ppaden = 2 Const Pktctrl_pcrcen = 1 Const Pktctrl_poverride = 0 ' SPI operation codes 'Const Enc28j60_read_ctrl_reg = &H00 Const Enc28j60_read_buf_mem = &H3A 'Const Enc28j60_write_ctrl_reg = &H40 Const Enc28j60_write_buf_mem = &H7A 'Const Enc28j60_bit_field_set = &H80 'Const Enc28j60_bit_field_clr = &HA0 Const Enc28j60_soft_reset = &HFF ' buffer boundaries applied to internal 8K ram ' entire available packet buffer space is allocated Const Txstart_init = &H0000 ' start TX buffer at 0 Const Rxstart_init = &H1A19 ' give TX buffer space for one full ethernet frame (~1500 bytes) Const Rxstop_init = &H1FF0 ' receive buffer gets the rest 'ENC28J60 ETHERNET RECEIVE FILTER CONTROL REGISTER Const Erxfcon_ucen = 7 'default 1 - Unicast Filter Enable bit Const Erxfcon_andor = 6 'default 0 Const Erxfcon_crcen = 5 'default 1 Const Erxfcon_pmen = 4 'default 0 - Pattern Match Filter Enable bit Const Erxfcon_mpen = 3 'default 0 - Magic Packet Filter Enable bit Const Erxfcon_hten = 2 'default 0 - Hash Table Filter Enable bit Const Erxfcon_mcen = 1 'default 0 - Multicast Filter Enable bit Const Erxfcon_bcen = 0 'default 1 - Broadcast Filter Enable bit