62 #define MRF24J40_DEFAULT_CHANNEL 11
64 #define MRF24J40_TX_ERR_NONE 0
65 #define MRF24J40_TX_ERR_NOTSPECIFIED 1
66 #define MRF24J40_TX_ERR_COLLISION 2
67 #define MRF24J40_TX_ERR_MAXRETRY 3
68 #define MRF24J40_TX_WAIT 4
78 void mrf24j40_set_csma_par(uint8_t be, uint8_t nb);
87 #define MRF24J40_RFCON0 (0x200)
88 #define MRF24J40_RFCON1 (0x201)
89 #define MRF24J40_RFCON2 (0x202)
90 #define MRF24J40_RFCON3 (0x203)
91 #define MRF24J40_RFCON5 (0x205)
92 #define MRF24J40_RFCON6 (0x206)
93 #define MRF24J40_RFCON7 (0x207)
94 #define MRF24J40_RFCON8 (0x208)
95 #define MRF24J40_SPCAL0 (0x209)
96 #define MRF24J40_SPCAL1 (0x20A)
97 #define MRF24J40_SPCAL2 (0x20B)
98 #define MRF24J40_RFSTATE (0x20F)
99 #define MRF24J40_RSSI (0x210)
100 #define MRF24J40_SLPCON0 (0x211)
101 #define MRF24J40_SLPCON1 (0x220)
102 #define MRF24J40_WAKETIMEL (0x222)
103 #define MRF24J40_WAKETIMEH (0x223)
104 #define MRF24J40_REMCNTL (0x224)
105 #define MRF24J40_REMCNTH (0x225)
106 #define MRF24J40_MAINCNT0 (0x226)
107 #define MRF24J40_MAINCNT1 (0x227)
108 #define MRF24J40_MAINCNT2 (0x228)
109 #define MRF24J40_MAINCNT3 (0x229)
110 #define MRF24J40_TESTMODE (0x22F)
111 #define MRF24J40_NORMAL_TX_FIFO (0x000)
112 #define MRF24J40_BEACON_TX_FIFO (0x080)
113 #define MRF24J40_GTS1_TX_FIFO (0x100)
114 #define MRF24J40_GTS2_TX_FIFO (0x180)
115 #define MRF24J40_RX_FIFO (0x300)
116 #define MRF24J40_SECURITY_FIFO (0x280)
117 #define MRF24J40_UPNONCE0 (0x240)
120 #define MRF24J40_RXMCR (0x00)
121 #define MRF24J40_PANIDL (0x01)
122 #define MRF24J40_PANIDH (0x02)
123 #define MRF24J40_SADRL (0x03)
124 #define MRF24J40_SADRH (0x04)
125 #define MRF24J40_EADR0 (0x05)
126 #define MRF24J40_EADR1 (0x06)
127 #define MRF24J40_EADR2 (0x07)
128 #define MRF24J40_EADR3 (0x08)
129 #define MRF24J40_EADR4 (0x09)
130 #define MRF24J40_EADR5 (0x0A)
131 #define MRF24J40_EADR6 (0x0B)
132 #define MRF24J40_EADR7 (0x0C)
133 #define MRF24J40_RXFLUSH (0x0D)
134 #define MRF24J40_ORDER (0x10)
135 #define MRF24J40_TXMCR (0x11)
136 #define MRF24J40_ACKTMOUT (0x12)
137 #define MRF24J40_ESLOTG1 (0x13)
138 #define MRF24J40_SYMTICKL (0x14)
139 #define MRF24J40_SYMTICKH (0x15)
140 #define MRF24J40_PACON0 (0x16)
141 #define MRF24J40_PACON1 (0x17)
142 #define MRF24J40_PACON2 (0x18)
143 #define MRF24J40_TXBCON0 (0x1A)
144 #define MRF24J40_TXNCON (0x1B)
145 #define MRF24J40_TXG1CON (0x1C)
146 #define MRF24J40_TXG2CON (0x1D)
147 #define MRF24J40_ESLOTG23 (0x1E)
148 #define MRF24J40_ESLOTG45 (0x1F)
149 #define MRF24J40_ESLOTG87 (0x20)
150 #define MRF24J40_TXPEND (0x21)
151 #define MRF24J40_WAKECON (0x22)
152 #define MRF24J40_FRMOFFSET (0x23)
153 #define MRF24J40_TXSTAT (0x24)
154 #define MRF24J40_TXBCON1 (0x25)
155 #define MRF24J40_GATECLK (0x26)
156 #define MRF24J40_TXTIME (0x27)
157 #define MRF24J40_HSYMTMRL (0x28)
158 #define MRF24J40_HSYMTMRH (0x29)
159 #define MRF24J40_SOFTRST (0x2A)
160 #define MRF24J40_SECCON0 (0x2C)
161 #define MRF24J40_SECCON1 (0x2D)
162 #define MRF24J40_TXSTBL (0x2E)
163 #define MRF24J40_RXSR (0x30)
164 #define MRF24J40_INTSTAT (0x31)
165 #define MRF24J40_INTCON (0x32)
166 #define MRF24J40_GPIO (0x33)
167 #define MRF24J40_TRISGPIO (0x34)
168 #define MRF24J40_SLPACK (0x35)
169 #define MRF24J40_RFCTL (0x36)
170 #define MRF24J40_SECCR2 (0x37)
171 #define MRF24J40_BBREG0 (0x38)
172 #define MRF24J40_BBREG1 (0x39)
173 #define MRF24J40_BBREG2 (0x3A)
174 #define MRF24J40_BBREG3 (0x3B)
175 #define MRF24J40_BBREG4 (0x3C)
176 #define MRF24J40_BBREG6 (0x3E)
177 #define MRF24J40_CCAEDTH (0x3F)
187 #define MRF24J40_PWR_H_MINUS_30dB (0b11)
188 #define MRF24J40_PWR_H_MINUS_20dB (0b10)
189 #define MRF24J40_PWR_H_MINUS_10dB (0b01)
190 #define MRF24J40_PWR_H_0dB (0b00)
192 #define MRF24J40_PWR_L_MINUS_6_3dB (0b111)
193 #define MRF24J40_PWR_L_MINUS_4_9dB (0b110)
194 #define MRF24J40_PWR_L_MINUS_3_7dB (0b101)
195 #define MRF24J40_PWR_L_MINUS_2_8dB (0b100)
196 #define MRF24J40_PWR_L_MINUS_1_9dB (0b011)
197 #define MRF24J40_PWR_L_MINUS_1_2dB (0b010)
198 #define MRF24J40_PWR_L_MINUS_0_5dB (0b001)
199 #define MRF24J40_PWR_L_0dB (0b000)
201 #define MRF24J40_TX_PWR_SET(large_val, small_val) ((large_val << 6) | (small_val << 3))
203 typedef union _TX_status {
216 typedef union _INT_status {
void mrf24j40_set_short_mac_addr(uint16_t addr)
Store short MAC address.
uint8_t mrf24j40_get_rssi(void)
Get the RSSI.
SPI interface for PIC32MX (pic32mx795f512l)
void mrf24j40_set_tx_power(uint8_t pwr)
Set TX power.
INTERRUPT interface for PIC32MX (pic32mx795f512l)
void mrf24j40_set_channel(uint16_t ch)
Set the channel.
The structure of a device driver for a radio in Contiki.
uint8_t mrf24j40_get_last_rssi(void)
Get the last read RSSI.
uint8_t mrf24j40_get_last_lqi(void)
Get the last read LQI.
void mrf24j40_set_panid(uint16_t id)
Store MAC PAN ID.
void mrf24j40_get_extended_mac_addr(uint64_t *addr)
Gets extended MAC address.
void mrf24j40_set_extended_mac_addr(uint64_t addr)
Store extended MAC address.
void mrf24j40_get_short_mac_addr(uint16_t *addr)
Get short MAC address.
int32_t mrf24j40_get_rxfifo(uint8_t *buf, uint8_t buf_len)
Get message.
int32_t mrf24j40_set_txfifo(const uint8_t *buf, uint8_t buf_len)
Store message.
uint8_t mrf24j40_get_status(void)
Get radio status.