Commit Graph

25 Commits

Author SHA1 Message Date
Phil Rhinehart
2a07dc0e0a This fixes an event handling issue in the cc26xx BLE driver. Currently, the rf_ble_beacon_process triggers the BLE beacon upon receiving any event, rather than verifying that the event timer has expired. This means that any PROCESS_BROADCAST (e.g. any sensor event) will fire the beacon. This commit adds logic to prevent this. 2016-04-18 17:14:37 +08:00
George Oikonomou
d42b1b50e5 Allow the caller to access the entire content of CMDSTA
When sending a command to the CC13xx/CC25xx RF core, we wait for command completion by checking the LSB of CMDSTA (correctly so). However, in doing so we also zero out the 3 CMDSTA return bytes. For some commands, those bytes contain useful information (e.g. an RSSI value) and are required by the caller.

This problem manifests itself e.g. in PROP mode `channel_clear()`, whereby the caller will always see an RSSI value of 0.

This pull therefore fixes the logic in `rf_core_send_cmd()` to check for command completion by blocking on the CMDSTA result byte without zeroing out the 3 return bytes.

Fixes #1465
2016-01-24 13:39:14 +00:00
George Oikonomou
b97a3d1049 Merge pull request #1242 from g-oikonomou/contrib/cc26xx-ieee-volatile-cmd-ieee-tx
Use volatile access for CMD_IEEE_TX
2016-01-09 18:01:40 +00:00
George Oikonomou
3a831cbebf Merge pull request #1322 from g-oikonomou/bugfix/cc26xx/interrupt-flag-management
Clear CC26xx/CC13xx interrupt flags selectively
2016-01-09 18:01:15 +00:00
George Oikonomou
109696174f Merge pull request #1350 from g-oikonomou/bugfix/cc26xx/tx-power
Correctly set new CC26xx TX power when the RFC is powered off
2016-01-09 17:59:24 +00:00
George Oikonomou
fa002c2d73 Merge pull request #1321 from g-oikonomou/bugfix/cc26xx/remove-redundant-reads
Remove redundant function calls in CC13xx/CC26xx RFC code
2016-01-09 17:52:15 +00:00
Benoît Thébaudeau
6166693a11 Merge pull request #1133 from bkozak-scanimetrics/cc-gcc
put gcc specific stuff into seperate .h
2015-12-05 00:39:59 +01:00
George Oikonomou
b4393e861f Only set CC13xx prop mode channel if a new channel is being requested 2015-11-14 01:38:24 +01:00
George Oikonomou
320a753666 Turn CC13xx RF back off after prop TX if it was off to start with 2015-11-14 01:38:24 +01:00
George Oikonomou
e0e20aa3fd Turn off ENERGEST_TYPE_LISTEN in CC13xx prop mode off() 2015-11-14 01:38:24 +01:00
George Oikonomou
a63efe947f Merge pull request #1233 from adamdunkels/pr/26xx-13xx-fixes
CC26xx/CC13xx fixes
2015-11-09 08:33:58 +00:00
George Oikonomou
54648591ee Explicitly send CMD_ABORT in prop mode before powering down 2015-11-01 22:53:35 +00:00
George Oikonomou
f401c7cc60 Save new TX power setting even if the RFC is powered off.
The current logic attempts to send `CMD_SET_TX_POWER` before saving the new power setting. If `CMD_SET_TX_POWER` fails the power setting will not get saved. As a result, when the RFC is powered off, all attempts to change TX power will fail.

This commit changes this logic to always save the new TX setting as requested by the user. If the RFC is powered up, we apply it immediately. If it is powered down, the new setting will automatically be applied next time we send `CMD_RADIO_SETUP`.

Fixes #1340
2015-11-01 20:56:52 +00:00
George Oikonomou
1ee40ef021 Fix the logic that detects whether a command is a Radio OP 2015-11-01 20:48:28 +00:00
George Oikonomou
946b72a58d Mask CMDSTA when waiting for a command to get accepted 2015-11-01 20:46:46 +00:00
George Oikonomou
55b41863d5 Remove redundant function calls in CC26xx RFC code
As discussed in #1279, the current CC13xx/CC26xx rf-core code makes some unnecessary power domain-related reads. This commit removes them.

Closes #1279
2015-10-24 20:54:33 +01:00
George Oikonomou
8636a28248 Clear interrupt flags selectively
As discussed in #1294, every time a CC13xx/CC26xx RF interrupt fires, we clear all interrupt flags unconditionally. This may result in missed events. This patch fixes this bug by clearing only the flag that triggered the interrupt in the first place.

Fixes #1294
2015-10-24 20:51:34 +01:00
Billy Kozak
8e5f0bc36a Defining gcc specific macros in seperate header 2015-09-22 14:17:10 -06:00
Billy Kozak
324d03b53c CC26xx - fully shutdown the rf-core & abort rx op
Prior to this patch, the ieee radio driver did not explicitly abort
the rx operation or power down the analog components of the radio
prior to shutting down the rf-core.

The result of this was that the rf-core continued to use a lot of
power even while "off".

This patch fixes this problem.
2015-09-14 13:18:01 -06:00
George Oikonomou
4ce6d215e8 Use volatile access for CMD_IEEE_TX 2015-09-04 17:59:25 +01:00
Billy Kozak
b71353181d CC26xx - enable correct IRQ in rf_core_cmd_done_en
Fix for #1229

rf_core_cmd_done_en() was enabling the wrong irq for detecting the
completion of foreground operations. This was causing cc26xx devices
to not wake-up on time when calling lpm_sleep() from transmit().
2015-09-02 12:37:33 -06:00
Adam Dunkels
8d2dafbe30 No need to set the same channel again 2015-09-02 12:18:27 +02:00
Adam Dunkels
27e373492d Turn off energest listen in off() 2015-09-02 12:10:44 +02:00
Adam Dunkels
f1c4a5ee08 Turn off radio again after transmitting 2015-09-02 12:10:07 +02:00
Jonas Olsson
01e36532c2 Add support for the CC13xx CPU
This commit:

* Moves all cpu files from cpu/cc26xx to cpu/cc26xx-cc13xx
* Bumps the CC26xxware submodule to the latest TI release
* Adds CC13xxware as a submodule
* Adds support for sub-ghz mode / IEEE 802.15.4g
* Splits the driver into multiple files for clarity. We now have the following structure:
  * A common module that handles access to the RF core, interrupts etc
  * A module that takes care of BLE functionality
  * A netstack radio driver for IEEE mode (2.4GHz)
  * A netstack radio driver for PROP mode (sub-ghz - multiple bands)

This commit also adds tick suppression functionality, applicable to all chips of the CC26xx and CC13xx families. Instead waking up on every clock tick simply to increment our software counter, we now only wake up just in time to service the next scheduled etimer. ContikiMAC-triggered wakeups are unaffected.

Laslty, this commit also applies a number of minor changes:
* Addition of missing includes
* Removal of stub functions
* Removal of a woraround for a CC26xxware bug that has now been fixed
2015-08-23 19:54:42 +01:00