Commit Graph

12210 Commits

Author SHA1 Message Date
George Oikonomou
16f56abfad Wait for a valid RSSI reading in CC13xx/CC26xx RF drivers
As discussed in #1341, the current CC13xx/CC26xx IEEE mode driver sends `CMD_GET_RSSI` once and returns the RSSI reading uncondtionally. This happens within the `get_rssi()` function.

This logic is broken if `get_rssi()` is called with the radio off. The function will make sure to turn on the radio first, but it does not make sure the RSSI reading is valid, which only happens a number of symbol periods after the radio enters RX. The outcome is that `NETSTACK_RADIO.get_value(RADIO_PARAM_RSSI, ...)` will always return -128 (meaning that RSSI is unavailable) if the radio was off at the time of calling the function.

The same condition affects the prop mode driver.

This commit changes the logic of `get_rssi()`:
* For PROP mode, if `CMD_GET_RSSI` returns an invalid RSSI, we send it again. For unknown reasons, `CMD_GET_RSSI` on occasion returns 0, so we ignore that value too.
* For IEEE mode, we use `CMD_IEEE_CCA_REQ` and we inspect the value of `ccaInfo.ccaEnergy` of the return structure. If the value is 0x02 (Invalid), we send the command again.

Fixes #1341
2016-07-17 18:20:22 +01:00
George Oikonomou
94413f99fe Shrink ND cache and routing table for the CC26xx web demo 2016-07-17 01:31:21 +01:00
George Oikonomou
e7c5c36090 Change CCxxware submodule URLs
We now host both CCxxware repos under contiki-os, so we change the submodule URLs accordingly.
2016-07-17 00:26:52 +01:00
George Oikonomou
eec890d60e Update CC26xxware to v2.24.02.17202 2016-07-17 00:26:52 +01:00
George Oikonomou
fd82603786 Update CC13xxware to v2.04.02.17240 2016-07-17 00:26:52 +01:00
George Oikonomou
dc1f9fe010 Simplify MODESEL value determination 2016-07-17 00:26:52 +01:00
George Oikonomou
9839b91be5 Enable the ROM bootloader in our examples 2016-07-17 00:26:52 +01:00
George Oikonomou
4495d14702 Make ROM bootloader configurable through contiki- or project-conf.h 2016-07-17 00:26:52 +01:00
George Oikonomou
01590088d3 Update to latest CCxxwares: Srf06+EM drivers 2016-07-17 00:26:52 +01:00
George Oikonomou
f6437b6086 Update to latest CCxxwares: Sensortag drivers 2016-07-17 00:26:52 +01:00
George Oikonomou
5de7b1bbac Update to latest CCxxwares: Launchpad drivers 2016-07-17 00:26:51 +01:00
George Oikonomou
c42cb2b0cb Update to latest CCxxwares: common drivers 2016-07-17 00:26:51 +01:00
George Oikonomou
ccba6bdb20 Update cpu files to reflect API in latest CCxxware versions 2016-07-17 00:26:51 +01:00
George Oikonomou
0e4c02bf3b Update ChipInfo and OSC macros 2016-07-17 00:25:18 +01:00
George Oikonomou
f68b77fdfa Remove ROM AUX timer macros
They have been undefined in CCxxwares
2016-07-17 00:25:17 +01:00
George Oikonomou
171fe8d08e Adjust GPIO macros to reflect API in latest CCxxware 2016-07-17 00:25:17 +01:00
George Oikonomou
788cb1e119 Move ROM function macros to separate file 2016-07-17 00:25:17 +01:00
George Oikonomou
568973f6ec Don't flush the CC2538 RF RX FIFO unconditionally
After reading a frame, `read()` checks the status of the RX FIFO:

* If an overflow is detected, the FIFO gets flushed
* If there are more frames in the FIFO, the `cc2538_rf_process` will get polled again in order to read out the next frame.

#1550 changed `read()`, which now performs the above check for non-poll mode, but it then flushes the FIFO unconditionally. Therefore, if there are two or more frames in the FIFO, they will get flushed before the `cc2538_rf_process` has had a chance to read them out. This results in missed frames.

Reproducing this is trivial: Build a CC2538 sniffer and see how it will never show you .15.4 ACK frames. ACK reception completes while `read()` is still streaming the previous captured frame to the host. Upon completion, the FIFO will get flushed and the ACK will get lost.

This pull proposes removing the unconditional flush and reverting to the original logic for non-TSCH operation.

Pinging @thomas-ha here for input regarding poll mode.

This pull sits on top of #1778
2016-07-17 00:24:47 +01:00
Benoît Thébaudeau
c05665a16b Merge pull request #1778 from g-oikonomou/contrib/cc2538/rf-driver-code-style
Improve code style of the CC2538 RF driver
2016-07-17 01:22:21 +02:00
George Oikonomou
c87e579b06 Adjust ContikiMAC timings for CC13xx PROP mode
#1684 slightly varied RF startup time and, as a result, threw ContikiMAC timing configuration off. This manifests itself with very poor CC13xx PROP mode radio performance, as documented in #1747.

This pull fixes this bug by slightly increasing ContikiMAC's inter-packet interval. This gives the receiver a little more time to respond with an ACK to unicast frames.

