Browse Source
Add support for the Antmicro's Myra SiP Baseboard. The board uses Antmicro's Myra SiP which integrates STM32G491XX MCU and its SoC configuration. Signed-off-by: Jakub Wasilewski <jwasilewski@internships.antmicro.com> Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>pull/84267/head
18 changed files with 717 additions and 0 deletions
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
.. _boards-antmicro: |
||||
|
||||
Antmicro |
||||
### |
||||
|
||||
.. toctree:: |
||||
:maxdepth: 1 |
||||
:glob: |
||||
|
||||
**/* |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
# Copyright (c) 2024 Antmicro <www.antmicro.com> |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
if BOARD_MYRA_SIP_BASEBOARD |
||||
|
||||
config SPI_STM32_INTERRUPT |
||||
default y |
||||
depends on SPI |
||||
|
||||
endif # BOARD_MYRA_SIP_BASEBOARD |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# Copyright (c) 2024 Antmicro |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config BOARD_MYRA_SIP_BASEBOARD |
||||
select SOC_MYRA |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
# Copyright (c) 2024 Antmicro <www.antmicro.com> |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
set(SUPPORTED_EMU_PLATFORMS renode) |
||||
set(RENODE_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/support/myra_sip_baseboard.resc) |
||||
set(RENODE_UART sysbus.lpuart1) |
||||
|
||||
board_runner_args(openocd "--config=${BOARD_DIR}/support/openocd_myra_sip_baseboard.cfg") |
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
board: |
||||
name: myra_sip_baseboard |
||||
full_name: Myra SiP Baseboard |
||||
vendor: antmicro |
||||
socs: |
||||
- name: myra |
After Width: | Height: | Size: 34 KiB |
@ -0,0 +1,260 @@
@@ -0,0 +1,260 @@
|
||||
.. zephyr:board:: myra_sip_baseboard |
||||
|
||||
Overview |
||||
******** |
||||
|
||||
The Myra SiP Baseboard features Antmicro's **Myra** SiP, which integrates the **STM32G491REI6** MCU, |
||||
128kB FRAM, and FTDI FT231XQ USB to UART converter. The board is equipped with temperature, |
||||
humidity, and pressure sensors, designed to help monitor conditions in server rooms. |
||||
|
||||
The sensors are placed on a separate island that is detachable from the main PCB and can be |
||||
installed directly in the required place. It provides local storage for data logging and a battery |
||||
backup for protection against data loss. The board can be used as a building block for PoC solutions |
||||
for monitoring environmental parameters. |
||||
|
||||
Key features include: |
||||
|
||||
- STM32G491REI6 MCU (Cortex-M4, 170 MHz) |
||||
- 128 KB Fujitsu FRAM |
||||
- FTDI FT231XQ USB to UART converter |
||||
- 50 mm x 26.5 mm PCB |
||||
- USB-C Connector for data and power |
||||
- SHT45 temperature + humidity sensor |
||||
- BME280 temperature + humidity + pressure sensor |
||||
- QWIIC connectors for peripheral expansion |
||||
- RTC with battery backup |
||||
|
||||
More information about the board can be found on `Antmicro's Open Hardware Portal <https://openhardware.antmicro.com/boards/environment-sensor-sip-baseboard>`_. |
||||
|
||||
Hardware |
||||
******** |
||||
|
||||
Myra SiP provides the following hardware: |
||||
|
||||
- **STM32G491REI6 MCU**: |
||||
|
||||
- ARM Cortex-M4 CPU with FPU, up to 170 MHz |
||||
- Clock Sources: |
||||
|
||||
- 4 to 48 MHz external crystal oscillator (HSE) |
||||
- 32 kHz crystal oscillator for RTC (LSE) |
||||
- Internal 16 MHz RC (±1%) |
||||
- Internal low-power 32 kHz RC (±5%) |
||||
- 2 PLLs for system clock, USB, audio, ADC |
||||
- RTC: Real-time clock with hardware calendar, alarms, and calibration |
||||
- Timers: |
||||
|
||||
- 1x 32-bit timer and 2x 16-bit timers with up to 4x IC/OC/PWM or pulse counter and quadrature |
||||
(incremental) encoder input |
||||
- 3x 16-bit advanced motor control timers with up to 8x PWM channels, dead time generation, |
||||
emergency stop |
||||
- 1x 16-bit timer with 2x IC/OC, one OCN/PWM, dead time generation, emergency stop |
||||
- 2x watchdog timers (independent, window) |
||||
- 2x 16-bit basic timers |
||||
- SysTick timer |
||||
- 1x low-power timer |
||||
- I/Os: Up to 86 fast I/Os, most 5V tolerant |
||||
- Memory: |
||||
|
||||
- 512 KB Flash memory with ECC and PCROP protection |
||||
- 96 KB SRAM including 32 KB with hardware parity check |
||||
- Analog peripherals: |
||||
|
||||
- 3x 16-bit ADCs with up to 36 channels, hardware oversampling, and resolution up to 16-bit |
||||
- 4x 12-bit DAC channels |
||||
- 4x ultra-fast rail-to-rail analog comparators |
||||
- 4x operational amplifiers with built-in PGA |
||||
- Internal temperature sensor and voltage reference with support for three output voltages |
||||
(2.048 V, 2.5 V, 2.9 V) |
||||
- Communication Interfaces: |
||||
|
||||
- 2x FDCAN controllers supporting flexible data rate |
||||
- 3x I2C Fast Mode Plus (1 Mbit/s) with 20 mA current sink, SMBus/PMBus support |
||||
- 5x USART/UART (ISO 7816, LIN, IrDA, modem control) |
||||
- 1x LPUART |
||||
- 3x SPI interfaces (2x with multiplexed half-duplex I²S) |
||||
- 1x SAI (serial audio interface) |
||||
- USB 2.0 full-speed with LPM and BCD support |
||||
- IRTIM (infrared interface) |
||||
- USB Type-C™ / USB Power Delivery (UCPD) |
||||
- Other Peripherals: |
||||
|
||||
- 16-channel DMA controller |
||||
- True Random Number Generator (RNG) |
||||
- CRC calculation unit, 96-bit unique ID |
||||
- Development support: SWD, JTAG, Embedded Trace Macrocell™ |
||||
- ECOPACK2® compliant packages |
||||
|
||||
- **128 KB Fujitsu MB85RS1MT FRAM**: Local storage for data logging, allowing non-volatile memory storage. |
||||
|
||||
- **FTDI FT231XQ USB to UART converter**: Provides a reliable USB to UART interface. |
||||
|
||||
|
||||
More information about STM32G491RE can be found here: |
||||
|
||||
- `STM32G491RE on www.st.com`_ |
||||
|
||||
Other board's peripherals: |
||||
-------------------------- |
||||
|
||||
- USB-C Connector: For data and power. |
||||
- SHT45 sensor: |
||||
|
||||
- Relative humidity accuracy: ±1.0% RH |
||||
- Operating humidity range: 0-100% RH |
||||
- Temperature accuracy: ±0.1°C |
||||
- Operating temperature range: -40°C to 125°C |
||||
- BME280 sensor: |
||||
|
||||
- Relative humidity accuracy: ±3% RH |
||||
- Temperature accuracy: ±1°C |
||||
- Pressure accuracy: ±1 hPa |
||||
- Operating temperature range: -40°C to 85°C |
||||
- Pressure range: 300-1100 hPa |
||||
- QWIIC connectors: For easy peripheral expansion. |
||||
|
||||
Supported Features |
||||
------------------ |
||||
|
||||
The Zephyr ``myra_sip_baseboard`` board target supports the following hardware features: |
||||
|
||||
+-----------+------------+-------------------------------------+ |
||||
| Interface | Controller | Driver/Component | |
||||
+===========+============+=====================================+ |
||||
| NVIC | on-chip | nested vector interrupt controller | |
||||
+-----------+------------+-------------------------------------+ |
||||
| UART | on-chip | serial port-polling; serial | |
||||
| | | port-interrupt | |
||||
+-----------+------------+-------------------------------------+ |
||||
| PINMUX | on-chip | pinmux | |
||||
+-----------+------------+-------------------------------------+ |
||||
| GPIO | on-chip | gpio | |
||||
+-----------+------------+-------------------------------------+ |
||||
| I2C | on-chip | i2c | |
||||
+-----------+------------+-------------------------------------+ |
||||
| WATCHDOG | on-chip | independent watchdog | |
||||
+-----------+------------+-------------------------------------+ |
||||
| PWM | on-chip | pwm | |
||||
+-----------+------------+-------------------------------------+ |
||||
| ADC | on-chip | adc | |
||||
+-----------+------------+-------------------------------------+ |
||||
| DAC | on-chip | dac controller | |
||||
+-----------+------------+-------------------------------------+ |
||||
| FLASH | on-chip | flash memory | |
||||
+-----------+------------+-------------------------------------+ |
||||
| EEPROM | on-chip | eeprom | |
||||
+-----------+------------+-------------------------------------+ |
||||
| NVS | on-chip | nvs | |
||||
+-----------+------------+-------------------------------------+ |
||||
| COUNTER | on-chip | rtc | |
||||
+-----------+------------+-------------------------------------+ |
||||
| SPI | on-chip | spi | |
||||
+-----------+------------+-------------------------------------+ |
||||
| die-temp | on-chip | die temperature sensor | |
||||
+-----------+------------+-------------------------------------+ |
||||
| FDCAN1 | on-chip | can controller | |
||||
+-----------+------------+-------------------------------------+ |
||||
| RTC | on-chip | rtc | |
||||
+-----------+------------+-------------------------------------+ |
||||
|
||||
Other hardware features are not yet supported on this Zephyr port. |
||||
|
||||
Connections and IOs |
||||
------------------- |
||||
|
||||
Antmicro's Myra SiP Baseboard provides the following default pin mappings for peripherals: |
||||
|
||||
.. rst-class:: rst-columns |
||||
|
||||
- LPUART_1_TX : PA2 |
||||
- LPUART_1_RX : PA3 |
||||
- I2C_1_SCL : PB8 |
||||
- I2C_1_SDA : PB9 |
||||
- SPI_CS2 : PB2 |
||||
- SPI_CS3 : PA7 |
||||
- SPI_2_SCK : PB13 |
||||
- SPI_2_MISO : PB14 |
||||
- SPI_2_MOSI : PB15 |
||||
- PWM_2_CH1 : PA5 |
||||
- USER_PB : PC13 |
||||
- LD2 : PA5 |
||||
- ADC1_IN1 : PA0 |
||||
- DAC1_OUT1 : PA4 |
||||
- USB_MCU_N : PA11 |
||||
- USB_MCU_P : PA12 |
||||
- SWDIO-JMTS : PA13 |
||||
- SWCLK-JTCK : PA14 |
||||
- JTDI : PA15 |
||||
- JTDO : PB3 |
||||
- JTRST : PB4 |
||||
- FRAM_HOLD (ACTIVE LOW) : PB10 |
||||
- FRAM_WP (ACTIVE LOW) : PB11 |
||||
- FRAM_CS (ACTIVE LOW) : PB12 |
||||
- GPIO_PC10 : PC10 |
||||
- GPIO_PC11 : PC11 |
||||
- GPIO_PC12 : PC12 |
||||
- PF0_OSC : PF0 |
||||
|
||||
System Clock |
||||
------------ |
||||
|
||||
System clock can be driven by an internal or an external oscillator, as well as by the main PLL |
||||
clock. By default, system clock is driven by PLL clock at 170MHz (boost mode selected), which in |
||||
turn, is driven by the 8MHz high speed external oscillator (HSE). While the HSE oscillator is |
||||
capable of operating at frequencies up to 48 MHz by default, in this configuration, it is |
||||
specifically set to 8 MHz. |
||||
|
||||
Serial Port |
||||
----------- |
||||
|
||||
The Myra SiP Baseboard has 5 U(S)ARTs. The Zephyr console output is assigned to LPUART1. The default |
||||
settings are 115200 8N1. |
||||
|
||||
Programming and Debugging |
||||
************************* |
||||
|
||||
Applications for the ``myra_sip_baseboard`` board target can be built and flashed in the usual way (see :ref:`build_an_application` and :ref:`application_run` for more details). |
||||
|
||||
Flashing |
||||
******** |
||||
|
||||
This board has a USB-JTAG interface and can be used with OpenOCD. |
||||
|
||||
Connect the Myra SiP Baseboard to your host computer using the USB port, then build and flash |
||||
the application. Here is an example for :zephyr:code-sample:`hello_world`. |
||||
|
||||
.. zephyr-app-commands:: |
||||
:zephyr-app: samples/hello_world |
||||
:board: myra_sip_baseboard |
||||
:goals: build flash |
||||
|
||||
Then run a serial host program to connect with the Myra SiP Baseboard, e.g. using picocom: |
||||
|
||||
.. code-block:: console |
||||
|
||||
$ picocom /dev/ttyUSB0 -b 115200 |
||||
|
||||
.. warning:: |
||||
The board has only one port that is used for both programming and the console. For this reason, it is |
||||
recommended to set ``CONFIG_BOOT_DELAY`` to an arbitrary value. This is especially important when |
||||
running twister tests on the device. You should then also use the ``--flash-before`` and |
||||
``--device-flash-timeout=120`` options: |
||||
|
||||
.. code-block:: console |
||||
|
||||
$ scripts/twister --device-testing --device-serial /dev/ttyUSB0 --device-serial-baud 115200 -p myra_sip_baseboard --flash-before --device-flash-timeout=120 -v |
||||
|
||||
Debugging |
||||
********* |
||||
|
||||
You can debug an application in the usual way. Here is an example for the |
||||
:zephyr:code-sample:`hello_world` application. |
||||
|
||||
.. zephyr-app-commands:: |
||||
:zephyr-app: samples/hello_world |
||||
:board: myra_sip_baseboard |
||||
:maybe-skip-config: |
||||
:goals: debug |
||||
|
||||
.. _STM32G491RE on www.st.com: |
||||
https://www.st.com/en/microcontrollers-microprocessors/stm32g491re.html |
@ -0,0 +1,219 @@
@@ -0,0 +1,219 @@
|
||||
/* |
||||
* Copyright (c) 2024 Antmicro <www.antmicro.com> |
||||
* |
||||
* SPDX-License-Identifier: Apache-2.0 |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
#include <zephyr/dt-bindings/input/input-event-codes.h> |
||||
#include <antmicro/myra.dtsi> |
||||
|
||||
/ { |
||||
compatible = "antmicro,myra-sip-baseboard"; |
||||
model = "Myra SiP Baseboard"; |
||||
|
||||
chosen { |
||||
zephyr,console = &lpuart1; |
||||
zephyr,shell-uart = &lpuart1; |
||||
zephyr,sram = &sram0; |
||||
zephyr,flash = &flash0; |
||||
zephyr,canbus = &fdcan1; |
||||
zephyr,code-partition = &slot0_partition; |
||||
}; |
||||
|
||||
leds: leds { |
||||
compatible = "gpio-leds"; |
||||
green_led: led_0 { |
||||
gpios = <&gpioa 5 GPIO_ACTIVE_HIGH>; |
||||
label = "User LD2"; |
||||
}; |
||||
}; |
||||
|
||||
pwmleds { |
||||
compatible = "pwm-leds"; |
||||
|
||||
green_pwm_led: green_pwm_led { |
||||
pwms = <&pwm2 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>; |
||||
}; |
||||
}; |
||||
|
||||
gpio_keys { |
||||
compatible = "gpio-keys"; |
||||
user_button: button { |
||||
label = "User"; |
||||
gpios = <&gpioc 13 GPIO_ACTIVE_LOW>; |
||||
zephyr,code = <INPUT_KEY_0>; |
||||
}; |
||||
}; |
||||
|
||||
aliases { |
||||
led0 = &green_led; |
||||
mcuboot-led0 = &green_led; |
||||
pwm-led0 = &green_pwm_led; |
||||
sw0 = &user_button; |
||||
watchdog0 = &iwdg; |
||||
volt-sensor0 = &vref; |
||||
volt-sensor1 = &vbat; |
||||
rtc = &rtc; |
||||
}; |
||||
}; |
||||
|
||||
&clk_lse { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&clk_lsi { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&clk_hsi48 { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&clk_hse { |
||||
clock-frequency = <DT_FREQ_M(8)>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&pll { |
||||
div-m = <2>; |
||||
mul-n = <85>; |
||||
div-p = <7>; |
||||
div-q = <2>; |
||||
div-r = <2>; |
||||
clocks = <&clk_hse>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&rcc { |
||||
clocks = <&pll>; |
||||
clock-frequency = <DT_FREQ_M(170)>; |
||||
ahb-prescaler = <1>; |
||||
apb1-prescaler = <1>; |
||||
apb2-prescaler = <1>; |
||||
}; |
||||
|
||||
&lpuart1 { |
||||
pinctrl-0 = <&lpuart1_tx_pa2 &lpuart1_rx_pa3>; |
||||
pinctrl-1 = <&analog_pa2 &analog_pa3>; |
||||
pinctrl-names = "default", "sleep"; |
||||
current-speed = <115200>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&i2c1 { |
||||
pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb9>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
|
||||
bme280@76 { |
||||
compatible = "bosch,bme280"; |
||||
reg = <0x76>; |
||||
}; |
||||
|
||||
sht4x@44 { |
||||
compatible = "sensirion,sht4x"; |
||||
repeatability = <2>; |
||||
reg = <0x44>; |
||||
}; |
||||
}; |
||||
|
||||
&timers2 { |
||||
status = "okay"; |
||||
|
||||
pwm2: pwm { |
||||
status = "okay"; |
||||
pinctrl-0 = <&tim2_ch1_pa5>; |
||||
pinctrl-names = "default"; |
||||
}; |
||||
}; |
||||
|
||||
stm32_lp_tick_source: &lptim1 { |
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>, |
||||
<&rcc STM32_SRC_LSI LPTIM1_SEL(1)>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&rtc { |
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000400>, |
||||
<&rcc STM32_SRC_LSE RTC_SEL(1)>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&flash0 { |
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
boot_partition: partition@0 { |
||||
label = "mcuboot"; |
||||
reg = <0x00000000 DT_SIZE_K(34)>; |
||||
}; |
||||
slot0_partition: partition@8800 { |
||||
label = "image-0"; |
||||
reg = <0x00008800 DT_SIZE_K(240)>; |
||||
}; |
||||
slot1_partition: partition@44800 { |
||||
label = "image-1"; |
||||
reg = <0x00044800 DT_SIZE_K(234)>; |
||||
}; |
||||
/* Set 4Kb of storage at the end of the 512Kb of flash */ |
||||
storage_partition: partition@7f000 { |
||||
label = "storage"; |
||||
reg = <0x0007f000 DT_SIZE_K(4)>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&iwdg { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&rng { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&adc1 { |
||||
pinctrl-0 = <&adc1_in1_pa0>; |
||||
pinctrl-names = "default"; |
||||
st,adc-clock-source = "SYNC"; |
||||
st,adc-prescaler = <4>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&die_temp { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&dac1 { |
||||
pinctrl-0 = <&dac1_out1_pa4>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&fdcan1 { |
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x02000000>, |
||||
<&rcc STM32_SRC_HSE FDCAN_SEL(0)>; |
||||
pinctrl-0 = <&fdcan1_rx_pa11 &fdcan1_tx_pa12>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&vref { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&vbat { |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&timers6 { |
||||
status = "okay"; |
||||
st,prescaler = <1>; |
||||
}; |
||||
|
||||
&timers7 { |
||||
status = "okay"; |
||||
st,prescaler = <1>; |
||||
}; |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
identifier: myra_sip_baseboard |
||||
name: Myra SiP Baseboard |
||||
type: mcu |
||||
arch: arm |
||||
toolchain: |
||||
- zephyr |
||||
- gnuarmemb |
||||
ram: 128 |
||||
flash: 512 |
||||
supported: |
||||
- nvs |
||||
- pwm |
||||
- i2c |
||||
- gpio |
||||
- usb device |
||||
- spi |
||||
- watchdog |
||||
- dma |
||||
- can |
||||
- rtc |
||||
- sensors |
||||
testing: |
||||
timeout_multiplier: 3 |
||||
renode: |
||||
uart: sysbus.lpuart1 |
||||
resc: boards/antmicro/myra_sip_baseboard/support/myra_sip_baseboard.resc |
||||
vendor: antmicro |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
# Copyright (c) 2024 Antmicro <www.antmicro.com> |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
CONFIG_SERIAL=y |
||||
CONFIG_GPIO=y |
||||
CONFIG_CLOCK_CONTROL=y |
||||
CONFIG_CONSOLE=y |
||||
CONFIG_UART_CONSOLE=y |
||||
CONFIG_ARM_MPU=y |
||||
CONFIG_HW_STACK_PROTECTION=y |
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
flash0: Memory.MappedMemory @ sysbus 0x8000000 |
||||
size: 0x80000 |
||||
|
||||
sram0: Memory.MappedMemory @ sysbus 0x20000000 |
||||
size: 0x1c000 |
||||
|
||||
timers2: Timers.STM32_Timer @ sysbus <0x40000000, +0x400> |
||||
frequency: 10000000 |
||||
initialLimit: 0xffffffff |
||||
->nvic0@28 |
||||
|
||||
timers6: Timers.STM32_Timer @ sysbus <0x40001000, +0x400> |
||||
frequency: 10000000 |
||||
initialLimit: 0xffffffff |
||||
->nvic0@54 |
||||
|
||||
timers7: Timers.STM32_Timer @ sysbus <0x40001400, +0x400> |
||||
frequency: 10000000 |
||||
initialLimit: 0xffffffff |
||||
->nvic0@55 |
||||
|
||||
clk_lse: Python.PythonPeripheral @ sysbus 0x40007000 |
||||
size: 0x4 |
||||
initable: true |
||||
filename: "scripts/pydev/rolling-bit.py" |
||||
|
||||
gpioa: GPIOPort.STM32_GPIOPort @ sysbus <0x48000000, +0x400> |
||||
|
||||
gpiob: GPIOPort.STM32_GPIOPort @ sysbus <0x48000400, +0x400> |
||||
|
||||
gpioc: GPIOPort.STM32_GPIOPort @ sysbus <0x48000800, +0x400> |
||||
|
||||
gpiod: GPIOPort.STM32_GPIOPort @ sysbus <0x48000c00, +0x400> |
||||
|
||||
gpioe: GPIOPort.STM32_GPIOPort @ sysbus <0x48001000, +0x400> |
||||
|
||||
gpiof: GPIOPort.STM32_GPIOPort @ sysbus <0x48001400, +0x400> |
||||
|
||||
gpiog: GPIOPort.STM32_GPIOPort @ sysbus <0x48001800, +0x400> |
||||
|
||||
greenled: Miscellaneous.LED @ gpioa 0x5 |
||||
|
||||
gpioa: |
||||
5 -> greenled@0 |
||||
|
||||
nvic0: IRQControllers.NVIC @ { |
||||
sysbus new Bus.BusPointRegistration { address: 0xe000e000; cpu: cpu0 } |
||||
} |
||||
-> cpu0@0 |
||||
|
||||
cpu0: CPU.CortexM @ sysbus |
||||
cpuType: "cortex-m4f" |
||||
nvic: nvic0 |
||||
|
||||
i2c1: I2C.STM32F7_I2C @ sysbus 0x40005400 |
||||
EventInterrupt->nvic0@31 |
||||
ErrorInterrupt->nvic0@32 |
||||
|
||||
sht4x: I2C.SHT45 @ i2c1 0x44 |
||||
|
||||
adc1: Analog.STM32_ADC @ sysbus 0x50000000 |
||||
IRQ->nvic0@18 |
||||
|
||||
lpuart1: UART.STM32F7_USART @ sysbus 0x40008000 |
||||
frequency: 200000000 |
||||
lowPowerMode: true |
||||
IRQ->nvic0@91 |
||||
|
||||
rcc: Python.PythonPeripheral @ sysbus 0x40021000 |
||||
size: 0x400 |
||||
initable: true |
||||
filename: "scripts/pydev/flipflop.py" |
||||
|
||||
rng: Miscellaneous.STM32F4_RNG @ sysbus 0x50060800 |
||||
->nvic0@90 |
||||
|
||||
rtc: Timers.STM32F4_RTC @ sysbus 0x40002800 |
||||
AlarmIRQ->nvic0@41 |
||||
|
||||
spi2: SPI.STM32SPI @ sysbus 0x40003800 |
||||
IRQ->nvic0@36 |
||||
|
||||
iwdg: Timers.STM32_IndependentWatchdog @ sysbus 0x40003000 |
||||
frequency: 32000 |
||||
|
||||
dwt: Miscellaneous.DWT @ sysbus 0xE0001000 |
||||
frequency: 72000000 |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
:name: Myra SiP Baseboard |
||||
:description: This script is prepared to run Zephyr on the Myra SiP Baseboard. |
||||
|
||||
$name?="Myra SiP Baseboard" |
||||
|
||||
using sysbus |
||||
mach create $name |
||||
machine LoadPlatformDescription $ORIGIN/myra_sip_baseboard.repl |
||||
|
||||
showAnalyzer lpuart1 |
||||
|
||||
macro reset |
||||
""" |
||||
sysbus LoadELF $elf |
||||
cpu0 VectorTableOffset `sysbus GetSymbolAddress "_vector_table"` |
||||
""" |
||||
runMacro $reset |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
adapter driver ft232r |
||||
adapter speed 1000 |
||||
|
||||
ft232r vid_pid 0x0403 0x6015 |
||||
ft232r tck_num RTS |
||||
ft232r tms_num DTR |
||||
ft232r tdi_num RI |
||||
ft232r tdo_num CTS |
||||
ft232r trst_num DSR |
||||
ft232r srst_num DCD |
||||
|
||||
ft232r restore_serial 0x0015 |
||||
source [find target/stm32g4x.cfg] |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
/* |
||||
* Copyright (c) 2024 Antmicro <www.antmicro.com> |
||||
* |
||||
* SPDX-License-Identifier: Apache-2.0 |
||||
*/ |
||||
|
||||
#include <st/g4/stm32g491Xe.dtsi> |
||||
#include <st/g4/stm32g491r(c-e)tx-pinctrl.dtsi> |
||||
#include <mem.h> |
||||
#include <freq.h> |
||||
|
||||
&spi2 { |
||||
pinctrl-0 = <&spi2_nss_pb12 &spi2_sck_pb13 |
||||
&spi2_miso_pb14 &spi2_mosi_pb15>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# Copyright (c) 2024 Antmicro <www.antmicro.com> |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_MYRA |
||||
select SOC_STM32G491XX |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
# Copyright (c) 2024 Antmicro <www.antmicro.com> |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
# The Myra is technically a SiP (System-in-Package) that consists of |
||||
# the STM32G491REI6 MCU and additional components like FRAM. So for |
||||
# Antmicro Myra SiP Baseboard the STM32G491XX SoC is to be indicated as |
||||
# the build target, but since the Myra SiP is what a user can actually |
||||
# see on a board, using only STM32G491XX in the Zephyr build |
||||
# infrastructure might be confusing. That's why in the top level of SoC |
||||
# definitions (for user-configurable options in Kconfig, for example) |
||||
# the Myra term is used and STM32G491XX underneath. |
||||
config SOC_MYRA |
||||
bool |
||||
help |
||||
Antmicro Myra System-in-Package |
||||
|
||||
config SOC |
||||
default "myra" if SOC_MYRA |
Loading…
Reference in new issue