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

2415 Commits

Author SHA1 Message Date
Jose Alamos
ab5418ebab at86rf2xx: report CRC error in basic mode 2020-04-08 19:14:45 +02:00
Jose Alamos
d4b0aff8cf at86rf2xx: implement basic mode 2020-04-08 19:14:45 +02:00
Jose Alamos
69eb3c7fe2 at86rf2xx: add basic mode PHY state 2020-04-08 19:14:44 +02:00
067b324645
Merge pull request #11945 from benpicco/EEPROM-m95m01
drivers: add driver for AT25xxx family of EEPROMs
2020-04-07 13:19:21 +02:00
Benjamin Valentin
97fc2f2af1 drivers: add AT25xxx series EEPROM
This adds a driver for the ST M95xxx series SPI EEPROMs.
The driver has been tested with the M95M01 EEPROM, but should
work with other chips from that family.

SPI-EEPROMs from other vendors from the families AT25xxx, 25AAxxx,
25LCxxx, CAT25xxx & BR25Sxxx should also in the same way.
2020-04-07 12:31:46 +02:00
benpicco
750db2a910
Merge pull request #13788 from benpicco/drivers/at86rf215_shutdown_fix
drivers/at86rf215: return error when switching state while busy
2020-04-03 17:50:48 +02:00
Benjamin Valentin
46544c5d7a drivers/at86rf215: add comment to _tx_ongoing() 2020-04-03 12:48:52 +02:00
Francisco
d4580b4c36
Merge pull request #13750 from benpicco/drivers/at86rf215_fix_wakeup
drivers/at86rf215: fix reset after deep sleep
2020-04-03 09:04:51 +02:00
Leandro Lanzieri
c74544c9ec
Merge pull request #13349 from maribu/dependency-or
build system: Restructure dependency resolution
2020-04-02 10:40:44 +02:00
Benjamin Valentin
5ed88ecb0a drivers/at86rf215: unexport at86rf215_block_while_busy()
It's a private function that should not be used lightly.
2020-04-01 23:14:46 +02:00
Benjamin Valentin
8c6791b136 drivers/at86rf215: return error when switching state while busy
Previously the function attempted to block here and manually service
the ISR.
This lead to unexpected results, in particular messages queuing up in
the threads message queue.

The result was that the radio would not end up in the correct state.
E.g. sending SLEEP to both interfaces while a transmission was ongoing
would lead to the interfaces waking up again.

With this patch the operation will just return -ERRNO so the caller can
try again.

To reproduce, try the attached patch for the `gnrc_networking` example:

On master you will find that the radio still consumes ~2.4mA after 'shutdown'.
(It is in fact in the state TRXOFF as it woke up again)
With this change the radio should consume less than 1µA (DEEP SLEEP).

diff --git a/examples/gnrc_networking/main.c b/examples/gnrc_networking/main.c
index 6301f4291d..93b96eb939 100644
--- a/examples/gnrc_networking/main.c
+++ b/examples/gnrc_networking/main.c
@@ -23,12 +23,47 @@
 #include "shell.h"
 #include "msg.h"

+#include "periph/pm.h"
+
+#include "net/netopt.h"
+#include "net/gnrc/netif.h"
+
 #define MAIN_QUEUE_SIZE     (8)
 static msg_t _main_msg_queue[MAIN_QUEUE_SIZE];

 extern int udp_cmd(int argc, char **argv);

+extern void send(char *addr_str, char *port_str, char *data, unsigned int num,
+                 unsigned int delay);
+
+static int send_and_shutdown(int argc, char **argv)
+{
+    (void) argc;
+    (void) argv;
+
+    /* the address must not exist */
+    char addr[] = "fe80::2068:3123:59f5:d238%7";
+    char port[] = "1234";
+    char data[] = "Hello World!";
+
+    send(addr, port, data, 1, 0);
+
+    /* disable radio */
+    gnrc_netif_t* netif = NULL;
+    netopt_state_t state = NETOPT_STATE_SLEEP;
+    while ((netif = gnrc_netif_iter(netif))) {
+        /* retry while busy */
+        while (gnrc_netapi_set(netif->pid, NETOPT_STATE, 0, &state,
+               sizeof(netopt_state_t)) == -EBUSY);
+    }
+
+    pm_set(0);
+
+    return 0;
+}
+
 static const shell_command_t shell_commands[] = {
+    { "shutdown", "turn off the radio & shut down", send_and_shutdown },
     { "udp", "send data over UDP and listen on UDP ports", udp_cmd },
     { NULL, NULL, NULL }
 };
