Перейти к содержанию
    

stm32g030f6p6tr шьется только 1 раз

Добрый день. 

Собрал минимальную плату под stm32g030f6p6tr, прошиваю по USART через PA2, PA3. МК сразу пускает в системный бутлоадер, шьется, но после этого загружается только из пользовательский памяти, войти снова в бутлоадер не получается. Подтяжка BOOT0 на землю или на + не даёт никакого эффекта, nRST выведен кинул на землю через кнопку, кнопка просто сбрасывает МК, но загрузка минует бутлоадер и сразу выполняет прошивку. По аналогии делал с Stm32F030f4p6 и там все работало иначе - старт бутлоадера определялся подтяжкой BOOT0. 

В общем вопрос в том, какие пины и как подтянуть, чтобы МК стартовал из бутлоадера и давал прошиться через USART. 

Китайский ST-Link пока едет, руки чешутся, а кирпичить ещё МК не хочется. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, ZloyKrot сказал:

По аналогии делал с Stm32F030f4p6

По аналогии может и не получиться.  Ищите различия (они есть) в даташитах:

image.thumb.png.f382e239ef9045565996e782f6b09d59.pngimage.png.d3b464cd5118f90c74af17aebcf9bffb.png

 

 

20 минут назад, ZloyKrot сказал:

Китайский ST-Link пока едет, руки чешутся, а кирпичить ещё МК не хочется. 

Чтобы прямо кирпич сделать - ещё постараться надо. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

39 minutes ago, ZloyKrot said:

старт бутлоадера определялся подтяжкой BOOT0.

Здесь то же самое. Только у загрузчика может быть несколько активных последовательных портов для проверки. И если по какой-то причине на входе RX другого порта - шум, то вход может и не произойти. Подтяните все RX к питанию через резистор 10 кОм. После этого установит BOOT0 в надлежащий уровень (лог. 1), удерживая этот уровень, перезагрузите микроконтроллер, подачей импульса лог. 0 на ножку RESET. Теперь загрузчик должен быть активен.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 минуту назад, tgruzd сказал:

Ищите различия (они есть) в даташитах:

Безусловно. В STM32G03X есть проверка основной памяти и, если она пуста - запускается системный бутлоадер, в STMF03X такой проверки нет. В паттернах запуска бутлоадера из AN2606, для STMF03X все просто:

Screenshot_2022-12-10-11-59-05-73_e2d5b3f32b79de1d45acd1fad96fbb0f.thumb.jpg.e437d7858c30cece157e323b5ba11b59.jpg

Для STMG03X вариантов больше, но т.к. LOCK_BIT именно в STMG030f6 отсутствует, а прошивка уже залита, то остаётся только один вариант:

Screenshot_2022-12-10-11-59-47-57_e2d5b3f32b79de1d45acd1fad96fbb0f.thumb.jpg.3519c29be585e795b56811b2af4b49c2.jpg

Различие как раз в этом nBOOT0_SEL (bit), но, если я правильно понял, выставить эти биты при простом подключении по uart не получится, нужен именно st-link? 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 минут назад, haker_fox сказал:

Подтяните все RX к питанию через резистор 10 кОм

Подтягивать стоит все USART интерфейсы? Тогда получается как-то так:

Screenshot_2022-12-10-12-30-45-24_e2d5b3f32b79de1d45acd1fad96fbb0f.thumb.jpg.c27476cb883d3aa967d76242fef59a58.jpg

В AN ещё указаны пины PA10, PA9, но, судя по даташиту это cts/rts USART1 и по идее они не должны влиять для конкретного МК. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все. Не знаю, как точно для конкретной модели, но на других STM32Fxxx загрузчик слушает все RX.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, ZloyKrot сказал:

выставить эти биты при простом подключении по uart не получится, нужен именно st-link? 

Я конкретно с этой серией не работал, точно не скажу. Но считаю, что jtag/swd-отладчик это очень нужная вещь.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/10/2022 at 12:38 PM, haker_fox said:

