1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

164 Commits

Author SHA1 Message Date
José Alamos
9c130cd2fd
Merge pull request #15032 from jia200x/pr/at86rf2xx/fix_overflow
drivers/at86rf2xx: fix at86rf2xx_set_rxsensitivity
2020-09-17 10:32:06 +02:00
Jose Alamos
074dc8d328 drivers/at86rf2xx: fix at86rf2xx_set_rxsensitivity 2020-09-16 14:47:51 +02:00
Hauke Petersen
020642476e driver/at86rf2xx: fix asserts in _set func 2020-09-15 13:57:15 +02:00
fdaf7fd822
Merge pull request #14596 from benpicco/drivers/at86rf2xx-retries
drivers/at86rf2xx: support frame retry reporting on AT86RFR2
2020-09-09 10:27:05 +02:00
Benjamin Valentin
0871b69c84 drivers/at86rf2xx: support frame retry reporting on at86rfr2
At86rfr2 doesn't report retries directly, but it can generate a TX start
interrupt for each (re)try, so we can count manually.
2020-09-08 14:48:57 +02:00
Francisco
6f84870c26
Merge pull request #14634 from benpicco/eui_provider
net/link_layer: implement EUI provider
2020-09-01 16:26:08 +02:00
Benjamin Valentin
f714fac3f4 drivers/at86rf2xx: make use of EUI provider 2020-08-30 23:43:57 +02:00
Benjamin Valentin
2aa2bf86a3 drivers/at86rf2xx: AES: don't use binary constant
This is a GCC extension. Use hex constant instead.
2020-08-25 14:06:40 +02:00
Marian Buschsieweke
7b743cda13
drivers/at86rf2xx: Fix address generation
Do not generate address during reset, but during setup. Otherwise the device
will get a new address after every reset. Also: Use common IEEE 802.15.4
setup function for this.
2020-08-23 21:09:21 +02:00
Benjamin Valentin
0f4c5f5b10 drivers/at86rf2xx: fix assert
The assert is reversed. It must check if the config value does not
exceed the maximum address length, not the other way round.

previously this would lead to a crash when setting a short address:

2020-08-23 13:59:56,080 #  ifconfig 7 set addr_short 2
2020-08-23 13:59:56,081 # 0xdcad
2020-08-23 13:59:56,083 # *** RIOT kernel panic:
2020-08-23 13:59:56,085 # FAILED ASSERTION.

With this it works as expected

2020-08-23 14:05:07,988 #  ifconfig 7 set addr_short 2
2020-08-23 14:05:07,992 # success: set (short) address on interface 7 to 2
2020-08-23 14:05:52 +02:00
Benjamin Valentin
53eedc283b drivers/at86rf2xx: register driver with netdev 2020-08-17 22:53:51 +02:00
fabian18
1fca10c486 drivers/at86rf2xx: SPI AES security module 2020-08-12 17:18:00 +02:00
304bce3724
drivers: configure per driver dependency resolution 2020-07-20 14:32:16 +02:00
490126cfa0
drivers: move USEMODULE_INCLUDES in each driver directories 2020-07-15 20:36:27 +02:00
Benjamin Valentin
ac040c6baf drivers/at86rf2xx: add support for high data rates
AT86RF2xx supports high data rates in O-QPSK mode.
This is a proprietary feature, so data rates > 0 are only supported by
other AT86RF2xx devices.

 high_rate 0:   250 kbit/s (IEEE mode)
 high_rate 1:   500 kbit/s
 high_rate 2:  1000 kbit/s (compatible with at86rf215)
 high_rate 3:  2000 kbit/s
