mrf24j40_registers.h

Register and command definitions for MRF24J40 devices.

MRF24J40_SHORT_ADDR_TRANS
1
(0x00)
MRF24J40_LONG_ADDR_TRANS
1
(0x80)
MRF24J40_ACCESS_READ
1
(0x00)
MRF24J40_ACCESS_WRITE
1
(0x01)
MRF24J40_ACCESS_WRITE_LNG
1
(0x10)
MRF24J40_ADDR_OFFSET
1
(0x01)
MRF24J40_TX_NORMAL_FIFO
1
(0x000)
MRF24J40_TX_BEACON_FIFO
1
(0x080)
MRF24J40_TX_GTS1_FIFO
1
(0x100)
MRF24J40_TX_GTS2_FIFO
1
(0x180)
MRF24J40_RX_FIFO
1
(0x300)
MRF24J40_REG_RXMCR
1
(0x00)
MRF24J40_REG_PANIDL
1
(0x01)
MRF24J40_REG_PANIDH
1
(0x02)
MRF24J40_REG_SADRL
1
(0x03)
MRF24J40_REG_SADRH
1
(0x04)
MRF24J40_REG_EADR0
1
(0x05)
MRF24J40_REG_EADR1
1
(0x06)
MRF24J40_REG_EADR2
1
(0x07)
MRF24J40_REG_EADR3
1
(0x08)
MRF24J40_REG_EADR4
1
(0x09)
MRF24J40_REG_EADR5
1
(0x0A)
MRF24J40_REG_EADR6
1
(0x0B)
MRF24J40_REG_EADR7
1
(0x0C)
MRF24J40_REG_RXFLUSH
1
(0x0D)
MRF24J40_REG_ORDER
1
(0x10)
MRF24J40_REG_TXMCR
1
(0x11)
MRF24J40_REG_ACKTMOUT
1
(0x12)
MRF24J40_REG_ESLOTG1
1
(0x13)
MRF24J40_REG_SYMTICKL
1
(0x14)
MRF24J40_REG_SYMTICKH
1
(0x15)
MRF24J40_REG_PACON0
1
(0x16)
MRF24J40_REG_PACON1
1
(0x17)
MRF24J40_REG_PACON2
1
(0x18)
MRF24J40_REG_TXBCON0
1
(0x1A)
MRF24J40_REG_TXNCON
1
(0x1B)
MRF24J40_REG_TXG1CON
1
(0x1C)
MRF24J40_REG_TXG2CON
1
(0x1D)
MRF24J40_REG_ESLOTG23
1
(0x1E)
MRF24J40_REG_ESLOTG45
1
(0x1F)
MRF24J40_REG_ESLOTG67
1
(0x20)
MRF24J40_REG_TXPEND
1
(0x21)
MRF24J40_REG_WAKECON
1
(0x22)
MRF24J40_REG_FRMOFFSET
1
(0x23)
MRF24J40_REG_TXSTAT
1
(0x24)
MRF24J40_REG_TXBCON1
1
(0x25)
MRF24J40_REG_GATECLK
1
(0x26)
MRF24J40_REG_TXTIME
1
(0x27)
MRF24J40_REG_HSYMTMRL
1
(0x28)
MRF24J40_REG_HSYMTMRH
1
(0x29)
MRF24J40_REG_SOFTRST
1
(0x2A)
MRF24J40_REG_SECCON0
1
(0x2C)
MRF24J40_REG_SECCON1
1
(0x2D)
MRF24J40_REG_TXSTBL
1
(0x2E)
MRF24J40_REG_RXSR
1
(0x30)
MRF24J40_REG_INTSTAT
1
(0x31)
MRF24J40_REG_INTCON
1
(0x32)
MRF24J40_REG_GPIO
1
(0x33)
MRF24J40_REG_TRISGPIO
1
(0x34)
MRF24J40_REG_SLPACK
1
(0x35)
MRF24J40_REG_RFCTL
1
(0x36)
MRF24J40_REG_SECCR2
1
(0x37)
MRF24J40_REG_BBREG0
1
(0x38)
MRF24J40_REG_BBREG1
1
(0x39)
MRF24J40_REG_BBREG2
1
(0x3A)
MRF24J40_REG_BBREG3
1
(0x3B)
MRF24J40_REG_BBREG4
1
(0x3C)
MRF24J40_REG_BBREG6
1
(0x3E)
MRF24J40_REG_CCAEDTH
1
(0x3F)
MRF24J40_REG_RFCON0
1
(0x200)
MRF24J40_REG_RFCON1
1
(0x201)
MRF24J40_REG_RFCON2
1
(0x202)
MRF24J40_REG_RFCON3
1
(0x203)
MRF24J40_REG_RFCON5
1
(0x205)
MRF24J40_REG_RFCON6
1
(0x206)
MRF24J40_REG_RFCON7
1
(0x207)
MRF24J40_REG_RFCON8
1
(0x208)
MRF24J40_REG_SLPCAL0
1
(0x209)
MRF24J40_REG_SLPCAL1
1
(0x20A)
MRF24J40_REG_SLPCAL2
1
(0x20B)
MRF24J40_REG_RFSTATE
1
(0x20F)
MRF24J40_REG_RSSI
1
(0x210)
MRF24J40_REG_SLPCON0
1
(0x211)
MRF24J40_REG_SLPCON1
1
(0x220)
MRF24J40_REG_WAKETIMEL
1
(0x222)
MRF24J40_REG_WAKETIMEH
1
(0x223)
MRF24J40_REG_REMCNTL
1
(0x224)
MRF24J40_REG_REMCNTH
1
(0x225)
MRF24J40_REG_MAINCNT0
1
(0x226)
MRF24J40_REG_MAINCNT1
1
(0x227)
MRF24J40_REG_MAINCNT2
1
(0x228)
MRF24J40_REG_MAINCNT3
1
(0x229)
MRF24J40_REG_TESTMODE
1
(0x22F)
MRF24J40_REG_ASSOEADR0
1
(0x230)
MRF24J40_REG_ASSOEADR1
1
(0x231)
MRF24J40_REG_ASSOEADR2
1
(0x232)
MRF24J40_REG_ASSOEADR3
1
(0x233)
MRF24J40_REG_ASSOEADR4
1
(0x234)
MRF24J40_REG_ASSOEADR5
1
(0x235)
MRF24J40_REG_ASSOEADR6
1
(0x236)
MRF24J40_REG_ASSOEADR7
1
(0x237)
MRF24J40_REG_ASSOSADR0
1
(0x238)
MRF24J40_REG_ASSOSADR1
1
(0x239)
MRF24J40_REG_UPNONCE0
1
(0x240)
MRF24J40_REG_UPNONCE1
1
(0x241)
MRF24J40_REG_UPNONCE2
1
(0x242)
MRF24J40_REG_UPNONCE3
1
(0x243)
MRF24J40_REG_UPNONCE4
1
(0x244)
MRF24J40_REG_UPNONCE5
1
(0x245)
MRF24J40_REG_UPNONCE6
1
(0x246)
MRF24J40_REG_UPNONCE7
1
(0x247)
MRF24J40_REG_UPNONCE8
1
(0x248)
MRF24J40_REG_UPNONCE9
1
(0x249)
MRF24J40_REG_UPNONCE10
1
(0x24A)
MRF24J40_REG_UPNONCE11
1
(0x24B)
MRF24J40_REG_UPNONCE12
1
(0x24C)
MRF24J40_RESET_DELAY
1
(2000U)     /* Datasheet MRF24J40 ~2ms */
MRF24J40_RESET_PULSE_WIDTH
1
(20000U)    /* 20ms (estimated */
MRF24J40_WAKEUP_DELAY
1
(2000U)
MRF24J40_DELAY_SLEEP_TOGGLE

