1# STM32MP157A-EV1 BSP Introduction
2
3[中文页](README_zh.md) |
4
5## Introduction
6
7This document records the execution instruction of the BSP (board support package) provided by the RT-Thread development team for the STM32MP157A-EV1 development board.
8
9The document is covered in three parts:
10
11- STM32MP157A-EV1 Board Resources Introduction
12
13- Quickly Get Started
14
15- Advanced Features
16
17By reading the Quickly Get Started section developers can quickly get their hands on this BSP and run RT-Thread on the board. More advanced features will be introduced in the Advanced Features section to help developers take advantage of RT-Thread to drive more on-board resources.
18
19## STM32MP157A-EV1 Board Resources Introduction
20
21The STM32MP157A-EV1 is a development board based on a dual Cortex-A7 and Cortex-M4 core. The Cortex-A7 core operates at 650 MHZ and the Cortex-M4 operates at 209MHZ. There is no Flash inside the STM32MP157A.
22
23![board](figures/board.png)
24
25The mainly-used **on-board resources** are shown as follows:
26
27- MCU : STM32MP157AAAx
28- Common peripherals:
29  - 4 LEDs: LD4(PD8), LD5(PD9), LD2(PA13), LD3(PA14)
30  - 4 Buttons:  WAKE_UP, RESET (NRST), USER1(PA13), USER2 (PA14)
31- Common-used interface: USB, SD card, Ethernet, MIPI, USB HOST, Audio, HDMI, Arduino.
32- Debug interface: Standard JTAG/SWD.
33
34For more details about this board, please refer to the ST official documentation:
35
36[STM32MP157A-EV1 Development board introduction](https://www.st.com/content/st_com/zh/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-eval-boards/stm32mp157a-ev1.html)
37
38## Peripheral Condition
39
40Each peripheral supporting condition for this BSP is as follows:
41
42| On-board Peripheral            | **Support** |    **Remark**    |
43| :----------------------------- | :---------: | :--------------: |
44| USB TO UART                    |     YES     |                  |
45| PMIC                           |     NO      |                  |
46| CAMERA                         |     NO      |      OV5640      |
47| MFX                            |     NO      |                  |
48| FMC                            |     NO      | MT25F8G08A8ACAH4 |
49| QSPI FLASH                     |     NO      |   MX25L51245G    |
50| OpenAMP                        |     NO      |                  |
51| POWER                          |     NO      |                  |
52| SD Card (SDMMC1)               |     NO      |                  |
53| EMMC(SDMMC2)                   |     NO      |                  |
54| ETH                            |     NO      |                  |
55| AUDIO                          |     NO      |      WM8994      |
56| **On-chip Peripheral Drivers** | **Support** |    **Remark**    |
57| GPIO                           |     YES     |                  |
58| UART                           |     YES     | UART4 (ST-Link)  |
59| EXTI                           |     YES     |                  |
60| SPI                            |     YES     |                  |
61| TIM                            |     YES     |                  |
62| LPTIM                          |     YES     |                  |
63| I2C                            |     YES     |     Software     |
64| ADC                            |     YES     |                  |
65| DAC                            |     YES     |                  |
66| WWDG                           |     YES     |                  |
67| MDMA                           |     NO      |                  |
68| SPDIFRX                        |     NO      |                  |
69| DFSDM                          |     NO      |                  |
70| PWM                            |     NO      |                  |
71| FDCAN                          |     NO      |                  |
72| CRC                            |     NO      |                  |
73| RNG                            |     NO      |                  |
74| HASH                           |     NO      |                  |
75
76## Execution Instruction
77
78### Quickly Get Started
79
80This BSP provides MDK4,MDK5 and IAR projects for developers. Also support GCC development environment,Here's an example of the MDK5 development environment, to introduce how to run the system.
81
82#### Hardware Connection
83
84Use a USB cable to connect the development board to the PC and turn on the power switch.
85
86#### Compile And Download
87
88Double-click the project.uvprojx file, to open the MDK5 project, compile and download the program to the board.
89
90> By default, the project uses ST_LINK simulator to download the program, when the ST_LINK connects the board, clicking the download button can download the program to the board.
91
92#### Running Results
93
94After the program is successfully downloaded, the system runs automatically. Observe the running results of the LED on the development board, the orange LD4 will flash periodically.
95
96Connect the serial port of the board to PC, communicate with it via a serial terminal tool (115200-8-1-N). Restart the board and the startup information of RT-Thread will be observed:
97
98```bash
99 \ | /
100- RT -     Thread Operating System
101 / | \     3.1.1 build Nov 19 2018
102 2006 - 2018 Copyright by rt-thread team
103msh >
104```
105
106#### Drivers
107
108##### 1. DAC
109
110- Open the [Env](https://www.rt-thread.io/download.html?download=Env) tool under this BSP;
111- Enter the `menuconfig` command, enter the Hardware Drivers config and open DAC, save and exit;
112- Enter the `scons --target=iar` command to regenerate project.
113
114###### Finsh
115
116Before you use a device, you need to find out if the device exists, and you can use the name of the DAC device that is enrolled with the command  `dac probe` . As shown as follows.
117
118```c
119msh />dac probe dac1
120probe dac1 success
121```
122
123Enable the channel of the device can use the command  `dac enable`  followed by the channel number.
124
125 ```c
126msh />dac probe dac1
127probe dac1 success
128 ```
129
130Set up the data of the channel for a DAC device can use the command  `dac write` followed by the channel number.
131
132```c
133msh />dac write 1 1000
134dac1 channel 1 write value is 1000
135```
136
137Disable the channel of the device can use the command `dac disable` followed by the channel number.
138
139```c
140msh />dac disable 1
141dac1 channel 1 disable success
142```
143
144### Advanced Features
145
146This BSP only enables GPIO and serial port 4 by default. If need more advanced features, you need to configure the BSP with RT-Thread Env tools, as follows:
147
148- Open the [Env](https://www.rt-thread.io/download.html?download=Env) tool under this BSP;
149- Enter the `menuconfig` command to configure the project, then save and exit;
150- Enter the  `pkgs --update` command to update the packages;
151- Enter the `scons --target=iar`command to regenerate the  project.
152
153## Notes
154
155- Before downloading the program, set the board to the mode of "Engineering Mode".  The BOOT switch sets to BOOT0=0,BOOT1 = 0 and BOOT2=1, as shown below:
156
157![boot](figures/boot.png)
158
159- If need to reburn the program, please reset the development board.
160
161## Contact Information
162
163accendant:
164
165- [liukang](https://github.com/thread-liu)
166