Merge pull request #1715 from sumanpanchal/zoul-tsch
TSCH port for Zolertia ReMote/Zoul.
This commit is contained in:
commit
4fd8f67053
@ -37,6 +37,7 @@ It has been tested on the following platforms:
|
||||
* Tmote Sky (`sky`, tested on hardware and in cooja)
|
||||
* Zolertia Z1 (`z1`, tested in cooja only)
|
||||
* CC2538DK (`cc2538dk`, tested on hardware)
|
||||
* Zolertia Zoul (`zoul`, tested on hardware)
|
||||
|
||||
This implementation was present at the ETSI Plugtest
|
||||
event in Prague in July 2015, and did successfully inter-operate with all
|
||||
@ -77,7 +78,7 @@ Orchestra is implemented in:
|
||||
|
||||
A simple TSCH+RPL example is included under `examples/ipv6/rpl-tsch`.
|
||||
To use TSCH, first make sure your platform supports it.
|
||||
Currently, `jn516x`, `sky`, `z1` and `cc2538dk` are the supported platforms.
|
||||
Currently, `jn516x`, `sky`, `z1`, `cc2538dk` and `zoul` are the supported platforms.
|
||||
To add your own, we refer the reader to the next section.
|
||||
|
||||
To add TSCH to your application, first include the TSCH module from your makefile with:
|
||||
@ -163,7 +164,7 @@ Finally, one can also implement his own scheduler, centralized or distributed, b
|
||||
## Porting TSCH to a new platform
|
||||
|
||||
Porting TSCH to a new platform requires a few new features in the radio driver, a number of timing-related configuration paramters.
|
||||
The easiest is probably to start from one of the existing port: `jn516x`, `sky`, `z1`, `cc2538dk`.
|
||||
The easiest is probably to start from one of the existing port: `jn516x`, `sky`, `z1`, `cc2538dk`, `zoul`.
|
||||
|
||||
### Radio features required for TSCH
|
||||
|
||||
|
@ -89,7 +89,7 @@ print_network_status(void)
|
||||
default_route = uip_ds6_defrt_lookup(uip_ds6_defrt_choose());
|
||||
if(default_route != NULL) {
|
||||
PRINTA("-- ");
|
||||
uip_debug_ipaddr_print(&default_route->ipaddr);;
|
||||
uip_debug_ipaddr_print(&default_route->ipaddr);
|
||||
PRINTA(" (lifetime: %lu seconds)\n", (unsigned long)default_route->lifetime.interval);
|
||||
} else {
|
||||
PRINTA("-- None\n");
|
||||
@ -142,8 +142,15 @@ PROCESS_THREAD(node_process, ev, data)
|
||||
static enum { role_6ln, role_6dr, role_6dr_sec } node_role;
|
||||
node_role = role_6ln;
|
||||
|
||||
/* Set node with ID == 1 as coordinator, convenient in Cooja. */
|
||||
if(node_id == 1) {
|
||||
/* Set node with MAC address c1:0c:00:00:00:00:01 as coordinator,
|
||||
* convenient in cooja for regression tests using z1 nodes
|
||||
* */
|
||||
|
||||
#ifdef CONTIKI_TARGET_Z1
|
||||
extern unsigned char node_mac[8];
|
||||
unsigned char coordinator_mac[8] = { 0xc1, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 };
|
||||
|
||||
if(memcmp(node_mac, coordinator_mac, 8) == 0) {
|
||||
if(LLSEC802154_ENABLED) {
|
||||
node_role = role_6dr_sec;
|
||||
} else {
|
||||
@ -152,6 +159,7 @@ PROCESS_THREAD(node_process, ev, data)
|
||||
} else {
|
||||
node_role = role_6ln;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_VIA_BUTTON
|
||||
{
|
||||
|
@ -77,6 +77,14 @@ typedef uint32_t rtimer_clock_t;
|
||||
#define RTIMER_CLOCK_DIFF(a, b) ((int32_t)((a) - (b)))
|
||||
/** @} */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define TSCH_CONF_HW_FRAME_FILTERING 0
|
||||
|
||||
/* 352us from calling transmit() until the SFD byte has been sent */
|
||||
#define RADIO_DELAY_BEFORE_TX ((unsigned)US_TO_RTIMERTICKS(352))
|
||||
/* 192us as in datasheet but ACKs are not always received, so adjusted to 250us */
|
||||
#define RADIO_DELAY_BEFORE_RX ((unsigned)US_TO_RTIMERTICKS(250))
|
||||
#define RADIO_DELAY_BEFORE_DETECT 0
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/**
|
||||
* \name Serial Boot Loader Backdoor configuration
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user