68 lines
No EOL
3 KiB
Markdown
68 lines
No EOL
3 KiB
Markdown
# Встроенное ПО для сервопривода на STM32F446RE
|
|
|
|
## Для разработки
|
|
- [Установить platformio](#introduction)
|
|
```bash
|
|
pip install -U platformio
|
|
```
|
|
- Установить python3
|
|
```bash
|
|
sudo apt install python3
|
|
```
|
|
- Устаноивть st-link
|
|
```bash
|
|
sudo apt install st-link
|
|
```
|
|
### Прошивка делится на два файла один для загрузчика другой для основной прошивки. Чтобы загрузить как описано ниже нужно находится в директории этого проекта. Нужно сделать как для bootloader так и для embed
|
|
- [Скомпилировать проект](#build_project)
|
|
```bash
|
|
platformio run --environment robotroller_reborn
|
|
```
|
|
- [Загрузить прошивку](#upload_project)
|
|
```bash
|
|
platformio run --target upload --environment robotroller_reborn
|
|
```
|
|
|
|
## Другой способ прошивки
|
|
## Выбор интерфейса прошивки
|
|
### Для основной прошивки в директории ./embed
|
|
- Если уже есть какя-то основная прошивка, то чтобы перепрошить другую прошивку, добавляем флаг для бутлоадера
|
|
```bash
|
|
python3 firmw_update_flag.py [адрес устройства]
|
|
```
|
|
- Передача прошивки по CAN
|
|
```bash
|
|
python3 firmware_can.py firmware.hex [адрес устройства]
|
|
```
|
|
### St-link(нет адресации можно прошивать только по одному)
|
|
```bash
|
|
python3 st-link.py firmware.hex
|
|
```
|
|
### St-link_full(полная прошивка без адресации)
|
|
#### Прошивает и программатор и основную прошивку можно находится как в ./embed, так и в ./bootloader(в директории где есть данный тест в папке test).
|
|
|
|
- Если до этого сохраняли адреса и данные, то они останутся даже при полной перепрошивке
|
|
- Если бутлоадер не был прошит и FLASH микрокотроллера полностью стерта
|
|
|
|
- [Скачать прошивку и бутлоадер в hex формате]
|
|
ССЫЛКА
|
|
|
|
- [Прошить через программатор]
|
|
```bash
|
|
python3 st-link_full.py bootloader.hex firmware.hex
|
|
```
|
|
|
|
## Работа по CAN
|
|
#### Для основной прошивки в директории ./embed
|
|
- Установка адреса(если до этого не был установлен адрес, то адрес устройства = 0)
|
|
```bash
|
|
python3 set_id.py [адрес устройства]
|
|
```
|
|
|
|
- Установка PID коэффициентов для угла
|
|
```bash
|
|
python3 writePID_angle_parametrs.py [адрес устройства]
|
|
```
|
|
-Чтение PID коэффициентов для угла
|
|
```bash
|
|
python3 readPID_angle_parametrs.py [адрес устройства] |