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

152 Commits

Author SHA1 Message Date
Akshai M
be097f8533 drivers/cc110x : Expose to Kconfig
Expose Configurations to Kconfig
2020-04-17 23:55:07 +05:30
Akshai M
01a8c64e39 drivers/cc110x : Add CONFIG_
Add Add CONFIG_ Prefix for CC110X_DEFAULT_CHANNEL
2020-04-17 23:27:01 +05:30
Marian Buschsieweke
02a425f114
drivers/cc110x: Handle lost IRQs more gracefully
When an IRQ is lost during cc110x_send(), the driver will remain locked until
another IRQ is triggered. This commit changes the behavior to wait for at most
an reasonable upper bound, which is chosen to not only allow the driver to
recover but also (at least in theory) complete the transmission correctly.
2020-03-08 12:49:57 +01:00
Jose Alamos
3ad574a822 drivers/netdev: use netdev_trigger_event_isr function 2020-03-06 14:03:43 +01:00
Marian Buschsieweke
b98b51d082
drivers/cc110x: Add promiscuous mode support 2020-01-23 18:27:04 +01:00
Marian Buschsieweke
f7eb9233da
drivers/cc110x: Replaced some magic numbers 2020-01-23 18:27:03 +01:00
Marian Buschsieweke
cf9c84a00d
drivers/cc110x: Use NETOPT_MAX_PDU_SIZE
Replaced deprecated NETOPT_MAX_PACKET_SIZE by NETOPT_MAX_PDU_SIZE
2019-10-18 17:57:36 +02: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
84acc746dc
drivers/cc110x: Added missing Doxygen comments
The current stable Doxygen release should no longer complain now
2019-09-06 09:10:38 +02:00
Marian Buschsieweke
b389a9c5fa
drivers/cc110x: Fixed broken Doxygen grouping
The header files of the CC110x contained two Doxygen "end of doc group" (@})
commands. This PR makes sure they are balanced again.
2019-09-06 08:53:40 +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
Martine S. Lenders
d129382484 gnrc_cc110x: use gnrc_netif_hdr_set_netif() 2019-07-26 15:34:08 +02:00
Marian Buschsieweke
556a1e31ff
drivers/cc110x: Use NETOPT_MAX_DPU_SIZE
Updated cc110x to use NETOPT_MAX_DPU_SIZE instead of the deprecated
NETOPT_MAX_PACKET_SIZE
2019-02-18 20:18:54 +01:00
Marian Buschsieweke
fc1b7f1e35
drivers/cc110x: Fixed get NETOPT_MAX_PACKET_SIZE
netdev_driver_t::get(NETOPT_MAX_PACKET_SIZE) used to return the maximum frame
size instead of the maximum layer 2 PDU size.
2019-02-01 12:24:34 +01:00
Marian Buschsieweke
4183e16820
drivers/cc110x: Replaced magic number
Introduced CC110X_L2_HDR_SIZE to get rid of magic numbers.
2019-02-01 12:23:22 +01:00
Vincent Dupont
ffc6e4b65c drivers/cc110x: remove irq_disable/irq_restore around spi transfers 2018-12-28 09:35:14 +01:00
Marian Buschsieweke
ee33bd167a
drivers/cc110x: Made address format in debug output consistent 2018-05-29 15:57:30 +02:00
Marian Buschsieweke
2f3d811e99
drivers: Improved debug output in cc110x 2018-05-28 20:27:15 +02:00
Marian Buschsieweke
30c79a66d0
drivers: Replaced magic numbers in cc110x
Replaced magic undocumented numbers in the code by human readable preprocessor
macros.
2018-05-24 19:28:46 +02:00
Marian Buschsieweke
cbff3e6d3a
drivers: Implemented missing function in cc110x
Function cc110x_state_to_text is defined and (with ENABLE_DEBUG) referenced,
but implemented. This commit adds the missing implementation.
2018-05-24 19:17:59 +02:00
Marian Buschsieweke
a6f9a86597
drivers/cc110x: Moved cc110x_params.h from boards to driver
- Replaced magic numbers in the CC110X configuration of the MSBA2
   with SPI_DEV(x) and GPIO_PIN(x, y) macros
 - Adjusted implementation of `cc110x_params.h` to match the code of `at86rf2xx`
 - Made MSBA2's CC110X parameters the default configuration
2018-05-21 22:59:46 +02:00
Martine Lenders
247b1a0d8f cc110x: fix netdev get/set according to netopt_t doc 2018-04-13 00:29:26 +02:00
23b414b732 drivers: net: adapt to iolist-using netdev 2018-03-06 14:00:31 +01:00
smlng
b283b7784c make: fix various compile errors with Wextra
pkg, nordic_softdevice_ble: disable CFLAGS to omit compiler error
        sys, pm_layered: fix casting nonscalar to the same type
        cpu, stm32_common: fix type-limits, remove always true assert
        cpu, stm32f4: fix pointer arithmetic in periph/i2c
        drivers, at86rf2xx: fix type-limits where condition always true
        saul, gpio: fix if no gpio configured for saul
        cpu, saml21: add frequency check to periph/timer
        driver, cc110x: fix unused param and type-limts errors
        boards, wsn430-common: fix old-style-declaration
        make: fix old style definition
        drivers, sdcard_spi: fix old style typedef
        driver, at30tse: remove unnecessary check
        driver, nrf24: fix type-limit
        driver, pn532: change buffer from char to uint8_t
        tests/driver_sdcard: fix type limits
        boards, feather-m0: add missing field inits
        driver, tcs37727: fix type limits
        pkg, emb6: disable some compiler warnings
        tests/emb6: disable some compiler warings
        pkg, openthread: fix sign compare and unused params
        tests/trickle: fix struct init
        tests/pthread_cooperation: fix type limits
        board, mips-malta: remove feature periph_uart
        shell: fix var size for netif command
        gnrc, netif: fix sign-compare
        gnrc, nib: fix sign-compare
        shell: fix output in netif command
        posix: fix type-limits in pthread_cond