2020-05-09 01:24:08 +02:00
Jose Alamos
ab5418ebab at86rf2xx: report CRC error in basic mode 2020-04-08 19:14:45 +02:00
Jose Alamos
d4b0aff8cf at86rf2xx: implement basic mode 2020-04-08 19:14:45 +02:00
Jose Alamos
3ad574a822 drivers/netdev: use netdev_trigger_event_isr function 2020-03-06 14:03:43 +01:00
benpicco
6f97012237
Merge pull request #13356 from benemorius/pr/at86reset
drivers/at86rf2xx: reset hardware before reading any register
2020-02-16 20:42:41 +01:00
Thomas Stilwell
751b0332da drivers/at86rf2xx: reset hardware before reading version register 2020-02-13 21:33:22 -06:00
Benjamin Valentin
63f6d6aa13 drivers/at86rf2xx: use luid_get_eui64() / luid_get_short()
Use dedicated helper functions to generate long and short address.

Maybe fixes #13358
2020-02-13 11:17:11 +01:00
benpicco
16ab89bf28
Merge pull request #12728 from bergzand/pr/at86rf2xx/fix_recv_before_send
at86rf2xx: fix receive before send detection
2020-02-07 13:54:52 +01:00
42d54600f7
at86rf2xx: fix receive before send detection
The at86rf2xx radio handled a transfer complete condition with the radio
in the BUSY_TX_ARET state as a finished transmission. This condition and
state also occurs when a reception occurs just before switching to
transmitting. This would cause a condition where first a TX_COMPLETE was
signalled and second a RX_COMPLETE was signalled. The network stack
would then read the transmitted frame as a received frame.

The patch fixes the errornous RX callback by only submitting the
TX_COMPLETE condition when there are at least 2 frames pending
(at86rf2xx::pending_tx).
2020-02-07 13:08:33 +01:00
Marian Buschsieweke
3264106a2f
Merge pull request #12704 from benpicco/AT86RFR2_smart_idle
drivers/at86rf2xx: enable Smart Reduced Power Consumption for AT86RFR2
2019-11-25 11:57:44 +01:00
benpicco
ce1f383f90
Merge pull request #12606 from maribu/at86rf2xx-addr-endianess
drivers/at86rf2xx: Updated address API
2019-11-24 16:33:16 +01:00
Marian Buschsieweke
f0317c50f2
drivers/at86rf2xx: Updated address API
Changed the address getter and setter functions to avoid byte order
confusion.
2019-11-23 19:40:09 +01:00
Marian Buschsieweke
4347f720f5
drivers/at86rf2xx: Update to new ATmega API
Replace __enter_isr() with atmega_enter_isr() and __exit_isr() with
atmega_exit_isr()
2019-11-23 12:27:13 +01:00
5eb5c3c42c
at86rf2xx: split out isr transmit complete handling 2019-11-16 22:26:58 +01:00
Benjamin Valentin
528cb27395 drivers/at86rf2xx: enable Smart Reduced Power Consumption for AT86RFR2
"Smart Reduced Power Consumption Techniques" [0] are supported by AT86RF233,
ATmega2564/1284/644RFR2 and ATmega256/128/64RFR2 devices.

Functionality is the same as on AT86RF233, so we can just enable it.

[0] http://ww1.microchip.com/downloads/en/Appnotes/Atmel-42356-Smart-Reduced-Power-Consumption-Techniques_ApplicationNote_AT02594.pdf
2019-11-13 23:35:40 +01:00
Benjamin Valentin
8f1eaae353 drivers/at86rf2xx: add support for ATmegaRF MCUs
The ATmega128RFA1 and ATmega256RFR2 contain a version of this IP
on the MCU.

The radio core behaves mostly like a at86rf231, but all registers
are mapped to memory and radio states can directly generate interrupts
on the CPU.

The ATmega256RFR2 adds support for automatic retransmissions.
This has not been implemented yet.

