drivers/at86rf215: make reset pulse width configurable

Some hardware designers like to include filtering capacitors into reset
lines in order to protect against ESD or other pulses.

This increases the raise time of the reset signal. To still reach the
required 16 µs reset pulse width, we thus have to increase the reset pulse
width via board config.
This commit is contained in:
Benjamin Valentin 2020-06-11 15:05:21 +02:00
parent 499ffd6339
commit 14bb15d91f
3 changed files with 16 additions and 2 deletions

View File

@ -38,6 +38,17 @@ config AT86RF215_TRIM_VAL
26 MHz the best.
For more information Refer Table 6-25 TRIM in Datasheet
config AT86RF215_RESET_PULSE_WIDTH_US
int "Width of the reset pulse (µs)"
range 16 1000
default 16
help
If your board design includes a filtering capacitor on the reset line, this raises
the rise time of the reset pulse.
To accommodate for this, select a larger reset pulse width here.
If unsure, leave this at the default value of 16 µs.
choice
prompt "Default Modulation"

View File

@ -49,7 +49,7 @@ int at86rf215_hardware_reset(at86rf215_t *dev)
/* trigger hardware reset */
gpio_clear(dev->params.reset_pin);
xtimer_usleep(AT86RF215_RESET_PULSE_WIDTH_US);
xtimer_usleep(CONFIG_AT86RF215_RESET_PULSE_WIDTH_US);
gpio_set(dev->params.reset_pin);
xtimer_usleep(AT86RF215_RESET_DELAY_US);

View File

@ -22,6 +22,7 @@
#include <stdint.h>
#include "at86rf215.h"
#include "at86rf215_registers.h"
#include "board.h"
#ifdef __cplusplus
extern "C" {
@ -30,7 +31,9 @@ extern "C" {
/**
* @brief Minimum reset pulse width (tRST) in µs
*/
#define AT86RF215_RESET_PULSE_WIDTH_US (16U)
#ifndef CONFIG_AT86RF215_RESET_PULSE_WIDTH_US
#define CONFIG_AT86RF215_RESET_PULSE_WIDTH_US (16U)
#endif
/**
* @brief The typical transition time to TRX_OFF after reset (tPOWERON) in µs