Commit graph

12314 commits

Author SHA1 Message Date
Simon Duquennoy f23c59644c Merge pull request #1721 from sumanpanchal/openmote-tsch
TSCH port for CC2538 based platforms.
2016-07-22 16:56:43 +02:00
Sumankumar Panchal 6dfd358821 TSCH port for CC2538 based platforms. 2016-07-22 09:38:25 +05:30
Kitty(chun hua) Jiang b5bc140680 Update comments: RFC3513 is obsoleted by RFC4921 2016-07-18 17:29:16 +08:00
George Oikonomou 2039b3a552 Use ccaInfo.ccaState to decide whether CCA is complete
This commit changes the logic of `get_cca_info()` in the CC26xx IEEE mode driver. We now use the command's return status bits to determine whether the radio's CCA monitoring function has concluded, instead of drawing conclusions based on RSSI readings.
2016-07-17 20:19:13 +01:00
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