Танцы с бубном над чёрной мамкой на базе STM32 часть 2
Итак после такой прошивки плата через STM32 Flash loader demonstrator уже не подключается !
На что я сделал вывод что успешно убил загрузчик через UART.
Эх говорила мне бабушка не помогает бубен бери свисток!
В моей конюшне где то давно без дела завалялся китайский свисток даже не разу не пользованный !
И вся надежда теперь была на него :) Перерыв три кулька с микро чипами наконец нашёл его !
Эта как раз тот 3 вариант через который можно прошить и без всяких BootLader и перекидывания перемычки не нужно через ST-Link и всё что для этого надо правильно соединить его всего по 4 проводам! Так забегая в перёд отвечу можно была бы и без него но раз он есть то почему бы и нет !
Подсоединился по ST-Link и стал выяснять через что собственно работать с этим свистком !
И тут нашлась просто замечательная программа STM32CubeProgrammer ! Внимание она вот действительно не безопасна! Как я понял что ей можно переключить один флаг после чего процессор станет кирпичом !
Потому заранее предупреждаю в настройки флагов не лезьте они Вам ненужны или подробно изучите их назначение!
Запустив появляется такое окно
Через эту программу можно работать с платой тремя ранее описными способами. Красным отмечено где можно выбрать способ соединения в моём случае ST-Link. Зелёным помечено где должен появится номер МК если он не появился жмём обновить. Ну жёлтым отмечено как приблизительно должно быть указано. Оранжевым отмечена кнопка по замене внутреннего программного обеспечения МК. Желательно сразу попытаться её обновить. После нажатия на неё откроется другая программа по перепрограммированию но она работает USB OTG для этого должен быть тоже подключен.
Может не получится обновить но это нестрашно. Тогда нажмем кнопку коннект после чего должно произойти соединение и страница изменится
Красным отмечено окно где появится информации по плате. Синим отмечена кнопка для перехода на страницу перепрограммирования нажимаем её.
Оранжевым отмечена кнопка полного стирания можно ей воспользоватся для полной очистки и после повторить попытку обновить внутреннюю программу у меня это сработало! Далее снова захожу на эту вкладку и загружаю файл прошивки \Marlin-2.1.1.1\.pio\build\STM32F407VE_black\firmware.bin Ниже можно выставить флаг запустить код посл прошивки что я и делаю. Прошиваю по адресу 0x08000000. И снова нечего! На вкладки CPU регистры не меняются при нажатии кнопки Read Core Reg
В общем на этой вкладки можно жать любые кнопки со смыслом или без :) Хуже не станет но и лучше тоже!
Так вообщем у меня появилась мысль что при компиляции прошивка затачивается под какой то конкретный адрес и кидая её в неправильный участок куда она просто виснет! Порывшись в прошивки и сделав нескольких неудачных заливок выяснил что так оно и есть! И этот адрес настроен для этой прошивки на адрес 0x08080000 заливаю с запуском по этому адресу. Светодиоды не загорелись не мигают. Подключаюсь к порту терминалом тоже нечего ! Не закрывая терминал снова прошиваю с запуском. И тут в терминал вываливается
Error:Printer halted. kill() called!
О чудо нашёлся первый затык! Но он меня порадовал так как эта был первый отклик от прошивки! И так из за отсутствия датчиков температуры срабатывает защита и останавливает код! В \Marlin-2.1.1.1\Marlin\Configuration.h нахожу строчку #define TEMP_SENSOR_BED 1 и заменяю 1 на 0 заливаю снова открываю терминал и нечего. Я подумал что стоит попробовать послать в терминал что-то набрал М503 и о чуда мне пришёл адекватный ответ от прошивки! :) Но почему же нет не какой реакции от светодиода пора залезть в pin файл и разобраться с этим ! Для моей мамы он находится тут \Marlin-2.1.1.1\Marlin\src\pins\stm32f4\pins_BLACK_STM32F407VE.h захожу нахожу строчку #define LED_PIN PA6 он прописан на ту ногу на которой обычно висит светодиод !
Я и сам знаю что эта совсем другая чёрная мама ! Но не на столько ? Можно найти несколько очень похожих чёрных мама на этом процессоре. И логично была бы что на них светодиоды подключены к одинаковым портам ! Просто меняется версия плат как я подумал! И тут Китайцы не перестают меня уделять ! Виду того что на эту мамку нет какого либа технического описания по разводки и принципиальной схемы. Пришлось прозванивать и тут выясняется что три светодиода подключен к совсем другим портам!
DS1 E5
DS2 E6
DS3 C13
Замечательно меняю в файле #define LED_PIN PA6 на #define LED_PIN PE6. Проверяю не используется ещё где этот порт ранее ? Нахожу #define Y_ENABLE_PIN PE6 меняю на #define Y_ENABLE_PIN PA6. По сути поменял местами PA6 и PE6. Заливаю прошивку всё светодиод заработал ! Через терминал доступ есть к командам ! Перезагружаю плату и снова прошивка не стартует !
Почему не запускалась прошивка после перезагрузки и как я её уговорил я расскажу в следующей части.
Продолжение следует !
Еще больше интересных статей
Сушилка на 4 катушки своими руками
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Антивоблинг на flyingbear ghost 5
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Цветная печать двумя хотэндами с сервоприводом
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Пару месяцев назад я решил, что мне жизненно необходимо научить свою...
Комментарии и вопросы
Вот тут про электронику есть и...
Я не инженер, и образования пр...
Это под выхлопные трубы, низ г...
Друзья, хелп! Решил напечатать...
Собственно, в заголовке все на...
Свернул паз под шестигранник,...
я голову сломал уже. Как в Cur...