Zoul: TSCH configuration assuming not only cc2538
This commit is contained in:
parent
ddeeb63ddd
commit
64ce406ae4
@ -37,26 +37,11 @@
|
||||
#define RTIMER_ARCH_SECOND 32768
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* 352us from calling transmit() until the SFD byte has been sent */
|
||||
#define RADIO_DELAY_BEFORE_TX ((unsigned)US_TO_RTIMERTICKS(352))
|
||||
#define CC2538_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
|
||||
#ifndef TSCH_CONF_BASE_DRIFT_PPM
|
||||
/* The drift compared to "true" 10ms slots.
|
||||
* Enable adaptive sync to enable compensation for this.
|
||||
* Slot length 10000 usec
|
||||
* 328 ticks
|
||||
* Tick duration 30.517578125 usec
|
||||
* Real slot duration 10009.765625 usec
|
||||
* Target - real duration = -9.765625 usec
|
||||
* TSCH_CONF_BASE_DRIFT_PPM -977
|
||||
*/
|
||||
#define TSCH_CONF_BASE_DRIFT_PPM -977
|
||||
#endif
|
||||
#define CC2538_DELAY_BEFORE_RX ((unsigned)US_TO_RTIMERTICKS(250))
|
||||
#define CC2538_DELAY_BEFORE_DETECT 0
|
||||
|
||||
#if MAC_CONF_WITH_TSCH
|
||||
#define TSCH_CONF_HW_FRAME_FILTERING 0
|
||||
#endif /* MAC_CONF_WITH_TSCH */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define SPI_CONF_CONTROLLER_COUNT 2
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
@ -55,6 +55,47 @@
|
||||
#endif /* PROJECT_CONF_PATH */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#include "cc2538-def.h"
|
||||
|
||||
unsigned radio_phy_overhead(void);
|
||||
unsigned radio_byte_air_time(void);
|
||||
unsigned radio_delay_before_tx(void);
|
||||
unsigned radio_delay_before_rx(void);
|
||||
unsigned radio_delay_before_detect(void);
|
||||
uint16_t *radio_tsch_timeslot_timing(void);
|
||||
|
||||
/** @} */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* 352us from calling transmit() until the SFD byte has been sent */
|
||||
#define CC2538_DELAY_BEFORE_TX ((unsigned)US_TO_RTIMERTICKS(352))
|
||||
/* 192us as in datasheet but ACKs are not always received, so adjusted to 250us */
|
||||
#define CC2538_DELAY_BEFORE_RX ((unsigned)US_TO_RTIMERTICKS(250))
|
||||
#define CC2538_DELAY_BEFORE_DETECT 0
|
||||
|
||||
#define RADIO_PHY_OVERHEAD radio_phy_overhead()
|
||||
#define RADIO_BYTE_AIR_TIME radio_byte_air_time()
|
||||
#define RADIO_DELAY_BEFORE_TX radio_delay_before_tx()
|
||||
#define RADIO_DELAY_BEFORE_RX radio_delay_before_rx()
|
||||
#define RADIO_DELAY_BEFORE_DETECT radio_delay_before_detect()
|
||||
|
||||
#define TSCH_CONF_DEFAULT_TIMESLOT_TIMING radio_tsch_timeslot_timing()
|
||||
|
||||
#ifndef TSCH_CONF_BASE_DRIFT_PPM
|
||||
/* The drift compared to "true" 10ms slots.
|
||||
* Enable adaptive sync to enable compensation for this.
|
||||
* Slot length 10000 usec
|
||||
* 328 ticks
|
||||
* Tick duration 30.517578125 usec
|
||||
* Real slot duration 10009.765625 usec
|
||||
* Target - real duration = -9.765625 usec
|
||||
* TSCH_CONF_BASE_DRIFT_PPM -977
|
||||
*/
|
||||
#define TSCH_CONF_BASE_DRIFT_PPM -977
|
||||
#endif
|
||||
|
||||
#if MAC_CONF_WITH_TSCH
|
||||
#define TSCH_CONF_HW_FRAME_FILTERING 0
|
||||
#endif /* MAC_CONF_WITH_TSCH */
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/**
|
||||
* \name Serial Boot Loader Backdoor configuration
|
||||
|
@ -257,6 +257,48 @@ platform_idle()
|
||||
lpm_enter();
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
unsigned
|
||||
radio_phy_overhead(void) {
|
||||
radio_value_t ret;
|
||||
NETSTACK_RADIO.get_value(RADIO_CONST_PHY_OVERHEAD, &ret);
|
||||
return (unsigned)ret;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
unsigned
|
||||
radio_byte_air_time(void) {
|
||||
radio_value_t ret;
|
||||
NETSTACK_RADIO.get_value(RADIO_CONST_BYTE_AIR_TIME, &ret);
|
||||
return (unsigned)ret;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
unsigned
|
||||
radio_delay_before_tx(void) {
|
||||
radio_value_t ret;
|
||||
NETSTACK_RADIO.get_value(RADIO_CONST_DELAY_BEFORE_TX, &ret);
|
||||
return (unsigned)ret;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
unsigned
|
||||
radio_delay_before_rx(void) {
|
||||
radio_value_t ret;
|
||||
NETSTACK_RADIO.get_value(RADIO_CONST_DELAY_BEFORE_RX, &ret);
|
||||
return (unsigned)ret;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
unsigned
|
||||
radio_delay_before_detect(void) {
|
||||
radio_value_t ret;
|
||||
NETSTACK_RADIO.get_value(RADIO_CONST_DELAY_BEFORE_DETECT, &ret);
|
||||
return (unsigned)ret;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
uint16_t *
|
||||
radio_tsch_timeslot_timing(void) {
|
||||
uint16_t *ret;
|
||||
NETSTACK_RADIO.get_object(RADIO_CONST_TSCH_TIMING, &ret, sizeof(ret));
|
||||
return ret;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
|
Loading…
Reference in New Issue
Block a user