[riot-commits] [RIOT-OS/RIOT] 615e25: drivers: Removed driver for CC110x transceivers

Peter Kietzmann noreply at github.com
Tue Aug 20 17:58:23 CEST 2019


  Branch: refs/heads/master
  Home:   https://github.com/RIOT-OS/RIOT
  Commit: 615e25f31900378505f687e7840a6a107ffb0893
      https://github.com/RIOT-OS/RIOT/commit/615e25f31900378505f687e7840a6a107ffb0893
  Author: Marian Buschsieweke <marian.buschsieweke at ovgu.de>
  Date:   2019-08-19 (Mon, 19 Aug 2019)

  Changed paths:
    M boards/msba2/Makefile.dep
    M boards/msbiot/Makefile.dep
    M drivers/Makefile.dep
    M drivers/Makefile.include
    R drivers/cc110x/Makefile
    R drivers/cc110x/cc110x-defaultsettings.c
    R drivers/cc110x/cc110x-netdev.c
    R drivers/cc110x/cc110x-rxtx.c
    R drivers/cc110x/cc110x-spi.c
    R drivers/cc110x/cc110x.c
    R drivers/cc110x/gnrc_cc110x/Makefile
    R drivers/cc110x/gnrc_cc110x/gnrc_cc110x.c
    R drivers/cc110x/include/cc110x-defaultsettings.h
    R drivers/cc110x/include/cc110x-defines.h
    R drivers/cc110x/include/cc110x-interface.h
    R drivers/cc110x/include/cc110x-internal.h
    R drivers/cc110x/include/cc110x-netdev.h
    R drivers/cc110x/include/cc110x-spi.h
    R drivers/cc110x/include/cc110x_params.h
    R drivers/cc110x/include/gnrc_netif_cc110x.h
    R drivers/include/cc110x.h
    M examples/default/Makefile
    M examples/gnrc_border_router/Makefile
    M examples/gnrc_minimal/Makefile
    M examples/gnrc_networking/Makefile
    M examples/nanocoap_server/Makefile
    M sys/auto_init/auto_init.c
    M tests/gnrc_udp/Makefile

  Log Message:
  -----------
  drivers: Removed driver for CC110x transceivers

- Removed cc110x driver
- Updated all makefiles
- Kept both board specific configurations and support for it in RIOT's
  upper layers, so re-implementations don't need to start from zero


  Commit: 972367432a732868932db8c22e13b9ddc9774395
      https://github.com/RIOT-OS/RIOT/commit/972367432a732868932db8c22e13b9ddc9774395
  Author: Marian Buschsieweke <marian.buschsieweke at ovgu.de>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M Makefile.dep
    M drivers/Makefile.dep
    M drivers/Makefile.include
    A drivers/cc110x/Makefile
    A drivers/cc110x/cc110x.c
    A drivers/cc110x/cc110x_calibration.c
    A drivers/cc110x/cc110x_chanmaps.c
    A drivers/cc110x/cc110x_communication.c
    A drivers/cc110x/cc110x_configs.c
    A drivers/cc110x/cc110x_netdev.c
    A drivers/cc110x/cc110x_patables.c
    A drivers/cc110x/cc110x_rx_tx.c
    A drivers/cc110x/cc110x_settings.c
    A drivers/cc110x/include/cc110x_calibration.h
    A drivers/cc110x/include/cc110x_communication.h
    A drivers/cc110x/include/cc110x_constants.h
    A drivers/cc110x/include/cc110x_internal.h
    A drivers/cc110x/include/cc110x_netdev.h
    A drivers/cc110x/include/cc110x_params.h
    A drivers/cc110x/include/cc110x_rx_tx.h
    A drivers/cc110x/include/cc110x_settings.h
    A drivers/include/cc110x.h
    M makefiles/pseudomodules.inc.mk
    M sys/auto_init/auto_init.c
    M sys/auto_init/netif/auto_init_cc110x.c

  Log Message:
  -----------
  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).


  Commit: 88cf6cb46fd89a357568a90f364da2f80142cf12
      https://github.com/RIOT-OS/RIOT/commit/88cf6cb46fd89a357568a90f364da2f80142cf12
  Author: Marian Buschsieweke <marian.buschsieweke at ovgu.de>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M sys/auto_init/netif/auto_init_cc110x.c

  Log Message:
  -----------
  sys/auto_init/netif: Increased cc110x stack size

With the increase of the message queue size from 8 to 16 in
946b06e4f0ea2faf8b63f427dab3720e48790f76, the default stack became too small.
This changes the stack size to grow with the message queue size.


  Commit: 137c2c0adfd9aad88c3917b97bce85e9ada0c225
      https://github.com/RIOT-OS/RIOT/commit/137c2c0adfd9aad88c3917b97bce85e9ada0c225
  Author: Marian Buschsieweke <marian.buschsieweke at ovgu.de>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M boards/msba2/Makefile.dep
    M boards/msbiot/Makefile.dep
    M boards/msbiot/include/board.h

  Log Message:
  -----------
  boards: Added cc110x params for MSB-A2 & MSB-IoT


  Commit: ccf713c5adc6be059c66b585050f5905667e7ad6
      https://github.com/RIOT-OS/RIOT/commit/ccf713c5adc6be059c66b585050f5905667e7ad6
  Author: Marian Buschsieweke <marian.buschsieweke at ovgu.de>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M drivers/cc1xxx_common/gnrc_netif_cc1xxx.c

  Log Message:
  -----------
  drivers/cc1xxx_common: L2 netstats & cleanups

