1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/include
Marian Buschsieweke 972367432a
drivers/cc110x: Rewrite of the cc110x driver
The cc110x driver has been re-written from scratch to overcome the limitations
of the old driver. The main motivation of the rewrite was to achieve better
maintainability by a detailed documentation, reduce the complexity and the
overhead of the SPI communication with the device, and to allow to
simultaneously use transceivers with different configuration regarding the used
base band, the channel bandwidth, the modulation rate, and the channel map.

Features of this driver include:

- Support for the CC1100, CC1101, and the CC1100e sub-gigahertz transceivers.
- Detailed documentation of every aspect of this driver.
- An easy to use configuration API that allows setting the transceiver
  configuration (modulation rate, channel bandwidth, base frequency) and the
  channel map.
- Fast channel hopping by pre-calibration of the channels during device
  configuration (so that no calibration is needed during hopping).
- Simplified SPI communication: Only during start-up the MCU has to wait
  for the transceiver to be ready (for the power regulators and the crystal
  to stabilize). The old driver did this for every SPI transfer, which
  resulted in complex communication code. This driver will wait on start up
  for the transceiver to power up and then use RIOT's SPI API like every other
  driver. (Not only the data sheet states that this is fine, it also proved to
  be reliable in practise.)
- Greatly reduced latency: The RTT on the old driver (@150 kbps data rate) was
  about 16ms, the new driver (@250 kbps data rate) has as RTT of ~3ms
  (depending on SPI clock and on CPU performance) (measured with ping6).
- Increased reliability: The preamble size and the sync word size have been
  doubled compared to the old driver (preamble: 8 bytes instead of 4,
  sync word: 4 byte instead of 2). The new values are the once recommended by
  the data sheet for reliable communication.
- Basic diagnostic during driver initialization to detect common issues as
  SPI communication issues and GDO pin configuration/wiring issues.
- TX power configuration with netdev_driver_t::set() API-integration
- Calls to netdev_driver_t::send() block until the transmission has completed
  to ease the use of the API (implemented without busy waiting, so that the
  MCU can enter lower power states or other threads can be executed).