Co-authored-by: Josua Arndt <jarndt@ias.rwth-aachen.de>
2019-10-26 23:10:18 +02:00
fabian18
2edf153cf8 drivers/at86rf2xx: do not hang on no dev 2019-09-02 10:27:24 +02:00
Benjamin Valentin
9d6d93ef2f drivers: make use of ARRAY_SIZE macro 2019-08-06 19:43:54 +02:00
Martine Lenders
6611be5140 at86rf2xx: don't call tx_load when iol->iol_len == 0 2019-03-15 15:34:38 +01:00
smlng
6183d5f5c5 netdev: remove layer2 netstats from netdev drivers
Removing usage of netdev->stats in all net drivers, as it is
handled by gnrc_netif.
2019-02-01 11:25:27 +02:00
Kees Bakker
c82f9759a8 drivers/at86rf2xx: do normal assignment instead of memcpy 2019-01-10 19:43:43 +01:00
Sebastian Meiling
4eaf1d8135
Merge pull request #10384 from bergzand/pr/netdev/ref_nid
netdev_ieee802154/radios: refactor PAN ID reset to generic ieee802154 reset
2018-11-28 12:15:45 +01:00
357eed551d
at86rf2xx: Remove netdev access from set_pan
This write access is only required when a modification to the PAN ID
happened directly via this function and not via a netdev::set operation.
The only direct call was done in the reset function of the driver
2018-11-28 11:31:03 +01:00
6306308ef5
at86rf2xx: Remove PAN ID initialization from reset 2018-11-28 11:31:02 +01:00
Martine Lenders
eaabd47dd8
Merge pull request #10275 from gebart/at86rf2xx/ed-overhaul
at86rf2xx: refactor received frame ED processing
2018-11-22 14:20:05 +01:00
josar
8e7c6cc26a at86rf2xx/at86rf2xx_netdev: improve documentation.
It was not obvious where `dev->idle_state` was saved.
2018-11-16 18:53:36 +01:00
Joakim Nohlgård
23738008a7 at86rf2xx: refactor received frame ED processing
The value at the end of the frame buffer is the ED value, same as
PHY_ED_LEVEL, which is given in dB offset from RSSI_BASE.
2018-10-27 01:45:01 +02:00
Josarn
d1261a7ef0 at86rf2xx: correct framebuffer release
This PR sets the tranceiver in PLL_ON state to avoid corruption of the
data in the frame buffer and sets it back to the last state which the
 transceiver had before changing into transmit mode after the data is
read out. This is done to avoid data corruption when `_recv(...)` is
called to retrieve the buffer size and frame buffer protection is released.
2018-10-26 19:16:34 +02:00
c3da55b015
at86rf2xx: Re-enable ack requests by default
Properly splitting the flags between netdev_ieee802154 and the at86rf2xx
driver had as side effect that the ACK REQ flag was no longer set by
default. This commit reverts the default settings by enabling it again
on startup. The current code calls the generic netdev setter to set the
flag.
2018-10-25 12:17:02 +02:00
Peter Kietzmann
f5379c05a3
Merge pull request #8971 from Hyungsin/forupstream_smart_idle_listening
drivers/at86rf2xx: add smart idle listening feature
2018-10-23 19:34:21 +02:00
Semjon Kerner
5b0152f4f7 drivers/netdev_ieee802154: drop NETOPT_MAX_PKT_SIZE 2018-10-16 13:28:03 +02:00
Francisco Acosta
861fbe9a11
Merge pull request #9510 from Josar/pr/at86rf2xx_rssi
at86rf2xx: correct rssi
2018-08-20 14:52:06 +02:00
7425ac92aa
Merge pull request #9581 from bergzand/pr/at86rf2xx/flag_refactor
at86rf2xx: Move flags from netdev to radio
2018-08-17 10:51:23 +02:00
Hyungsin
e0d3f5b552 drivers/at86rf2xx: add smart idle listening feature 2018-08-06 13:56:42 -07:00
Peter Kietzmann
e897826cc7
Merge pull request #9616 from bergzand/pr/at86rf2xx/always_set_channel
at86rf2xx: Always set channel on device
2018-07-31 18:33:44 +02:00
Josarn
4482c9851a at86rf2xx: correct rssi
AT86RF231 MAN. p.89 8.3.2 Reading RSSI
AT86RF232 MAN. p.88 8.3.2 Reading RSSI
AT86RF233 MAN. p.99 8.4.2 Reading RSSI

"It is not recommended reading the RSSI value when using the Extended  Operating Modes, use ED instead"
2018-07-26 13:37:23 +02:00