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

6550 Commits

Author SHA1 Message Date
Marian Buschsieweke
d9863c6b3c
boards/adafruit-metro-m4-express: initial port
This adds the board specification of the Adafruit Metro M4 Express [1].
The significance of this board is that it is compatible with both
classical SPI Arduino Shields using the ISP header for SPI
(such as `shield_w5100`) and more recent shields using D11/D12/D13 as
SPI (such as `shield_llcc68`).

[1]: https://learn.adafruit.com/adafruit-metro-m4-express-featuring-atsamd51/overview
2024-10-22 15:54:45 +02:00
Marian Buschsieweke
7f68acbd0b
boards/adafruit-grand-central-m4-express: provide arduino features
The board is compatible with Arduino UNO and Arduino MEGA shields and
has an ISP connector, so this adds the corresponding features.

This adds the Arduino I/O-mapping for the ISP SPI and provides the
corresponding feature.

It appears that the SPI on D11/D12/D13 cannot be provided by a SERCOM,
this is under clarification at [1]. For now, no I/O mapping for that
SPI bus is provided.

[1]: https://forums.adafruit.com/viewtopic.php?t=214093
2024-10-10 10:23:24 +02:00
Mikolai Gütschow
f0e6776d40
treewide: apply codespell corrections 2024-10-09 13:03:52 +02:00
benpicco
0e20bfd2b9
Merge pull request #20845 from thingsat/pr/add_can_to_board_nucleo-l432kc
boards/nucleo-l432kc: enable CAN support
2024-10-07 16:08:21 +00:00
Didier DONSEZ
84ec09f3cf boards/nucleo-l432kc: add configuration CAN peripheral
Signed-off-by: Didier DONSEZ <didier.donsez@gmail.com>
2024-10-07 17:35:10 +02:00
Marian Buschsieweke
31a2477d48
boards/adafruit-grand-central-m4-express: pimp doc
- use `@image` instead of inline images for better aesthetics,
  especially on mobile form factors (where the image before overflowed
  the screen width)
- add pinout diagram
- use correct units
2024-10-05 23:33:44 +02:00
Marian Buschsieweke
48976a85f6
boards/adafruit-grand-central-m4-express: add OpenOCD config
This allows debugging and flashing the board using the standard CMSIS
SWD header (the 10 pin 1.27 mm pitch one) available on the board.
2024-10-05 23:12:13 +02:00
Marian Buschsieweke
cbf06649aa
boards/common/arduino-zero: Add Arudino SPI mapping
The Arduino Zero based boards already provided the feature
`arduino_spi`, but were missing the corresponding mapping. This fixes
the issue by adding the SPI bus numbers for the ISP SPI bus and the
D11D12D13 SPI bus.

