|
| 1 | +# STM32H747I-DISCO Board |
| 2 | + |
| 3 | +STMicroelectronics STM32H747I-DISCO development board with STM32H747XI dual-core MCU. |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- STM32H747XIH6 microcontroller |
| 8 | + - Arm Cortex-M7 @ 480 MHz + Cortex-M4 @ 240 MHz |
| 9 | + - 2 MB Flash, 1 MB RAM |
| 10 | + - 32 MB external SDRAM |
| 11 | +- Connectivity |
| 12 | + - USB High-Speed via ULPI PHY (USB3320) |
| 13 | + - USB Full-Speed |
| 14 | + - Ethernet RMII (LAN8742A PHY) - **requires hardware modification** |
| 15 | + - microSD card slot (8-bit SDMMC1) |
| 16 | +- Display |
| 17 | + - 4" capacitive touchscreen LCD (480×272) |
| 18 | +- Audio |
| 19 | + - WM8994 codec with line in/out, headphone, speaker, microphone |
| 20 | + - 2x digital MEMS microphones |
| 21 | +- Other peripherals |
| 22 | + - 2× user LEDs |
| 23 | + - 1× user button + reset button |
| 24 | + - Arduino Uno V3 expansion connector |
| 25 | + - PMOD connector |
| 26 | + - Onboard ST-LINK/V3 |
| 27 | + |
| 28 | +## Pin Configuration |
| 29 | + |
| 30 | +Default pin assignments: |
| 31 | + |
| 32 | +- UART1: PA9 (TX), PA10 (RX) - Connected to ST-LINK VCP |
| 33 | +- USB_HS: ULPI interface on PA3, PA5, PB0, PB1, PB5, PB10-13, PC0, PH4, PI11 |
| 34 | +- I2C4: PD12 (SCL), PD13 (SDA) - WM8994 audio codec |
| 35 | +- SPI5: PF7 (SCK), PF8 (MISO), PF9 (MOSI), PF6 (CS) |
| 36 | +- UART8: PJ8 (TX), PJ9 (RX) |
| 37 | +- SD Card: 8-bit SDMMC1 interface on PC6-12, PB8-9, PD2 |
| 38 | + |
| 39 | +## Ethernet Hardware Limitation |
| 40 | + |
| 41 | +**Important:** The Ethernet interface is not functional with the default board configuration due to a pin conflict between ETH_MDC (PC1) and SAI4_D1 (digital MEMS microphone). A hardware modification is required to disconnect the MEMS microphone from PC1 to enable Ethernet functionality. Refer to the STM32H747I-DISCO user manual (UM2411) for details on the required modification. |
| 42 | + |
| 43 | +## Building Firmware |
| 44 | + |
| 45 | +```bash |
| 46 | +cd ports/stm32 |
| 47 | +make BOARD=STM32H747I_DISCO |
| 48 | +``` |
| 49 | + |
| 50 | +## Flashing Firmware |
| 51 | + |
| 52 | +Using STM32CubeProgrammer (recommended): |
| 53 | +```bash |
| 54 | +STM32_Programmer_CLI -c port=SWD mode=UR -w build-STM32H747I_DISCO/firmware.elf -v -rst |
| 55 | +``` |
| 56 | + |
| 57 | +Using st-flash: |
| 58 | +```bash |
| 59 | +st-flash write build-STM32H747I_DISCO/firmware.bin 0x08000000 |
| 60 | +``` |
| 61 | + |
| 62 | +## Console Access |
| 63 | + |
| 64 | +The board provides two independent console options: |
| 65 | + |
| 66 | +1. **ST-LINK V3 UART** (recommended): |
| 67 | + - Device: /dev/ttyACM* (Linux), COM* (Windows) |
| 68 | + - Baudrate: 115200 |
| 69 | + - Always available regardless of USB state |
| 70 | + |
| 71 | +2. **USB CDC serial**: |
| 72 | + - Requires USB cable connected |
| 73 | + - Provides MicroPython REPL |
| 74 | + |
| 75 | +Using mpremote: |
| 76 | +```bash |
| 77 | +mpremote connect /dev/ttyACM5 # Adjust device as needed |
| 78 | +``` |
| 79 | + |
| 80 | +## Testing |
| 81 | + |
| 82 | +The board includes a test suite for verifying hardware functionality: |
| 83 | + |
| 84 | +```python |
| 85 | +# Run automated tests |
| 86 | +import run_all_tests |
| 87 | +run_all_tests.run_automated() |
| 88 | + |
| 89 | +# Run manual tests (requires user interaction) |
| 90 | +run_all_tests.run_manual() |
| 91 | +``` |
| 92 | + |
| 93 | +Test coverage: |
| 94 | +- I2C (WM8994 codec) |
| 95 | +- ADC (3 channels) |
| 96 | +- SPI |
| 97 | +- UART |
| 98 | +- SD card |
| 99 | +- Ethernet (requires hardware modification) |
| 100 | +- DAC |
| 101 | +- PWM/Timers |
| 102 | +- LEDs and buttons |
0 commit comments