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

166 Commits

Author SHA1 Message Date
Benjamin Valentin
8f1eaae353 drivers/at86rf2xx: add support for ATmegaRF MCUs
The ATmega128RFA1 and ATmega256RFR2 contain a version of this IP
on the MCU.

The radio core behaves mostly like a at86rf231, but all registers
are mapped to memory and radio states can directly generate interrupts
on the CPU.

The ATmega256RFR2 adds support for automatic retransmissions.
This has not been implemented yet.

Co-authored-by: Josua Arndt <jarndt@ias.rwth-aachen.de>
2019-10-26 23:10:18 +02:00
Jannes
2df5d6048d driver/mpu9x50: Rename mpu9150 to mpu9x50
Rename all files

Rename all variables, methods and methodcalls

Rename all folders

Add to the makefiles

Add to doc
2019-10-17 12:52:18 +02:00
Jannes
33a98100a9 drivers/opt3001: Initial support 2019-10-02 10:06:28 +02:00
Benjamin Valentin
0bb04cfd27 drivers/mrf24j40: add pseudomodules for MRF24J40MA/C/D/E
Microchip offers ready-to-use modules with the mrf24j40 chip.
All but the MRF24J40MA integrate an external PA/LNA, they also come
with an RF shield.

If the PA/LNA is not enabled, the signal off these modules is really
poor.

This adds pseudomodules so that the PA/LNA is automatically enabled
when the appropriate module is used.
2019-09-28 19:30:52 +02:00
Benjamin Valentin
c31e373214 shell_commands: gnrc_netif: only include LoRA options when LoRA PHY is present
If no LoRA module is used, there is no use in compiling in all the config options
for LoRA PHYs.

This saves about 1k of .text
2019-09-24 17:14:03 +02:00
Schorcht
f93f9b7790 drivers: support for PCA9685 PWMs 2019-09-12 19:11:52 +02:00
Vincent Dupont
f3d2f53287 drivers: add mtd_flashpage driver
This is a MTD wrapper for flashpage internal flash
2019-09-10 13:26:05 +02:00
Leandro Lanzieri
563a053bc1
Merge pull request #10983 from skullbox305/driver_ph_oem
drivers/ph_oem: support for Atlas Scientific pH OEM sensor
2019-09-09 10:18:49 +02:00
Igor Knippenberg
ead03d4a08 drivers/ph_oem: Initial implementation of the pH OEM sensor
The Atlas Scientific pH OEM sensor is a small circuit to be embedded in
end products to measure the pH value with any commercially available pH
electrode
2019-09-05 12:47:10 +02:00
Kevin "Tristate Tom" Weiss
1b1c902dd3
Merge pull request #12022 from JannesVolkens/tmp00x
driver/tmp00x: make tmp006 more generic
2019-08-23 13:26:09 +02:00
Jannes
90c4ef04ef driver/tmp00x: Change tmp006 to tmp00x and add tmp007
Rename TMP006 to TMP00x
Add TMP007 sensor support to TMP00X
Change uint8_t reg to uint16_t
Add to doxygen documentation group
Expose compile time configurations
Move defines from .c to .h
Change double to float, because double is not needed
Add TMP007 register information
2019-08-23 12:11:16 +02:00
Vincent Dupont
42c5c40da9 ncv7356: add driver for ncv7356 SW CAN transceiver 2019-08-21 11:05:51 +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
340c8e8236
drivers/sx127x: let sx127x driver manage spi pins GPIO modes 2019-08-05 16:46:41 +02:00
Robin
4729bea46e
stm32_eth: Multiple Improvements of the original codebase
stm32eth: Move to stm32_common periph
cpu/stm32_periph_eth: Rebase to current master branch

- Update DMA to use new vendor headers
- Update send to use iolist. It looks like the packet headers are now transfered as seperate iolist entries which results in the eth periph sending each header as own packet. To fix this a rather ugly workaround is used where the whole iolist content is first copied to a static buffer. This will be fixed soon in another commit
- If MAC is set to zero use luid to generate one
- Small code style fixes

