1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

26 Commits

Author SHA1 Message Date
benpicco
8f9233f329
Merge pull request #16232 from maribu/drivers/cc110x
drivers/cc110x: add power off (sleep) functions
2021-07-06 12:24:26 +02:00
Marian Buschsieweke
3d76875f38
drivers/cc110x: style fixes 2021-07-06 10:12:21 +02:00
Francisco Acosta
0efc13602f
drivers/cc110x: add power off (sleep) functions 2021-07-06 10:11:55 +02:00
Fabian Hüßler
d8affca746 drivers/cc110x: add weak function cc1xxx_eui_get() 2021-04-08 10:38:16 +02:00
Fabian Hüßler
39adf908ce cc110x: make use of netdev_register()
Call netdev_register() in cc110x_setup()
and pass the index in auto_init_cc110x()
2020-12-01 12:11:20 +01:00
Benjamin Valentin
aa0e5e7afa drivers/cc110x: replace binary constants and use unsigned char
binary constants are a GCC extension
2020-07-31 13:38:03 +02:00
Akshai M
01a8c64e39 drivers/cc110x : Add CONFIG_
Add Add CONFIG_ Prefix for CC110X_DEFAULT_CHANNEL
2020-04-17 23:27:01 +05:30
Akshai M
c452323ab5 drivers/include/cc110x.h : Add group
Add compile parameters to config_drivers_netdev group to Doxygen

Co-Authored-By: Leandro Lanzieri <leandro.lanzieri@haw-hamburg.de>
2020-04-15 13:58:31 +05:30
Marian Buschsieweke
fdc87ae30d
drivers/cc110x: Fixed typo in doc 2020-01-23 18:27:04 +01:00
eeca0e3752 drivers/include: fix typos 2019-11-23 22:39:40 +01:00
Marian Buschsieweke
bb739907a2
drivers/cc110x: Allow setting the default channel
This (re-)introduces the `CC110X_DEFAULT_CHANNEL` preprocessor macro to set the
default channel of the `cc110x` at compile time. The same macro has been used
in the previous version of the driver, so some users might still expect it to
work.
2019-09-10 10:04:51 +02:00
Marian Buschsieweke
3da3280930
driver/cc110x: Fixed indent/alignment in doc
The Doxygen documentation blocks have not been correctly aligned. This commit
fixes this.
2019-09-04 13:15:15 +02:00
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
Marian Buschsieweke
615e25f319
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
2019-08-19 12:56:47 +02:00
Marian Buschsieweke
b4f70be9ef
drivers: Fixed struct documentation for cc110x 2018-05-24 19:16:52 +02:00
94c753c07a drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
f9122018a2 drivers: doxygen documentation improvement 2017-07-02 23:21:36 +02:00
Oleg Hahm
2f5683b3f7 cc110x: make protocol configurable 2016-02-05 16:12:46 +01:00
Hauke Petersen
aee4e564c0 drivers/cc110x: moved includes
let the driver follow the same structure than other drivers
for now: keeping 'private' includes in a local include folder
2015-11-20 10:32:43 +01:00
Oleg Hahm
f035bced0c doc: put network devices and sensors in subgroups 2015-09-27 18:25:43 +02:00
14d0ef6c4d drivers: add cc110x driver 2015-09-23 18:55:11 +02:00
5d8349298f remove bulk of legacy network stack and drivers 2015-08-06 12:12:47 +02:00
Fabian Nack
eebfd5011a drivers - cc110x: Initial import of new cc110x driver 2014-12-01 17:14:02 +01:00
Fabian Nack
53b0ad2be5 drivers - cc110x: rename cc110x to cc110x_legacy_csma 2014-10-28 16:18:50 +01:00
BytesGalore
f94623ae0f drivers: add extern "C" to header files 2014-10-21 15:30:03 +02:00
Oleg Hahm
70747d8bb4 streamlined driver include pathes 2014-02-05 18:56:47 +01:00