Все. Не знаю, как точно для конкретной модели, но на других STM32Fxxx загрузчик слушает все RX.

Я бы уточнил, что он последовательно перебирает разные порты разных интерфейсов. Подробней можно посмотреть в AN2606

Для сабжа, например так:

a829c26d5005345c9dcb129761b15f89.png

d5a2da644020c51e1532d8e0ace0f820.png

и вот

a172c6461478d5cdc20e953846138159.png

Но это все равно не поможет, с учетом механизма выбора режима загрузки согласно паттерну 11, описанному выше. Нужно биты изменять конфигурационные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, 113 сказал:

Но это все равно не поможет, с учетом механизма выбора режима загрузки согласно паттерну 11, описанному выше. Нужно биты изменять конфигурационные

Есть у меня подозрение, что китайский прог CH341a это не лучшее решение, т.к. хоть пины USART в STM и толерантны к 5 вольтам, все равно МК ведут себя случайным образом, а некоторые даже умирают.

Проблему решил обычный китайский свисток st-link v2, с серией G03 все прекрасно работает, и прошивка и дебаг, причем в этой серии МК пин с BOOT0 совмещен с SWDIO, поэтому даже перемычек ставить не пришлось - при подключении программатора, МК сам сбрасывается и загружает бутлоадер.

Вероятно можно организовать перепрошивку через USART, тогда нужно будет подтягивать BOOT0 и настраивать опциональные биты в st Programmer, но, как показала практика, шанс на успех не 100%, да и работа не очень стабильная.

Кому нужно, выкладываю пока что финальную разводку платы под этот МК

Все резисторы 300 -1500 Ом идут на светодиоды, R2 не запаян, так как BOOT0 подтягивать не нужно. Коденсаторы 10-20пф, в зависимости от кварца, этектролит С3 хотя-бы на 22мкф. U2 - XC6206P332MR, можно поставить что-то помощнее, но вряд-ли МК возьмет больше 200мА. Добавил 2 дополнительных светодиода на 7 и 8 пины, чтобы сразу можно было прошить и убедиться в работоспособности.

Разводка двусторонняя, под текстолит 45 х100 в diptrace, плат 4, так как делал лутом и бывает кое-где принтер оставляет косяки.

rtrtr.dip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем понял зачем тут плата. Если просто посмотреть - в виде картинки было бы куда читабельней, не у всех диптрейс есть.

По поводу программатора - st-link и другие нормальные программаторы используют SWD или JTAG, который помимо непосредственно загрузки прошивки, имеют множество полезных функций.

UART есть смысл использовать только в конечном продукте, где не требуется отладка (и где уже правильным образом настроена конфигурация, чтобы была возможность подключиться к загрузчику). 

Ну еще можно свой загрузчик сделать со своим механизмом запуска.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, 113 сказал:

Я бы уточнил, что он последовательно перебирает разные порты разных интерфейсов. Подробней можно посмотреть в AN2606

Зачем ему "последовательно перебирать" если он может слушать все одновременно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

неправильно выразился. Последовательно перебирает интерфейсы (типы). 

Хотя сталкивался с ситуацией, когда отладочный интерфейс был ниже по таблице (например USART2), и не отзывался, пока не подтянешь вышестоящий (USART1). Но USART1 в качестве отладочного работал не зависимо от состояния USART2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, 113 сказал:

Не совсем понял зачем тут плата. Если просто посмотреть - в виде картинки было бы куда читабельней, не у всех диптрейс есть.

Если вдруг кому лень разводить, а поиграться с мк хочется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При подключении программатором по SWD - все прекрасно шьется, биты выставлять не нужно, st-link сам перехватывает управление даже  если МК уже выполняет прошивку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 28.12.2022 в 16:40, ZloyKrot сказал:

Если вдруг кому лень разводить, а поиграться с мк хочется.

Кому нужно работать с МК, а не играть, тот начинает с покупки отладочной платы. Если с данным МК ранее не было опыта работы. И нормальный эмулятор в комплект конечно сразу же. Это позволяет сэкономить кучу времени и денег.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...