cpu/stm312f7: Add periph config for on-board ethernet
boards/nucleo-f767zi: Add config for on board ethernet
tests/stm32_eth_lwip: Remove board restriction
boards/common/nucleo: Add luid module if stm32 ethernet is used
tests/stm32_eth_gnrc: Add Testcase for gnrc using the stm32 eth periph
stm32_eth: Rework netdev driver layour
tests/stm32_eth_*: Use netdev driver header file for prototypes
stm32_eth: Add auto init for stm32 eth netdev driver
boards/stm32: Enable ethernet conf for nucleo boards
stm32_eth_auto_init: Add dont be pendantic flag
stm32_eth: Remove dma specific stuff from periph_cpu.h

Looks like this was implemented in PR #9171 and 021697ae94 with the same interface.

stm32_eth: Remove eth feature from stm32f4discovery boards
stm32_eth: Migrate to stm32 DMA API
stm32_eth: Add iolist to module deps
stm32_eth: Rework send function to use iolist
stm32_eth: Fix ci build warnings
stm32_eth: Fix bug introduced with iolist usage
stm32_eth: Remove redundant static buffer
stm32_eth: Fix feature dependencies
stm32_eth: Fix wrong header guard name
stm32_eth: Implement correct l2 netstats interface
stm32_eth: Rename public functions to stm32_eth_*
stm32_eth: Fix doccheck
stm32_eth: Move register DEFINE to appropriate header file
stm32_eth: remove untested configuration for f446ze boards
stm32_eth: Move periph configuration struct to stm32_common
stm32_eth: Fix naming of eth_phy_read and eth_phy_write
stm32_eth: Remove obsolete test applications
2019-07-04 15:27:26 +02:00
35a3c4ddfe
drivers/ds75lx: add basic driver 2019-05-22 16:54:19 +02:00
14f47bf220
Merge pull request #10695 from aabadie/pr/drivers/lpsxxx
drivers/lpsxxx: refactor lps331ap and add support for lps25hb + lps22hb
2019-03-29 10:54:08 +01:00
Gaëtan Harter
29fc58bc79
drivers/at: remove the direct dependency to xtimer
`at` is not using the `xtimer` module directly but only through
'isrpipe_read_timeout'.
2019-03-26 21:36:24 +01:00
Gaëtan Harter
b07eecd619
isrpipe: split isrpipe_read_timeout to isolate xtimer dependency
This defines a new 'isrpipe_read_timeout' module that should be used when using
the timeout based function of isrpipe.

This fix the implicit dependency to 'xtimer' that is only needed for the
'_timeout' functions.

It prevents 'stdio_uart' that uses 'isrpipe' to need to depend on xtimer.
This was silently solved at link time for most platforms but not for the
'esp32' for example.

'drivers/at' needed to be updated at the same time to follow the api change.
2019-03-26 21:36:24 +01:00
7c285eb186
drivers/lpsxxx: add support for lps22hb 2019-03-20 14:43:37 +01:00
1f4dee90a1
drivers/lpsxxx: unify lps331ap and lps25h drivers 2019-03-20 14:43:36 +01:00
Gilles DOFFE
8a20936a9d drivers: add motor_driver implementation
Implement motor_driver API to drive CC motors through hardware drivers.

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
2019-03-11 01:44:22 +01:00
Joakim Nohlgård
a6f430b4b5 drivers/ds3234: Minimal driver for DS3234 extremely accurate RTC
This driver currently only supports the SPI connected DS3234, and only
for initializing 1 Hz square wave output on the SQW pin, nothing else.
2019-02-19 11:57:40 +01:00
Leandro Lanzieri
50dc5b7528 drivers: Add driver for AD7746 capacitance sensor 2019-02-15 13:31:18 +01:00
Kees Bakker
50ec5130d6 drivers: add support for SHT2x (I2C temp and humidity sensor)
Several parts were inspired by a driver written by:
  George Psimenos (gp7g14@soton.ac.uk)
  Steffen Robertz (steffen.robertz@rwth-aachen.de)