Fixes #1747
2016-07-17 00:04:07 +01:00
George Oikonomou
dcad5e7e3f Merge pull request #1727 from g-oikonomou/contrib/cc26xx/trng
Add CC13xx/CC26xx TRNG Support
2016-07-16 23:34:53 +01:00
George Oikonomou
7fdb9849de Remove unnecessary parentheses 2016-07-16 22:35:23 +01:00
George Oikonomou
f1c37b309a Merge pull request #1779 from atiselsts/bugfix/cc26xx/rf_poll_mode
CC26xx: enable MCU sleeping while transmitting if and only if not in poll mode
2016-07-16 20:02:43 +01:00
George Oikonomou
fe571c7dc3 Merge pull request #1754 from atiselsts/enhancement/cc26xx_reduced_guard_time
CC26xx: change default TSCH guard time to 1.8ms
2016-07-16 19:47:16 +01:00
George Oikonomou
f1637ba74d Merge pull request #1781 from atiselsts/bugfix/tsch/delayed_detection
TSCH: add RADIO_DELAY_BEFORE_DETECT to rx guard time when waiting for a packet to be received
2016-07-16 19:46:09 +01:00
Atis Elsts
2fe4b4d5bb CC26xx: enable MCU sleeping while transmitting if and only if not in poll mode 2016-07-16 18:22:20 +01:00
Atis Elsts
081ec100a4 TSCH: add RADIO_DELAY_BEFORE_DETECT to rx guard time when waiting for a packet to be received 2016-07-16 18:08:41 +01:00
George Oikonomou
c359e98bf1 Change mac_timer_init() to static
We also move the function to a different location so we won't have to provide the prototype separately
2016-07-16 17:11:58 +01:00
George Oikonomou
6ef9509dfb Change get_sfd_timestamp() to static
We also move the function to a different location so we won't have to provide the prototype separately
2016-07-16 17:11:57 +01:00
George Oikonomou
833dc89f7c Fix code style 2016-07-16 17:11:57 +01:00
George Oikonomou
0313f9abf1 Merge pull request #1751 from atiselsts/bugfix/cc26xx_etimer_sleep
CC26xx: fix a regression in and refactor LPM code
2016-07-16 14:45:56 +01:00
Nicolas Tsiftes
8a5886dfa1 Merge pull request #1767 from simonduq/pr/missing-return
RPL: added missing return, to not join instances with unsupported MOP
2016-07-15 21:10:57 +02:00
Nicolas Tsiftes
afa8125913 Merge pull request #1777 from herjulf/master
Fix README.md not reference GPL
2016-07-15 20:30:06 +02:00
Antonio Lignan
0d0e726b38 Merge pull request #1764 from alignan/pull/zoul-dht22
Added DHT22 sensor to Zoul-based platforms
2016-07-15 12:50:34 -05:00
Robert Olsson
fbf3daa564 Fix README.md not reference GPL 2016-07-15 17:44:20 +02:00
George Oikonomou
d36c8762c1 Merge pull request #1776 from herjulf/master
Removed unused file platform/avr-rss2/dev/ds18b20.c
2016-07-15 15:51:51 +01:00
Robert Olsson
a8aa778b31 Removed unused file platform/avr-rss2/dev/ds18b20.c 2016-07-15 13:17:40 +02:00
Joakim Nohlgård
f16f5b5241 squash clean up left overs 2016-07-09 10:39:23 +02:00
Joakim Nohlgård
6b238873ef squash move rest-engine timers to activate timer 2016-07-09 10:34:23 +02:00
Marko Gucanin
1fc9bbe315 added { } 2016-07-08 16:25:34 +02:00
Joakim Nohlgård
e7070a5f79 rest-engine: Allow adding periodic resources after starting REST engine
Without this fix, any periodic resources added after the REST engine was
already running were never started.
2016-07-06 19:18:34 +02:00
Marko Gucanin
1a1d17143b return from exception handler if E_EXC_SYSCALL is generated 2016-07-06 16:28:47 +02:00
Marko Gucanin
74d04562df Revert "removed exception handler for SYSCALL, causing an infinite loop after calling vAHI_SwReset()"
This reverts commit c4def60cdd.
2016-07-06 15:45:15 +02:00
Oliver Schmidt
98a795b967 Merge pull request #1730 from groessler/something_to_pull
Some 6502 target changes
2016-07-06 09:17:39 +02:00
Simon Duquennoy
80b9bfea93 Merge pull request #1723 from gebart/pr/ieee802154-addr-mode-bugfix
core/net/mac/frame802154: Fix typo in PAN ID compression condition
2016-07-05 18:10:21 +02:00
Marko Gucanin
c4def60cdd removed exception handler for SYSCALL, causing an infinite loop after calling vAHI_SwReset() 2016-07-05 16:44:24 +02:00
Simon Duquennoy
4ceaaba4bd RPL: added missing return, to not join instances with unsupported MOP 2016-07-05 12:13:46 +02:00
Christian Groessler
4373aecec2 Tag non-file goals as ".PHONY" 2016-07-05 00:47:52 +02:00
Joakim Nohlgård
6f8306a465 core/net/mac/frame802154: Fix typo in PAN ID compression condition 2016-07-04 18:18:55 +02:00
Antonio Lignan
d5e2a779d4 Added DHT22 sensor to Zoul-based platforms 2016-07-04 18:00:09 +02:00