Closed
Conversation
Member
Author
|
@roberthartung might be interested on this one |
This commit removes the SLEEP state and adds a dedicated function for turning the radio on and off. The motivation for removing the SLEEP state is to simplify the state machine of `at86rf2xx_set_state`
Member
Author
|
I forgot to fix the TX_DONE event here. In Basic Mode, it's not necessary to read the TRX_STATUS register |
This change defines PHY states for the radio. Although the internal states differ between Basic Mode and Extended Mode operation, they have an equivalent in PHY states (e.g RX_AACK_ON is equivalent to RX_ON). With this it will be easier to implement Basic Mode support for this radio
Due to the design of netdev, it's more convenient to use static buffer protection instead of dynamic. As soon as the frame buffer is accessed, the SFD detection is disabled until the whole recv procedure finished (dropping or fetching from FB). This way it's not necessary to switch to PLL_ON mode on reception.
The current driver SPI polls the states of the transceiver. This doesn't prevent race conditions to happen, since these states are very volatile. With this change the PHY states of the transceiver are represented with the `dev->state` variable, which syncs to the device via interrupts. Now it's possible to safely check if the device is busy without chances of race conditions.
This adds support for Basic Mode operation (no auto-ack, no auto-retrans with CSMA). A new configuration flag is added for setting the default operation mode. However, the device can switch between modes on runtime (see `AT86RF2XX_OPT_EXT_MODE` option)
0e97caf to
b8947b7
Compare
Member
|
@jia200x Certainly interested, but currently (This and next week) out of capacity. |
Contributor
|
@jia200x is this still wip? Can you give it a rebase? |
Member
Author
|
@fjmolinas I will close this one for now. We would eventually get the basic mode for free with the SubMAC + radio HAL. I will re-open if needed |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contribution description
This adds support for Basic Mode operation (no auto-ack, no
auto-retrans with CSMA).
A new configuration flag is added for setting the default
operation mode. However, the device can switch between modes
on runtime (see
AT86RF2XX_OPT_EXT_MODEoption).By default, the device is set to Extended Operation.
Testing procedure
Test with a couple of nodes. Set one to extended mode and the other one to basic:
E.g
and
Send packets from BASIC->EXTENDED. You should see an ACK packet (8 bytes with netif_hdr) in the BASIC node:
Send from EXTENDED->BASIC. You should see the retransmission packets on BASIC:
Issues/PRs references
Depends on #12069
Partially addresses #8213