- Added required logic to provide correct L2 netstats when the module
  netstats_l2 is used.
- Refactored code to use gnrc_netif_hdr_set_netif() over manually setting the
  pid to ease future refactoring.


  Commit: f33b963ef4d95caff94c311568ea9997b412f2d9
      https://github.com/RIOT-OS/RIOT/commit/f33b963ef4d95caff94c311568ea9997b412f2d9
  Author: Marian Buschsieweke <marian.buschsieweke at ovgu.de>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    A tests/driver_cc110x/Makefile
    A tests/driver_cc110x/main.c
    A tests/driver_cc110x/sc_cc110x.c

  Log Message:
  -----------
  tests: Added test for the cc110x driver

The test application provides:
- RIOT's basic network utilities such as `ping6`
- A custom `cc110x` shell command that can be used print the low level device
  and driver state. This is mostly useful for debugging.


  Commit: a84de4225dcc90927a9b38d72db28c701b78a9c5
      https://github.com/RIOT-OS/RIOT/commit/a84de4225dcc90927a9b38d72db28c701b78a9c5
  Author: Marian Buschsieweke <marian.buschsieweke at ovgu.de>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M examples/default/Makefile
    M tests/netstats_l2/Makefile

  Log Message:
  -----------
  examples,tests: Add msba2 to BOARD_PROVIDES_NETIF


  Commit: 11b4bab10156c65df0f587cbd80b68962dbce63f
      https://github.com/RIOT-OS/RIOT/commit/11b4bab10156c65df0f587cbd80b68962dbce63f
  Author: Peter Kietzmann <peter.kietzmann at haw-hamburg.de>
  Date:   2019-08-20 (Tue, 20 Aug 2019)

  Changed paths:
    M Makefile.dep
    M boards/msba2/Makefile.dep
    M boards/msbiot/Makefile.dep
    M boards/msbiot/include/board.h
    M drivers/Makefile.dep
    M drivers/cc110x/Makefile
    R drivers/cc110x/cc110x-defaultsettings.c
    R drivers/cc110x/cc110x-netdev.c
    R drivers/cc110x/cc110x-rxtx.c
    R drivers/cc110x/cc110x-spi.c
    M drivers/cc110x/cc110x.c
    A drivers/cc110x/cc110x_calibration.c
    A drivers/cc110x/cc110x_chanmaps.c
    A drivers/cc110x/cc110x_communication.c
    A drivers/cc110x/cc110x_configs.c
    A drivers/cc110x/cc110x_netdev.c
    A drivers/cc110x/cc110x_patables.c
    A drivers/cc110x/cc110x_rx_tx.c
    A drivers/cc110x/cc110x_settings.c
    R drivers/cc110x/gnrc_cc110x/Makefile
    R drivers/cc110x/gnrc_cc110x/gnrc_cc110x.c
    R drivers/cc110x/include/cc110x-defaultsettings.h
    R drivers/cc110x/include/cc110x-defines.h
    R drivers/cc110x/include/cc110x-interface.h
    R drivers/cc110x/include/cc110x-internal.h
    R drivers/cc110x/include/cc110x-netdev.h
    R drivers/cc110x/include/cc110x-spi.h
    A drivers/cc110x/include/cc110x_calibration.h
    A drivers/cc110x/include/cc110x_communication.h
    A drivers/cc110x/include/cc110x_constants.h
    A drivers/cc110x/include/cc110x_internal.h
    A drivers/cc110x/include/cc110x_netdev.h
    M drivers/cc110x/include/cc110x_params.h
    A drivers/cc110x/include/cc110x_rx_tx.h
    A drivers/cc110x/include/cc110x_settings.h
    R drivers/cc110x/include/gnrc_netif_cc110x.h
    M drivers/cc1xxx_common/gnrc_netif_cc1xxx.c
    M drivers/include/cc110x.h
    M examples/default/Makefile
    M examples/gnrc_border_router/Makefile
    M examples/gnrc_minimal/Makefile
    M examples/gnrc_networking/Makefile
    M examples/nanocoap_server/Makefile
    M makefiles/pseudomodules.inc.mk
    M sys/auto_init/auto_init.c
    M sys/auto_init/netif/auto_init_cc110x.c
    A tests/driver_cc110x/Makefile
    A tests/driver_cc110x/main.c
    A tests/driver_cc110x/sc_cc110x.c
    M tests/gnrc_udp/Makefile
    M tests/netstats_l2/Makefile

  Log Message:
  -----------
  Merge pull request #10340 from maribu/cc110x_rewrite

drivers/cc110x: Complete rewrite from scratch


Compare: https://github.com/RIOT-OS/RIOT/compare/a4a1dc4dfea3...11b4bab10156


More information about the commits mailing list