The current ADC settings set the reference to the internal 1V
reference with a x1 gain. This means that the maximum voltage
that can be measured with any analog input is 1V, which is
usually not sufficient for most applications.
Therefore the default value is changed to use the external VDDA
input, which is 3.3V (internally divided by 2) and the gain to
x1/2. This allows to measure voltages up to VDDA on any analog
input.
- Rename all `arduino_pinmap.h` to `arduino_iomap.h`
- An empty `arduino_pinmap.h` that just includes `arduino_iomap.h`
is provided for backward compatibility
- Move all info from `arduino_board.h` into the new file as trivial
macros, so that they can also be used outside of sketches
- The new name reflects the fact not just pin mappings, but also
other I/O features such as PWMs are mapped
- Drop all `arduino_board.h`
- `arduino_board.h` and `arduino_iomap.h` now provide the exact
same information, just in a different format
- a generic `arduino_board.h` is provided instead that just
uses the info in `arduinio_iomap.h` and provides them in the
format the code in `sys/arduino` expects it
- Add fine grained features to indicate for mappings
- availability of mappings for analog pins, DAC pins, PWM pins,
UART devices, SPI/I2C buses to the corresponding RIOT
identification can now be expressed:
- `arduino_pins`: `ARDUINO_PIN_0` etc. are available
- `arduino_analog`: `ARDUINO_A0` etc. are available
- `arduino_pwm`: `ARDUINO_PIN_13_PWM_DEV` etc. are available
- `arduino_dac`: `ARDUINO_DAC0` etc. are available
- `arduino_uart`: `ARDUINO_UART_D0D1` or similar are available
- `arduino_spi`: `ARDUINO_SPI_ISP` or similar are available
- `arduino_i2c`: `ARDUINO_I2C_UNO` or similar are available
- mechanical/electrical compatibility with specific form factors
can now be expressed as features:
- `aruino_shield_nano`: Arduino NANO compatible headers
- `aruino_shield_uno`: Arduino UNO compatible headers
- `aruino_shield_mega`: Arduino MEGA compatible headers
- `aruino_shield_isp`: ISP header is available
This provides the groundwork to implement shield support as modules
that can rely on the I/O mappings, rather than having to provide a
configuration per board.
In the feather-m0 board the sx127x pin parameters are hardcoded for the
feather-m0-lora variant, but this is not compatible with other
configurations.
For example in the feather-m0 adalogger PA06 and PA08 are used for the
SD card. When combined with the RFM95W FeatherWing the IRQ/CS/RST pins
must be wired, and then the sx127x pins must be configured to match the
wiring (which will be necessarily different from the lora variant
configuration).
All derived `feather-m0-*` boards have all features of the `feather-m0` board and `Makefile.features` of derived `feather-m0-`*` boards just include `Makefile.features` of the `feather-m0` base board. Therefore a base board definition is used in Kconfig for all `feather-m0*` boards.
This feature is only used to blacklist stdio via CDC ACM.
Introduce the `highlevel_stdio` feature instead to indicate
that stdio functionality requires a running thread to print
anything