(And in order to actually add the D11D12D13 SPI bus, the `periph_conf.h`
was extended to provide an SPI configuration for it.)
2024-10-01 18:27:33 +02:00
benpicco
0cea359db6
Merge pull request #20856 from dylad/pr/cpu/saml1x/compat_headers
boards/saml1x: convert bitfields to new masks name
2024-09-13 16:15:30 +00:00
krzysztof-cabaj
b74c4236c8 boards/nucleo144-l4: add pinout source 2024-09-10 17:44:04 +02:00
krzysztof-cabaj
911cc15129 boards/nucleo144-f7: add source to pinouts 2024-09-10 17:30:16 +02:00
krzysztof-cabaj
882af4ea9d boards/nucleo144-f4: add pinout source 2024-09-10 11:27:49 +02:00
krzysztof-cabaj
841d0a0dfd boards/nucleo144-f3 add pinout source 2024-09-09 16:09:19 +02:00
krzysztof-cabaj
9ecbeae90e boards/nucleo144-f2: add pinout source 2024-09-09 14:03:45 +02:00
Dylan Laduranty
82ce32ee10 boards/saml1x: convert bitfields to new masks name
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2024-09-08 15:17:34 +02:00
krzysztof-cabaj
6b55e1c93b boards/nucleo-g474re: add MCU table 2024-09-04 17:26:31 +02:00
krzysztof-cabaj
8cd4369d00 boards/nucleo-g474re: add details of pinout source 2024-08-31 22:49:34 +02:00
krzysztof-cabaj
488b194714 boards/nucleo-g431rb: add MCU table 2024-08-30 16:24:27 +02:00
krzysztof-cabaj
ef523555f5 boards/nucleo-g431rb: add pinout source details 2024-08-29 21:36:01 +02:00
benpicco
b056060bd8
Merge pull request #20832 from krzysztof-cabaj/nucleo-g431rb-g474re-pinouts
boards/nucleo-g431rb & g474re: add pinouts to boards doc page
2024-08-27 09:14:37 +00:00
chrysn
48f156f501
Merge pull request #20833 from chrysn-pull-requests/leds-provided-on-demand
drivers/led: Allow LEDn_ON to be disabled by other modules
2024-08-26 09:45:38 +00:00
chrysn
7ea574fd20 boards/particle-xenon: Don't provide LED[012] if they are used by SAUL
Otherwise they show as provided but do not have any effect.
2024-08-26 11:12:51 +02:00
krzysztof-cabaj
aff4bd4f4d boards/nucleo-g474re: add pinout to doc page 2024-08-23 21:07:07 +02:00
krzysztof-cabaj
287a4b3379 boards/nucleo-g431rb: add pinout to board page 2024-08-23 20:54:09 +02:00
chrysn
ffcd646217 boards/ek-lm4f120x: Change internal LED macro for C2Rust compatibility
C preprocessor defines in non-function form are assumed by C2Rust to be
constant if they are an expression and not a statement; the LED_PORT was
the only place in the code where that was wrong, and led to compiler
errors due to the value not being constant.

Altering the internal macro to use function form sidesteps that issue.
The generally preferred alternative of using a `const` is unavailable in
this case because the dereferencing operator is already part of the
vendor header file cpu/stellaris_common/include/vendor/cortex-m4-def.h.

The changed macro is documented as required by doccheck. The doccheck
rule that grandfathered in the LED_PORT macro as allowed undocumented is
not removed because it is also used in other board.h files.
2024-08-23 13:48:44 +02:00
krzysztof-cabaj
0ea05046f9 boards/nucleo-g071rb: add MCU table to doc page 2024-08-21 17:40:15 +02:00
krzysztof-cabaj
f24254620c boards/nucleo-g070rb: add MCU table to doc page 2024-08-20 20:48:19 +02:00
krzysztof-cabaj
9da68b0b61 boards/nucleo-g071rb: add pinout to documentation page 2024-08-19 14:39:55 +02:00
krzysztof-cabaj
8f3ca72681 boards/nucleo-g070rb: add pinout to documentation page 2024-08-19 14:12:35 +02:00
krzysztof-cabaj
03c700f1d6 boards/nucleo-f439zi: add full ADC config and doxygen doc 2024-08-16 13:04:15 +02:00
krzysztof-cabaj
7f97c2143e boards/nucleo-f439zi: add initial ADC support 2024-08-16 10:00:23 +02:00
krzysztof-cabaj
ba3878050a boards/stm32l0538-disco: add pinout to documentation page 2024-08-09 12:01:57 +02:00
krzysztof-cabaj
abc46d7538 boards/stm32l476g-disco: add pinout to documentation page 2024-08-07 11:06:09 +02:00
benpicco
cf1bb15c86
Merge pull request #20807 from krzysztof-cabaj/stm32l476g-PWM
boards/stm32l476g-disco: add PWM support
2024-08-05 19:10:11 +00:00
krzysztof-cabaj
72f8a8f268 boards/stm32l476g-disco: add PWM config and doxygen doc 2024-08-05 17:48:20 +02:00
Marian Buschsieweke
22df6cc6e3
Merge pull request #20804 from krzysztof-cabaj/nucleo-l053r8-DOC
boards/nucleo-l053r8: MCU table addition to doc page
2024-08-05 14:09:53 +00:00
krzysztof-cabaj
b2ef0c67d7 boards/stm32l476g-disco: add initial PWM config 2024-08-05 16:07:04 +02:00
Marian Buschsieweke
5a02899457
boards/weact-g030f6: fix use with stdio_rtt
Running

    USEMODULE=stdio_rtt make BOARD=weact-g030f6 -C ... flash term

