servo/controller/fw/README.md

68 lines
3 KiB
Markdown
Raw Normal View History

2025-06-04 11:44:10 +03:00
# Встроенное ПО для сервопривода на STM32F446RE
## Для разработки
- [Установить platformio](#introduction)
```bash
pip install -U platformio
```
2025-06-04 11:44:10 +03:00
- Установить 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
```
2025-06-04 11:44:10 +03:00
## Другой способ прошивки
## Выбор интерфейса прошивки
2025-06-04 11:44:10 +03:00
### Для основной прошивки в директории ./embed
- Если уже есть какя-то основная прошивка, то чтобы перепрошить другую прошивку, добавляем флаг для бутлоадера
```bash
python3 firmw_update_flag.py [адрес устройства]
```
- Передача прошивки по CAN
```bash
python3 firmware_can.py firmware.hex [адрес устройства]
```
### St-link(нет адресации можно прошивать только по одному)
```bash
python3 st-link.py firmware.hex
```
2025-06-04 11:44:10 +03:00
### St-link_full(полная прошивка без адресации)
#### Прошивает и программатор и основную прошивку можно находится как в ./embed, так и в ./bootloader(в директории где есть данный тест в папке test).
2025-06-04 11:44:10 +03:00
- Если до этого сохраняли адреса и данные, то они останутся даже при полной перепрошивке
- Если бутлоадер не был прошит и FLASH микрокотроллера полностью стерта
- [Скачать прошивку и бутлоадер в hex формате]
ССЫЛКА
- [Прошить через программатор]
```bash
python3 st-link_full.py bootloader.hex firmware.hex
```
## Работа по CAN
2025-06-04 11:44:10 +03:00
#### Для основной прошивки в директории ./embed
- Установка адреса(если до этого не был установлен адрес, то адрес устройства = 0)
```bash
python3 set_id.py [адрес устройства]
```
- Установка PID коэффициентов для угла
```bash
python3 writePID_angle_parametrs.py [адрес устройства]
```
-Чтение PID коэффициентов для угла
```bash
python3 readPID_angle_parametrs.py [адрес устройства]