2019-08-20 16:32:11 +02:00
..
can drivers/can: fix doxygen documentation + typo 2017-07-03 20:43:51 +02:00
net stm32_eth: Multiple Improvements of the original codebase 2019-07-04 15:27:26 +02:00
periph drivers/include/periph/eeprom: Changed uint8_t* to void* in API 2019-08-09 17:27:32 +02:00
saul drivers/saul: Show configuration structs in docs 2018-02-17 00:04:54 +01:00
ad7746.h drivers: Add driver for AD7746 capacitance sensor 2019-02-15 13:31:18 +01:00
adcxx1c.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
ads101x.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
adt7310.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
adxl345.h drivers/adxk345: include copy of params in dev struct 2019-01-06 17:24:24 +01:00
apa102.h drivers: add driver for apa102 RGB LEDs 2017-09-01 09:37:31 +02:00
at30tse75x.h drivers/at30tse75x: adapt to new I2C api 2018-07-25 12:01:38 +02:00
at86rf2xx.h at86rf2xx: Remove PAN ID initialization from reset 2018-11-28 11:31:02 +01:00
at.h tests/driver_at: Add receive until string test 2019-05-16 14:45:53 +02:00
ata8520e.h drivers/ata8520e: small improvements 2018-08-24 15:47:24 +02:00
bh1750fvi.h drivers/bh1750fvi: change prototype of bh1750fvi_init 2019-01-07 21:37:02 +01:00
bmp180.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
bmx055.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
bmx280.h drivers/bmx280: fix dead links 2019-02-08 09:01:20 +01:00
cc1xxx_common.h net/gnrc/netif: Added CC1xxx adaption layer 2019-01-10 10:54:36 +01:00
cc110x.h drivers/cc110x: Rewrite of the cc110x driver 2019-08-20 16:32:11 +02:00
cc2420.h cc2420: Remove PAN ID initialization from reset 2018-11-28 11:31:02 +01:00
ccs811.h drivers/ccs811: nWAKE and nRESET moved to base 2018-12-20 12:42:44 +01:00
dht.h drivers/dht: Move hold logic from SAUL to driver 2019-07-29 10:39:50 +02:00
diskio.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
ds18.h drivers/ds18: refactor functions with const dev pointer 2019-01-08 19:25:13 +01:00
ds75lx.h drivers: sys: add SAUL support for ds75lx sensor 2019-05-22 16:54:20 +02:00
ds1307.h drivers/ds1307: remove unused clock param 2018-07-25 12:01:40 +02:00
ds3234.h drivers/ds3234: Fix doxygen group 2019-03-14 14:32:28 +01:00
dsp0401.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
dynamixel.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
enc28j60.h drivers/enc28j60: always set memory bank, if valid 2018-09-05 13:26:08 +02:00
encx24j600.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
ethos.h drivers: sys: replace USE_ETHOS_FOR_STDIO macro by MODULE_STDIO_ETHOS 2019-06-23 22:16:03 +02:00
feetech.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
flashrom.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
fxos8700.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
grove_ledbar.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
hd44780.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
hdc1000.h hdc1000: fix documentation for HDC1000_PARAM_RENEW_INTERVAL 2019-02-04 11:28:31 +01:00
hih6130.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
hts221.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
ina220.h drivers/ina220: fix table number in bus ADC settings 2018-01-30 21:43:07 +01:00
io1_xplained.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
isl29020.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
isl29125.h drivers/isl29125: update parameter definition scheme 2018-07-25 12:01:38 +02:00
jc42.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
kw2xrf.h kw2xrf: Remove PAN ID initialization from reset 2018-11-28 11:31:03 +01:00
l3g4200d.h drivers/l3g4200d: fixes driver conversion 2019-03-30 10:32:43 +01:00
lc709203f.h drivers/lc709203f: Added support for the LC709203F Fuel Gauge 2018-01-15 17:48:27 +01:00
led.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
lis2dh12.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
lis3dh.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
lis3mdl.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
lpd8808.h drivers: use const device descriptor 2017-06-21 17:05:45 +02:00
lpsxxx.h drivers/lpsxxx: add support for lps22hb 2019-03-20 14:43:37 +01:00
lsm6dsl.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
lsm303dlhc.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
ltc4150.h drivers/ltc4150: Allow tracking last minute charge 2019-01-28 13:45:45 +01:00
mag3110.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
mma8x5x.h drivers/mma8x5x: remove use of type param 2018-11-20 10:41:45 +01:00
mma7660.h drivers/mma7760: Add initial support 2018-08-02 15:52:58 +02:00
motor_driver.h drivers: add motor_driver API 2019-03-11 01:44:22 +01:00
mpl3115a2.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
mpu9150.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
mq3.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
mrf24j40.h drivers/mrf24j40 : support of NETOPT_LAST_ED_LEVEL 2019-05-23 15:45:03 +02:00
mtd_sdcard.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
mtd_spi_nor.h mtd_spi_nor: add 4-byte address flash support 2018-05-14 15:05:24 +02:00
mtd.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
my9221.h drivers: add my9221 led controller 2017-08-30 09:06:03 +02:00
nrf24l01p.h make: fix various compile errors with Wextra 2017-11-28 18:31:43 +01:00
nvram-spi.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
nvram.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
pcd8544.h drivers/pcd8544: replace char by uint8_t for bytes 2019-04-25 23:42:30 +02:00
pir.h driver/pir: add pir-based occupancy sensing 2018-06-26 13:46:37 -07:00
pn532.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
pulse_counter.h drivers/pulse_counter: refactor the prototypes of read funcs 2019-01-09 23:06:54 +01:00
rgbled.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
rn2xx3.h drivers: add rn2xx3 LoRa module driver 2018-01-18 10:46:54 +01:00
saul.h drivers/saul: Add capacitance and voltage types 2019-02-15 13:37:45 +01:00
sdcard_spi.h drivers/sdcard_spi: Use uint8_t for byte values 2019-04-29 19:25:34 +02:00
sds011.h drivers: add driver for SDS011 active laser dust sensor 2019-01-30 13:15:17 +01:00
servo.h drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
sht1x.h drivers/sht1x: Major refactoring 2018-06-27 08:58:00 +02:00
sht2x.h drivers: add support for SHT2x (I2C temp and humidity sensor) 2019-02-05 22:17:30 +01:00
sht3x.h drivers: add SHT3X humidity/temperature sensor 2018-11-21 08:48:20 +01:00
si70xx.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
si114x.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
slipdev.h slipdev: make rxmem buffer uint8_t 2019-06-05 21:24:38 +02:00
soft_spi.h drivers/soft_spi: add to drivers_soft_periph group 2018-03-20 20:09:55 +01:00
srf02.h drivers/srf02: Update to new i2c API 2018-07-25 12:01:38 +02:00
srf04.h drivers/srf04: initial driver implementation 2018-09-20 15:18:49 +02:00
srf08.h driver/srf08: remove leftover doc 2018-07-25 12:01:40 +02:00
stm32_eth.h stm32_eth: Multiple Improvements of the original codebase 2019-07-04 15:27:26 +02:00
sx127x.h sx127x: remove DIOMULTI 2019-07-04 14:23:48 +02:00
tcs37727.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
tja1042.h drivers: fix doxygen grouping 2018-06-11 19:10:40 +02:00
tmp006.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
tps6274x.h drivers: Initial support for TPS6274x converter 2019-01-10 00:00:02 +01:00
tsl2561.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
tsl4531x.h drivers/tsl4531x: Add power modes; redesign 2018-10-23 17:26:28 +02:00
vcnl40x0.h drivers/vcnl40x0: initial implementation 2018-10-15 11:44:10 +02:00
veml6070.h drivers*: add saul doc group to related drivers 2018-08-27 11:32:20 +02:00
w5100.h drivers: doxygen documentation improvement 2017-07-02 23:21:36 +02:00
xbee.h netstats_l2: remove obsolete struct from xbee_t 2019-02-01 11:25:27 +02:00