2019-02-05 22:17:30 +01:00
Michel Rottleuthner
f5dc2524d0 drivers: add driver for SDS011 active laser dust sensor 2019-01-30 13:15:17 +01:00
Marian Buschsieweke
c00886ac39
drivers/ltc4150: (Re-)implemented LTC4150 driver
The LTC4150 is a coulomb counter (a.k.a. battery sensor or bidirectional
current sensor) that is used in the MSBA2 board and available for little money
as easy to use break out board.
2019-01-28 13:44:16 +01:00
steffen
2ff2b2c1d7 drivers: Initial support for TPS6274x converter
drivers/tps6274x: initial support step-down converter
tests/driver_tps6274x: Added testcase for the step-down converter
boards/jiminy-mega256rfr2: Added TPS6274x config
2019-01-10 00:00:02 +01:00
Schorcht
74e1ab220c drivers: add driver for CCS811 gas sensor 2018-12-20 12:42:44 +01:00
Marian Buschsieweke
003c04bd4c
Merge pull request #10012 from gschorcht/drivers_sht3x
drivers: sht3x temperature and humidity sensor
2018-12-03 10:43:16 +01:00
Schorcht
9d59e27d41 drivers: add SHT3X humidity/temperature sensor 2018-11-21 08:48:20 +01:00
danpetry
99ae495226
Merge pull request #10011 from leandrolanzieri/pr/drivers/ds18
drivers/ds18: Add Maxim Integrated 1-Wire temperature sensor driver
2018-10-25 17:26:10 +02:00
Frits Kuipers
8b8790c18f drivers/ds18: Add Maxim Integrated ds18 driver
tests/driver_ds18: Add test application for DS18B20 sensor.

tests/driver_ds18: Add whitelist of boards
2018-10-24 16:02:05 +02:00
danpetry
a1a834a726 drivers/tsl4531x: Add power modes; redesign
Changes include:
- Implementation of two power modes for the driver: low and high
- Redesign and API change to the description in tsl4531x.h
- Full documentation
- Changing file structure and implementation to fit best practices as
  described in
  https://github.com/RIOT-OS/RIOT/wiki/Guide%3A-Writing-a-device-driver-in-RIOT
- Including I2C addresses for the rest of the range
2018-10-23 17:26:28 +02:00
Juan Carrano
63dcc18c55 drivers/tsl4531x: Add driver for TSL45315 illuiminance sensor.
Missing run modes and power saving configurations, but otherwise
functional.
2018-10-23 17:26:28 +02:00
1ca44cf072 drivers/vcnl40x0: initial implementation 2018-10-15 11:44:10 +02:00
Semjon Kerner
b24de4a22a drivers/srf04: initial driver implementation 2018-09-20 15:18:49 +02:00
semjonkerner
83711b4819 drivers/Makefile.dep: order modules alphabetically 2018-09-20 11:00:21 +02:00
semjonkerner
603c04e2cc drivers/Makefile.dep: delete duplicate srf02 module 2018-09-20 11:00:21 +02:00
Joakim Nohlgård
ace717ee27 drivers: Add dep on periph_gpio_irq in drivers using GPIO IRQ 2018-08-29 08:53:20 +02:00
Joakim Nohlgård
bf851482b2 drivers: dep: Add missing xbee periph deps 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
deacf9c4a7 drivers: dep: Add missing srf08 periph_i2c dep 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
2d7c43f223 drivers: dep: Add missing srf02 deps 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
00f5177d78 drivers: dep: Add missing pcd8544 periph deps 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
af6db2fe28 drivers: dep: Add missing nvram_spi periph_spi dep 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
4a7a5cf5e3 drivers: dep: Add missing nrf24l01p deps 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
9ad69eaba9 drivers: dep: Add missing mq3 periph_adc dep 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
1858d40594 drivers: dep: Add missing lsm303dlhc periph_i2c dep 2018-08-26 08:10:13 +02:00
Joakim Nohlgård
3be0913434 drivers: dep: Add missing lps331ap periph_i2c dep 2018-08-26 08:10:13 +02:00