diff --git a/examples/gnrc_networking/udp.c b/examples/gnrc_networking/udp.c
index e8a559846e..cb80855b76 100644
--- a/examples/gnrc_networking/udp.c
+++ b/examples/gnrc_networking/udp.c
@@ -36,7 +36,7 @@ static gnrc_netreg_entry_t server = GNRC_NETREG_ENTRY_INIT_PID(GNRC_NETREG_DEMUX
                                                                KERNEL_PID_UNDEF);

-static void send(char *addr_str, char *port_str, char *data, unsigned int num,
+void send(char *addr_str, char *port_str, char *data, unsigned int num,
                  unsigned int delay)
 {
     gnrc_netif_t *netif = NULL;
2020-04-01 23:08:44 +02:00
benpicco
660b1a9b5f
Merge pull request #10083 from gschorcht/drivers_hmc5883l
drivers: add driver for Honeywell HMC5883L magnetometer
2020-04-01 14:49:34 +02:00
benpicco
d1ccfe6c9a
Merge pull request #13778 from akshaim/fxos8700_CT_Config
drivers/include/fxos8700.h : Compile Configs
2020-04-01 13:43:01 +02:00
Gunar Schorcht
df612a3790 sys/auto_init: add hmc5883l device driver 2020-04-01 13:37:22 +02:00
Gunar Schorcht
e6090adb3f drivers: add hmc5883l device driver 2020-04-01 13:37:22 +02:00
Leandro Lanzieri
6f30086609
Merge pull request #13775 from akshaim/ds1307_CT_Config
drivers/include/ds1307.h : Compile Configs
2020-04-01 13:28:36 +02:00
Leandro Lanzieri
bb6fa878a2
Merge pull request #13770 from akshaim/dose_CT_Config
drivers/include/dose.h : Compile Configs
2020-04-01 13:10:01 +02:00
Akshai M
27458701b6 drivers/include/fxos8700.h : Compile Configs 2020-04-01 14:53:44 +05:30
Akshai M
5e97feb88e drivers/include/dose.h : Compile Configs 2020-04-01 14:35:45 +05:30
Akshai M
c94abb5a36 drivers/include/ds1307.h : Compile Configs 2020-04-01 13:42:45 +05:30
Akshai M
9e3ea3e7b6 drivers/include/ads101x.h: Tagged Compile Time Parameters 2020-04-01 12:50:02 +05:30
Marian Buschsieweke
007ac492ff
drivers/ws281x: Use FEATURES_REQUIRED_ANY 2020-04-01 09:12:50 +02:00
Benjamin Valentin
1ed125dc06 drivers/at86rf215: document AT86RF215_TRIM_VAL
There is a compile-time configurable TRIM value.
This adds documentation for it.
2020-03-31 22:54:53 +02:00
benpicco
baa2024241
Merge pull request #13766 from akshaim/at_CT_Config
drivers/include/at.h : Tagged Compile Time Configurations
2020-03-31 21:51:44 +02:00
Akshai M
769fd0840c drivers/include/at86rf215.h: Tagged Compile Time Configuration 2020-03-31 22:20:02 +05:30
Akshai M
df9814df12 drivers/include/at.h : Tagged Compile Time Configurations 2020-03-31 21:45:16 +05:30
Francisco
1a8b35f54b
Merge pull request #13377 from leandrolanzieri/pr/kconfig_migrate/drivers/periph_wdt
drivers/periph/wdt: Expose configurations to Kconfig
2020-03-31 16:36:36 +02:00
benpicco
e7c1605119
Merge pull request #13691 from benpicco/tests/driver_netdev_common
tests/driver_netdev_common: add compile-test for network drivers
2020-03-31 14:50:28 +02:00
Leandro Lanzieri
8cca9bfc28
drivers/wdt: Expose configuration to Kconfig 2020-03-31 13:39:38 +02:00
Leandro Lanzieri
00b71a2708
drivers/wdt: Move WDT_WARNING_PERIOD to 'CONFIG_' namespace 2020-03-31 13:39:37 +02:00
Benjamin Valentin
611f4161d6 drivers/at86rf215: fix reset after deep sleep
When the radio is in DEEP SLEEP, reading the state register will return 0.
This makes the reset routine abort early even though the device is connected
and still waking up.

Instead, just add a timeout to the polling of the WAKEUP IRQ bit.
In practise it has shown that the loop will be taken two times on 'normal'
reset and four times when the radio was in DEEP SLEEP.

Polling 255 times sure does not hurt.

To reproduce the issue, put both interfaces into SLEEP mode,
then reboot the module:

    ifconfig 7 set state sleep
    ifconfig 8 set state sleep
    reboot
2020-03-29 19:44:40 +02:00
Akshai M
58516f7e2a drivers/include/sx127x.h: Tagged Compile Time Configuration 2020-03-27 19:06:10 +05:30
Martine S. Lenders
62d48d5bf3
gnrc_netif: document new *_create() out parameter as such 2020-03-26 14:37:44 +01:00
Martine Lenders
061eb88c05
Merge pull request #12994 from jia200x/pr/gnrc_netif_desc_alloc
gnrc_netif: implementation of dynamic GNRC_NETIF_NUMOF approach
2020-03-26 14:30:44 +01:00
Jose Alamos
67ed9defbe gnrc_netif_xxx_create: use external netif allocation 2020-03-26 11:12:23 +01:00
Marian Buschsieweke
937361856d
Merge pull request #13702 from ccoors/feature/esp32-ws281x
drivers/ws281x: Add support for esp32
2020-03-25 21:39:40 +01:00
Christian Friedrich Coors
08703766fc drivers/ws281x: Add ESP32 support 2020-03-25 17:25:35 +01:00
Dylan Laduranty
c4a8c63002
Merge pull request #13693 from benpicco/boards/same54-xpro-ext
boards/same54-xpro: configure remaining EXT connectors
2020-03-25 14:08:13 +01:00
Francisco Molina
9fa0099d62
cpu/stm32wb: add flashpage support
- Since flash access is shared with CPU2 we resize ROM_LEN
  according to CPU2 secure flash memmory area.
- Add assert to prevent unauthorized reads from CPU2 secure
  flash area
2020-03-25 09:29:56 +01:00
6faae9a9c9
Merge pull request #13657 from aabadie/pr/boards/backlight_common_defines
boards/pinetime: add defines for controlling the backlight pin
2020-03-24 13:52:57 +01:00
1498a7ada2
drivers/disp_dev: add help functions for backlight 2020-03-24 12:02:50 +01:00
Gunar Schorcht
4d306a4636 drivers/sht3x: fix broken links 2020-03-24 10:38:40 +01:00
Gunar Schorcht
3542c7af0e drivers/sdcard_spi: fix broken links 2020-03-24 10:38:40 +01:00
Gunar Schorcht
1d79de0c92 drivers/ccs811: fix broken links 2020-03-24 10:38:40 +01:00
Benjamin Valentin
f673e275f3 drivers/at86rf215: adapt default config to same54-xpro EXT1
Previously the default config was for connecting the REB215-XPRO
module to EXT3 on same54-xpro.

Since now more SPI buses are configured on same54-xpro and the default
config also serves as a compile test for boards with only one SPI bus,
connect the module to the (new) first SPI bus by default.
2020-03-24 01:16:47 +01:00
Benjamin Valentin
c4f248d51c drivers/dose: fix declaration of signal() 2020-03-23 20:35:54 +01:00
benpicco
e725111562
Merge pull request #13656 from gschorcht/drivers/apds9xx_fix_wait_long_init
drivers/apd99xx: fix wait long initialization
2020-03-22 17:26:22 +01:00
Francisco
cdbf0b2d69
Merge pull request #13583 from benpicco/at86rf215-minimal
drivers/at86rf215: add basic support for AT86RF215 dual-band radio
2020-03-20 09:33:50 +01:00
benpicco
5435792034
Merge pull request #12277 from benemorius/pr/kw41zrf
drivers: add kw41zrf
2020-03-20 00:49:56 +01:00
Joakim Nohlgård
5bd67d88a8 drivers/kw41zrf: Transceiver driver for the KW41Z radio
This is the radio found in NXP Kinetis KW41Z, KW21Z. Only 802.15.4 mode
is implemented (KW41Z also supports BLE on the same transceiver).

The driver uses vendor supplied initialization code for the low level
XCVR hardware, these files were imported from KSDK 2.2.0 (framework_5.3.5)
2020-03-19 17:00:04 -05:00