# Встроенное ПО для сервопривода на 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 [адрес устройства]