Undocumented delay.

1
(50U)

Probably needed because the bit has to be sampled by the low speed sleep clock

MRF24J40_STATE_RESET_DELAY
1
(200U)
MRF24J40_RXMCR_NOACKRSP
1
(0x20)
MRF24J40_RXMCR_PANCOORD
1
(0x08)
MRF24J40_RXMCR_COORD
1
(0x04)
MRF24J40_RXMCR_ERRPKT
1
(0x02)
MRF24J40_RXMCR_PROMI
1
(0x01)
MRF24J40_RXFLUSH_WAKEPOL
1
(0x40)
MRF24J40_RXFLUSH_WAKEPAD
1
(0x20)
MRF24J40_RXFLUSH_CMDONLY
1
(0x08)
MRF24J40_RXFLUSH_DATAONLY
1
(0x04)
MRF24J40_RXFLUSH_BCNONLY
1
(0x02)
MRF24J40_RXFLUSH_RXFLUSH
1
(0x01)
MRF24J40_TXMCR_CSMA_BACKOFF_MASK

Bitfield definitions for the TXMCR register (0x11)

1
(0x07)
MRF24J40_TXMCR_MACMINBE
1
(0x18)
MRF24J40_TXMCR_NOCSMA
1
(0x80)
MRF24J40_TXMCR_BATLIFEXT
1
(0x40)
MRF24J40_TXMCR_SLOTTED
1
(0x20)
MRF24J40_TXMCR_MACMINBE1
1
(0x10)
MRF24J40_TXMCR_MACMINBE0
1
(0x08)
MRF24J40_TXMCR_CSMABF2
1
(0x04)
MRF24J40_TXMCR_CSMABF1
1
(0x02)
MRF24J40_TXMCR_CSMABF0
1
(0x01)
MRF24J40_PACON2_FIFOEN
1
(0x80)
MRF24J40_PACON2_TXONTS3
1
(0x20)
MRF24J40_PACON2_TXONTS2
1
(0x10)
MRF24J40_PACON2_TXONTS1
1
(0x08)
MRF24J40_PACON2_TXONTS0
1
(0x04)
MRF24J40_PACON2_TXONT8
1
(0x02)
MRF24J40_PACON2_TXONT7
1
(0x01)
MRF24J40_TXNCON_FPSTAT
1
(0x10)
MRF24J40_TXNCON_INDIRECT
1
(0x08)
MRF24J40_TXNCON_TXNACKREQ
1
(0x04)
MRF24J40_TXNCON_TXNSECEN
1
(0x02)
MRF24J40_TXNCON_TXNTRIG
1
(0x01)
MRF24J40_WAKECON_IMMWAKE
1
(0x80)
MRF24J40_WAKECON_REGWAKE
1
(0x40)
MRF24J40_TXSTAT_MAX_FRAME_RETRIES
1
(0xC0)
MRF24J40_TXSTAT_TXNRETRY1
1
(0x80)
MRF24J40_TXSTAT_TXNRETRY0
1
(0x40)
MRF24J40_TXSTAT_CCAFAIL
1
(0x20)
MRF24J40_TXSTAT_TXG2FNT
1
(0x10)
MRF24J40_TXSTAT_TXG1FNT
1
(0x08)
MRF24J40_TXSTAT_TXG2STAT
1
(0x04)
MRF24J40_TXSTAT_TXG1STAT
1
(0x02)
MRF24J40_TXSTAT_TXNSTAT
1
(0x01)
MRF24J40_TXSTAT_MAX_FRAME_RETRIES_SHIFT
1
(6U)
MRF24J40_TXSTAT_CCAFAIL_SHIFT
1
(5U)
MRF24J40_SOFTRST_RSTPWR
1
(0x04)
MRF24J40_SOFTRST_RSTBB
1
(0x02)
MRF24J40_SOFTRST_RSTMAC
1
(0x01)
MRF24J40_TXSTBL_RFSTBL3
1
(0x80)
MRF24J40_TXSTBL_RFSTBL2
1
(0x40)
MRF24J40_TXSTBL_RFSTBL1
1
(0x20)
MRF24J40_TXSTBL_RFSTBL0
1
(0x10)
MRF24J40_TXSTBL_MSIFS3
1
(0x08)
MRF24J40_TXSTBL_MSIFS2
1
(0x04)
MRF24J40_TXSTBL_MSIFS1
1
(0x02)
MRF24J40_TXSTBL_MSIFS0
1
(0x01)
MRF24J40_INTSTAT_SLPIF
1
(0x80)
MRF24J40_INTSTAT_WAKEIF
1
(0x40)
MRF24J40_INTSTAT_HSYMTMRIF
1
(0x20)
MRF24J40_INTSTAT_SECIF
1
(0x10)
MRF24J40_INTSTAT_RXIF
1
(0x08)
MRF24J40_INTSTAT_TXG2IF
1
(0x04)
MRF24J40_INTSTAT_TXG1IF
1
(0x02)
MRF24J40_INTSTAT_TXNIF
1
(0x01)
MRF24J40_INTCON_SLPIE
1
(0x80)
MRF24J40_INTCON_WAKEIE
1
(0x40)
MRF24J40_INTCON_HSYMTMRIE
1
(0x20)
MRF24J40_INTCON_SECIE
1
(0x10)
MRF24J40_INTCON_RXIE
1
(0x08)
MRF24J40_INTCON_TXG2IE
1
(0x04)
MRF24J40_INTCON_TXG1IE
1
(0x02)
MRF24J40_INTCON_TXNIE
1
(0x01)
MRF24J40_SLPACK_SLPACK
1
(0x80)
MRF24J40_RFCTL_WAKECNT8
1
(0x10)
MRF24J40_RFCTL_WAKECNT7
1
(0x08)
MRF24J40_RFCTL_RFRST
1
(0x04)
MRF24J40_RFCTL_RFTXMODE
1
(0x02)
MRF24J40_RFCTL_RFRXMODE
1
(0x01)
MRF24J40_BBREG1_RXDECINV
1
(0x04)
MRF24J40_BBREG2_CCAMODE3
1
(0xC0)
MRF25J40_BBREG2_CCAMODE1
1
(0x80)
MRF24J40_BBREG2_CCAMODE2
1
(0x40)
MRF24J40_BBREG6_RSSIMODE1
1
(0x80)
MRF24J40_BBREG6_RSSIMODE2
1
(0x40)
MRF24J40_BBREG2_RSSIRDY
1
(0x01)
MRF24J40_BBREG2_CCACSTH
1
(0x3C)
MRF24J40_RFCON1_VCOOPT7
1
(0x80)
MRF24J40_RFCON1_VCOOPT6
1
(0x40)
MRF24J40_RFCON1_VCOOPT5
1
(0x20)
MRF24J40_RFCON1_VCOOPT4
1
(0x10)
MRF24J40_RFCON1_VCOOPT3
1
(0x08)
MRF24J40_RFCON1_VCOOPT2
1
(0x04)
MRF24J40_RFCON1_VCOOPT1
1
(0x02)
MRF24J40_RFCON1_VCOOPT0
1
(0x01)
MRF24J40_RFCON2_PLLEN
1
(0x80)
MRF24J40_RFCON6_TXFIL
1
(0x80)
MRF24J40_RFCON6_20MRECVR
1
(0x10)
MRF24J40_RFCON6_BATEN
1
(0x08)
MRF24J40_RFCON7_SLPCLKSEL1
1
(0x80)
MRF24J40_RFCON7_SLPCLKSEL2
1
(0x40)
MRF24J40_RFCON8_RFVCO
1
(0x10)
MRF24J40_RFSTATE_MASK
1
(0xA0)
MRF24J40_RFSTATE_RTSEL2
1
(0xE0)
MRF24J40_RFSTATE_RTSEL1
1
(0xC0)
MRF24J40_RFSTATE_RX
1
(0xA0)
MRF24J40_RFSTATE_TX
1
(0x80)
MRF24J40_RFSTATE_CALVCO
1
(0x60)
MRF24J40_RFSTATE_SLEEP
1
(0x40)
MRF24J40_RFSTATE_CALFIL
1
(0x20)
MRF24J40_RFSTATE_RESET
1
(0x00)
MRF24J40_SLPCON0_INTEDGE
1
(0x02)
MRF24J40_SLPCON0_SLPCLKEN
1
(0x01)
MRF24J40_SLPCON1_CLKOUTEN
1
(0x20)
MRF24J40_SLPCON1_SLPCLKDIV4
1
(0x10)
MRF24J40_SLPCON1_SLPCLKDIV3
1
(0x08)
MRF24J40_SLPCON1_SLPCLKDIV2
1
(0x04)
MRF24J40_SLPCON1_SLPCLKDIV1
1
(0x02)
MRF24J40_SLPCON1_SLPCLKDIV0
1
(0x01)