2017-11-28 18:31:43 +01:00
13e0239722 drivers/cc110x: cleanup + remove gnrc_netdev leftover 2017-11-28 11:25:33 +01:00
Martine Lenders
a63bb6d47b
Merge pull request #6895 from bergzand/drivers/radio-rssi-conv
drivers/radios Apply register to rssi dBm conversion to all radios
2017-11-27 23:52:15 +01:00
7dce20afb6 cc110x: Add RSSI dBm conversion 2017-11-27 21:49:15 +01:00
8a6d04ce52
Merge pull request #7925 from RIOT-OS/gnrc_netif2_integration/master
gnrc_netif2: gnrc_ipv6_nib: full integration into GNRC
2017-11-27 21:12:14 +01:00
Sichen Zhao
827ffbd048 cc110x-netdev.c: add NETOPT_ADDR_LEN. 2017-11-22 22:06:31 +08:00
Martine Lenders
31b1ceb440
gnrc_netif2: rename to gnrc_netif 2017-11-17 10:41:54 +01:00
Martine Lenders
e3ef42842e cc110x: port to gnrc_netif2 2017-11-15 22:57:02 +01:00
94c753c07a drivers: doxygen cleanup 2017-09-01 15:12:20 +02:00
Joakim Nohlgård
065bc62e0a netdev: Make set() value parameter const void * 2017-08-25 13:41:19 +02:00
smlng
a7b049f98a drivers: coding style, use {} for empty while loops 2017-06-11 20:08:10 +02:00
0fcc7d3834 cleanup: apply headerguard script output 2017-05-24 17:54:02 +02:00
Martine Lenders
29842bb5e4 netdev2: rename to netdev and remove gnrc_netdev
With some minor hand-edits I used the following chain of commands:

```sh
git rm sys/include/net/gnrc/netdev.h
git grep --name-only -i netdev2 | \
        xargs sed -i -e 's/^\(NETDEV\)2\(.*\)\( [("]\)/\1\2 \3/g' \
                     -e 's/\(netdev\)2\(.*\)\( \/\*\*<\)/\1\2 \3/I' \
                     -e 's/\(netdev\)2/\1/gI'
git add -p
git commit --amend
git ls-tree --full-tree -r HEAD --name-only | \
        grep "netdev2" | xargs -I'{}' dirname '{}' | uniq | \
        grep "netdev2" | while read dir; do
                new_dir="$(echo "$dir" | sed "s/netdev2/netdev/g")"
                git mv -f "$dir" "$new_dir"
        done
git commit --amend
git ls-tree --full-tree -r HEAD --name-only | \
        grep "netdev2" | while read file; do
                new_file="$(echo "$file" | sed "s/netdev2/netdev/g")"
                git mv -f "$file" "$new_file"
        done
git commit --amend
git grep --name-only "\<drivers_netdev_netdev\>" | \
        xargs sed -i "s/\<drivers_netdev_netdev\>/drivers_netdev_api/g"
git add -p
git commit --amend
```
2017-03-15 09:31:20 +01:00
Oleg Hahm
0d3833a88a net: cleanup ng_ remnants 2017-03-02 14:19:25 +01:00
Hauke Petersen
79a113d1ba sys/drivers: renamed uuid module to luid 2017-02-27 11:01:20 +01:00
Hauke Petersen
8799b3ab9e drivers/cc110x: adapted to SPI API changes 2017-01-25 16:46:45 +01:00
Hauke Petersen
84246d1687 drivers/cc110x: use uuid module for addr gen 2017-01-19 11:09:29 +01:00
Martine Lenders
7f7f08bf50 cc110x: only handle NETOPT_PROTO if gnrc_netif module is present
The cc110x_t::proto field is only present when the `gnrc_netif` module
is present. Handling its corresponding `NETOPT_PROTO` value leads to a
compile error when trying to compile without GNRC.
2017-01-15 20:36:53 +01:00
Martine Lenders
bd2429f299 cpu: drivers: adapt devices for netdev2 parameter type change 2016-08-03 12:30:51 +02:00
75168936f6 drivers/cc110x: fix typo in macro definition. 2016-07-14 17:22:03 +02:00
d7b17684e4 drivers: net: adapt to removed event_callback argument 2016-06-02 11:11:40 +02:00
Oleg Hahm
86a83f8f86 cc110x: use CPP check instead of runtime check 2016-03-29 22:51:53 +02:00
Oleg Hahm
0ed54f0d4e cc110x: fix typo (missing semicolon) 2016-03-29 20:11:35 +02:00
e64cffa359 drivers: cc110x: compile fix 2016-03-26 20:53:13 +01:00
Martine Lenders
69b63b7c5a cc110x: generate IID from hardware address 2016-03-26 19:16:05 +01:00