failed due the programmer not being specified by the time the serial
is configured:

    makefiles/tools/serial.inc.mk:44: "Warning: No RIOT_TERMINAL set,
    but using stdio_rtt: The default terminal is likely not to work."

This reorders the setup of the board to first configure the programmer
and then the serial, so that using stdio_rtt now works out of the box.
2024-08-04 10:28:41 +02:00
Marian Buschsieweke
97b91b4f8f
boards/stm32: use GPIO LL for LEDs
This fixes a race in `LED<NUM>_TOGGLE`, which is a read-copy-write
operation. Any access to a GPIO pin on the same GPIO port that
happens concurrently could result in data corruption. Using the
GPIO LL API, which is thread-safe, fixes the issue.

Note: The used GPIO LL functions will work even in when the GPIO LL
      module is not used.
2024-08-02 09:55:24 +02:00
Marian Buschsieweke
36e8526046
drivers/periph_gpio_ll: change API to access GPIO ports
The API was based on the assumption that GPIO ports are mapped in memory
sanely, so that a `GPIO_PORT(num)` macro would work allow for constant
folding when `num` is known and still be efficient when it is not.

Some MCUs, however, will need a look up tables to efficiently translate
GPIO port numbers to the port's base address. This will prevent the use
of such a `GPIO_PORT(num)` macro in constant initializers.

As a result, we rather provide `GPIO_PORT_0`, `GPIO_PORT_1`, etc. macros
for each GPIO port present (regardless of MCU naming scheme), as well as
`GPIO_PORT_A`, `GPIO_PORT_B`, etc. macros if (and only if) the MCU port
naming scheme uses letters rather than numbers.

These can be defined as macros to the peripheral base address even when
those are randomly mapped into the address space. In addition, a C
function `gpio_port()` replaces the role of the `GPIO_PORT()` and
`gpio_port_num()` the `GPIO_PORT_NUM()` macro. Those functions will
still be implemented as efficient as possible and will allow constant
folding where it was formerly possible. Hence, there is no downside for
MCUs with sane peripheral memory mapping, but it is highly beneficial
for the crazy ones.

There are also two benefits for the non-crazy MCUs:
1. We can now test for valid port numbers with `#ifdef GPIO_PORT_<NUM>`
    - This directly benefits the test in `tests/periph/gpio_ll`, which
      can now provide a valid GPIO port for each and every board
    - Writing to invalid memory mapped I/O addresses was treated as
      triggering undefined behavior by the compiler and used as a
      optimization opportunity
2. We can now detect at compile time if the naming scheme of the MCU
   uses letters or numbers, and produce more user friendly output.
    - This is directly applied in the test app
2024-08-02 09:55:24 +02:00
krzysztof-cabaj
95102fdbe6 boards/nucleo-l053r8: MCU table addition to doc page 2024-08-02 09:04:59 +02:00
krzysztof-cabaj
c1a33faeb5 boards/stm32l476g-disco: add doxygen doc to ADC config 2024-07-19 12:29:34 +02:00
krzysztof-cabaj
098a34452a boards/stm32l476g-disco: add ADC support 2024-07-19 11:50:39 +02:00
Mikolai Gütschow
bb97445b20
boards/*: include periph/gpio.h in board.h 2024-07-12 15:02:43 +02:00
Dylan Laduranty
e1e5f75b18
Merge pull request #20773 from crasbe/pr/wb55_adc
cpu/stm32: add ADC support for WB55
2024-07-08 09:33:52 +00:00
crasbe
25b3a580b6 boards/p-nucleo-wb55: enable ADC support 2024-07-08 11:19:00 +02:00
krzysztof-cabaj
02ecded5ae boards/nucleo-l452re: add doxygen doc to ADC 2024-07-06 12:27:51 +02:00
krzysztof-cabaj
00114972ab boards/nucleo-l452re: add ADC support 2024-07-06 12:20:23 +02:00
krzysztof-cabaj
194e18cf44 boards/stm32l0538-disco: doc improvements 2024-06-28 16:35:48 +02:00
krzysztof-cabaj
a6a731d300 boards/stm32l0538-disco: doc update 2024-06-26 15:05:36 +02:00