Металл2024 Реклама
Метобр2024 Реклама

Танцы с бубном над чёрной мамкой на базе STM32 часть 2

walll-es
Идет загрузка
Загрузка
16.12.2023
1332
46
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

7

Часть 1

Итак после такой прошивки плата через STM32 Flash loader demonstrator уже не подключается !Танцы с бубном над чёрной мамкой на базе STM32 часть 2

На что я сделал вывод что успешно убил загрузчик через  UART.

Эх говорила мне бабушка не помогает бубен бери свисток!

В моей конюшне где то давно без дела завалялся  китайский свисток даже не разу не пользованный !

И вся надежда теперь была на него :) Перерыв три кулька с микро чипами наконец нашёл его !Танцы с бубном над чёрной мамкой на базе STM32 часть 2

Эта как раз тот 3 вариант через который можно прошить и без всяких BootLader и перекидывания перемычки не нужно через ST-Link и всё что для этого надо правильно соединить его всего по 4 проводам! Так забегая в перёд отвечу можно была бы и без него но раз он есть то почему бы и нет !  Танцы с бубном над чёрной мамкой на базе STM32 часть 2

Подсоединился по ST-Link и стал выяснять через что собственно работать с этим свистком !

И тут нашлась просто замечательная программа STM32CubeProgrammer ! Внимание она вот действительно не безопасна! Как я понял что ей можно переключить один флаг после чего процессор станет кирпичом !

Потому заранее предупреждаю в настройки флагов не лезьте они Вам ненужны или подробно изучите их назначение!  

Запустив появляется такое окно

Танцы с бубном над чёрной мамкой на базе STM32 часть 2

Через эту программу можно работать с платой тремя ранее описными способами. Красным отмечено где можно выбрать способ соединения в моём случае ST-Link. Зелёным помечено где должен появится номер МК если он не появился жмём обновить. Ну жёлтым отмечено как приблизительно должно быть указано. Оранжевым отмечена кнопка по замене внутреннего программного обеспечения  МК. Желательно сразу попытаться её обновить.  После нажатия на неё откроется другая программа по перепрограммированию но она работает USB OTG  для этого должен быть тоже подключен. Танцы с бубном над чёрной мамкой на базе STM32 часть 2

Может не получится обновить но это нестрашно. Тогда нажмем кнопку коннект после чего должно произойти соединение  и страница изменится

Танцы с бубном над чёрной мамкой на базе STM32 часть 2Красным отмечено окно где появится информации по плате. Синим отмечена кнопка для перехода на страницу перепрограммирования  нажимаем её. 

Танцы с бубном над чёрной мамкой на базе STM32 часть 2

Оранжевым отмечена кнопка полного стирания  можно ей воспользоватся для полной очистки и после повторить попытку обновить внутреннюю программу у меня это сработало! Далее снова захожу  на эту вкладку и загружаю файл прошивки \Marlin-2.1.1.1\.pio\build\STM32F407VE_black\firmware.bin  Ниже можно выставить флаг запустить код посл прошивки что я и делаю. Прошиваю по адресу 0x08000000. И снова нечего! На вкладки CPU регистры не меняются при нажатии кнопки Read Core Reg 

Танцы с бубном над чёрной мамкой на базе STM32 часть 2В общем на этой вкладки можно жать любые кнопки со смыслом или без :) Хуже не станет но и лучше тоже!

Так вообщем у меня появилась мысль что при компиляции прошивка затачивается под какой то конкретный адрес и кидая её в неправильный участок куда она просто виснет! Порывшись в прошивки и сделав нескольких неудачных заливок выяснил что так оно и есть! И этот адрес настроен для этой прошивки на адрес 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 он прописан на ту ногу на которой обычно висит  светодиод ! 

Танцы с бубном над чёрной мамкой на базе STM32 часть 2Я и сам знаю что эта совсем другая чёрная мама !  Но не на столько ? Можно найти несколько очень похожих чёрных мама на этом процессоре. И логично была бы что на них светодиоды подключены к одинаковым портам ! Просто меняется версия плат как я подумал! И тут Китайцы не перестают меня уделять ! Виду того что на эту мамку нет какого либа технического описания по разводки и принципиальной схемы.  Пришлось прозванивать и тут выясняется что три светодиода подключен к совсем другим портам!

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. Заливаю прошивку всё светодиод заработал ! Через терминал доступ есть  к  командам ! Перезагружаю плату и снова прошивка не стартует !

Почему не запускалась прошивка после перезагрузки и как я её уговорил я расскажу в следующей части.

Продолжение следует ! 

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

7
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама