Easyelectronics.ru

Электроника для всех
Текущее время: 18 янв 2020, 19:18

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 00:43 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2016, 00:04
Сообщения: 264
Откуда: Россия, Москва
Решил попробовать использовать STM32F103C8T6 без отладочной платы, прямо на макетке. Заказал адаптер LQPF48 -> DIP, припаял, посмотрел на схему платы Blue Pull [PDF] подключил все как на схеме за вычетом USB разъема, LSE и HSE. Получилось как на картинке (3.4 Мб).

Подключил STlink v2, микроконтроллер нашелся. Взял STM32CubeMX, набросал blink под эту плату (проект, 15 Мб), сказал make flash - светодиод заморгал, ура.

Но теперь проблема - программатор видит у микроконтроллера 0 байт флеша и потому ничего в него не заливает:

Код:
$ st-info --probe
Found 1 stlink programmers
serial: 543f73066775545512251267
openocd: "\x54\x3f\x73\x06\x67\x75\x54\x55\x12\x25\x12\x67"
  flash: 0 (pagesize: 1024)
   sram: 20480
chipid: 0x0410
  descr: F1 Medium-density device


Erase например проходит, но ничего не затирает - флеша то "ноль байт":

Код:
$ st-flash --reset erase
st-flash 1.4.0
2018-01-17T22:13:27 INFO src/common.c: Loading device parameters....
2018-01-17T22:13:27 INFO src/common.c: Device connected is: F1 Medium-density device, id 0x20036410
2018-01-17T22:13:27 INFO src/common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0 bytes (0 KiB) in pages of 1024 bytes
Mass erasing


Искал, гуглил, смотрел видео на YouTube. Нашел очень похожее описание симптомов. Только "stm32f1x unlock 0" не проходит, потому что не удается выполнить halt:

Код:
> flash probe 0
device id = 0x20036410
STM32 flash size failed, probe inaccurate - assuming 128k flash
flash size = 128kbytes
flash 'stm32f1x' found at 0x08000000
> stm32f1x unlock 0
Target not halted

> halt
Halt timed out, wake up GDB.
timed out while waiting for target halted


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

Удивляет, что рядом точно такой же по схеме Blue Pill и с ним все отлично. Может кто сталкивался с подобным поведением? Подскажите, в какую сторону копать?

_________________
https://eax.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 01:04 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5777
Ваш калокуб по дефолту лочит SWD.шЫкарные грабли.
А по большому счету надо завязывать и с ардуино-подобной хренью и с опеносд, все это ересь...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 01:09 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3902
Погоди, под сбросом они все равно стартуют на функциях SWD, даже если они выключены. Нажать кнопку сброса (замкнуть контакт) и запустить прошивку, отпустить сброс в момент старта соединения (поймать момент).
Надеюсь, топикстартер не успел еще залочить МК в режим "кирпич only", включив максимальный неотменяемый уровень защиты?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 01:14 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2016, 00:04
Сообщения: 264
Откуда: Россия, Москва
Ха, получилось. BusMaster все правильно сказал.

Включаем с reset притянутым к земле. "st-info --probe" скажет что флеша нет. Выдергиваем резистор идущий к reset (у МК если что есть внутренний подтягивающий резистор к питанию, так что пин не болтается). Теперь флеш виден, можено сделать и flash и erase.

Всем спасибо! )

_________________
https://eax.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 07:40 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 427
как же у вас всё весело...
Почему же таких веселостей у меня нет? Как же скучно я живу с STM32CubeMX!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 09:45 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2490
Народ по этим граблям толпами ходит! :-))
Просто включите SWD в Кубе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 09:46 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 24 июл 2016, 00:07
Сообщения: 107
BusMaster писал(а):
Надеюсь, топикстартер не успел еще залочить МК в режим "кирпич only", включив максимальный неотменяемый уровень защиты?

А на F103 он вообще есть разве? Такой уровень только на более старших припоминаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 09:47 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 24 июл 2016, 00:07
Сообщения: 107
Pingvin писал(а):
Народ по этим граблям толпами ходит! :-))
Просто включите SWD в Кубе.

Интересно, а нафига его вообще по дефолту вырубать?))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 10:31 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5777
Misaka10032, задайте вопрос разработчикам кубохрени.
И это не единственный косяк ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 10:40 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4219
Откуда: КЧР, поселок Нижний Архыз
Misaka10032 писал(а):
Интересно, а нафига его вообще по дефолту вырубать?))

Я, например, всегда вырубаю в прошивке SWD, т.к. шью через бутлоадер. Отлаживаю через UART, USB и сигналы на вспомогательных (или основных) ногах.

В калокубе, похоже, отрубают SWD по той простой причине, что это говно рассчитано на ацефалов. А ацефалы уж точно отладку никакую делать не будут! Ну и, похоже, STM считает, что калокуб — такая распрекрасная хрень, что сгенеренную один раз прошивку переделывать не надо будет: прошил МК и радуйся.

Т.С., не забывайте о возможности загрузки через бутлоадер (это если в конце-концов поломаете-таки SWD или выжжете какой-нибудь из его пинов).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 10:47 
Старожил
Аватара пользователя

Зарегистрирован: 18 фев 2014, 11:27
Сообщения: 258
Откуда: Москва
а boot0 к земле притянут был?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 18 янв 2018, 10:50 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5777
mishany984 писал(а):
а boot0 к земле притянут был?

И как селектор загрузки влияет на коннект прошивателя?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 10:40 
Старожил
Аватара пользователя

Зарегистрирован: 18 фев 2014, 11:27
Сообщения: 258
Откуда: Москва
никак


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 12:06 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 ноя 2010, 20:11
Сообщения: 94
Откуда: Омск
Была аналогичная проблема с контроллером на тестовой плате.

Разъём подключения SWD - 5 пинов: VCC / SWCLK / GND / SWDIO / RESET
Шаги для решения данного затруднения.
1. Подтягивающий резистор между /Reset и VCC. У меня после установки резистора номиналом в 1кОм стало значительно лучше.
2. Подтягивающие резисторы на пинах BOOT1 & BOOT0 к земле. 10кОм - вполне достаточно. Можно оставить плавающими, но это не будет надёжным решением.
3. Конденсаторы питания не менее чем на 1uF (логично, что земля--питание). Керамика.
Остальное по вкусу.

Проявлялось на нескольких платах в виде плавающей ошибки и невозможности стереть/записать контроллер. Время от времени решалось зажатием кнопки сброса на STM32-Discovery. После установки дополнительных подтяжек на /RESET - проблема полностью прошла.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 13:23 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5777
-Alan- писал(а):
Шаги для решения данного затруднения.
1. Подтягивающий резистор между /Reset и VCC. У меня после установки резистора номиналом в 1кОм стало значительно лучше.


Не ставлю и другим не советую, а вот конденсатор на 100nF у самого пина у таргета обязателен.
Для исключения пробелов в знаниях советую изучить обвязку пина Reset, а так же есть здесь же опыт у людей - сжигали мосфет на ресете такими подтяжками...
Ну провода не длинее 15см и ни в коем случае не шлейф...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 13:30 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4219
Откуда: КЧР, поселок Нижний Архыз
dosikus_2, как можно мосфет NRST сжечь подтяжкой? Я 10кОм втыкаю, никаких проблем нет. А без подтяжки будет на любые помехи перезагружаться…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 13:34 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5777
Там уже есть встроенная подтяжка и внешняя на не уперлась.
Однако у меня не глючит , как и на многочисленных бордах, к примеру те же дискаверины.
Это закостенелая привычка аврщиков -лепить пуллап на ресет...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 13:58 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4219
Откуда: КЧР, поселок Нижний Архыз
Вот блин! Лишний резистор постоянно паял. Вот до чего доводит невнимательное чтение даташитов и RM: на схему "Simplified diagram of the reset circuit" как-то и не смотрел…
Реально, только кондей надо подпаять (а то и без него...).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 14:58 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 ноя 2010, 20:11
Сообщения: 94
Откуда: Омск
Подтяжка /RESET желательна. Во всяком случае, на том STM32Discovery, что у меня на столе.
При подключеном программаторе (подключеном к USB и целевой плате) напряжение на пине сброса может быть 1.7V, может плавать около 2V. Если добавить резистор - поднимается до 3.3 и становится стабильным (питание платы).

А вот сжечь программатор килоомным резистором - это нужно постараться.

2 dosikus_2: Если бы сам не наблюдал такого поведения при подключеном и нормально работающем программаторе - не советовал бы. Скорее всего это связано с тем, что на плате Дискавери пин сброса сквозной. Одновременно выведен и на разъём SWD и на кристалл на плате и на кнопку сброса (потому-то она и позволяет сбрасывать внешний контроллер). А через паразитный диод будет пытаться запитаться и распаяный кристалл.
Т.О. для чистого программатора (или для Discovery платы) без кристалла на ней подтяжка не потребуется. А для платы с кристаллом - нужна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 15:13 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5777
-Alan-, внимательно изучаем сей документ AN2586
Особливо параграф 1.3.3 System reset
Цитата:
The STM32F1xx does not require an external reset circuit to power-up correctly. Only a pulldown capacitor is recommended to improve EMS performance by protecting the device
against parasitic resets. See Figure 5.
Charging and discharging a pull-down capacitor through an internal resistor increases the
device power consumption. The capacitor recommended value (100 nF) can be reduced to
10 nF to limit this power consumption;


Ну и на другие линейки аналогично. И не надо городить отсебятину...
Если у вас девайс колбасит - решайте проблему с питанием и разводкой а не занимайтесь аврщиной...


Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 15:47 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
dosikus_2 писал(а):
Это закостенелая привычка аврщиков -лепить пуллап на ресет...

Надо полагать, схему st-link-а тоже аврщики делали. Потому что во всех дискавери и нуклео в нем стоит внешняя подтяжка. Замечу, в st-link стоит ровно такой же чип как и в топике. Думаю, вполне логично предположить, что как минимум, с такими чипами внешняя подтяжка не помешает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 16:01 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4219
Откуда: КЧР, поселок Нижний Архыз
Скорее всего, аврщики все эти "дискаверины" и делали.
Лично я стал лепить ненужный пуллап, насмотревшись на все эти "девборды".
А между тем, в RM ясно сказано: нефиг туда лепить пуллап, когда он и так есть! По крайней мере, среди того, что я пользую (STM32F1xx и STM32F0xx) везде встроенные пуллапы есть!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 16:19 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5777
evsi, охренеть ты и схемы читать не могешь, это что ?
Что значит абревиатура N/A ? Сам догадаешься?
На набортных линках хоть и стоит пуллап, но обратите внимание на номинал...

Изображение

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 16:50 
Старожил

Зарегистрирован: 13 июл 2016, 11:05
Сообщения: 427
Pingvin писал(а):
Народ по этим граблям толпами ходит! :-))
Просто включите SWD в Кубе.


У меня во всех проектах там РА13,14 всегда заданы как SWD.
Это мне напоминалка - не лезть в эти ножки.
А вы что имели в виду под фразой "Просто включите SWD в Кубе"?


Последний раз редактировалось serglg 19 янв 2018, 17:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103C8T6 прошивается, но только один раз - что делать?
СообщениеДобавлено: 19 янв 2018, 16:53 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
dosikus_2 писал(а):
evsi, охренеть ты и схемы читать не могешь, это что ?

Я не знаю чем вы там дорисовывали эти пометки, но в свежевыкачанной доке на нуклео никаких таких пометок нет. Кроме того, раз ST не рекомендует их ставить, то с какого перепугу этот резистор вообще есть на схеме? Причем не в схеме прототипа, а в официальной, публично доступной документации на серийное изделие с большим тиражом. Я бы посоветовал вам подумать над этим верхней головой, но не стану, все равно у вас не получится.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB