реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32: Не верифицируется флешь из SWD (mt-линк) при включении PLL, Странные глюки SWD на STM32
Serj78
сообщение Dec 13 2011, 18:59
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



В общем, ситуация такова: сделали редизайн небольшой серийной платки, на которой STM32F103 100- ногий, несколько транзисторов, внешняя SPI память, SPI АЦП.

Поменяли только корпуса транзисторов (были SO-8, поставили поменьше) и форм- фактор резонатора 16Мгц (также поменьше)

Плату протестили- работает, я взял себе одну как макет.

Среда- кейл 4.12.

И начались непонятные глюки. Дело в том, что на производстве прошивают через бутлоадер, а я для быстроты пользуюсь SWD (МТ-линк 5-й, переделаный в 6-й. )

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

Отладчик при этом работает корректно, все видит, переменные можно менять, они показываются адекватно.

Понижение частоты SWD вплоть до 100 Кгц не помогает (сначала грешил на 30 см кабель)
Зачем-то поменял проц. Конечно, не в нем дело.

Начал я копать, копал почти целый день.

Что накопал:
тип резонатора- не влияет (пробовал разные).
При запайке проца на "голую" новую плату (только проц и линейный стабилизатор питания)- верификация есть.
То есть дело (формально) или в плате или в обвязке.

На "заполненной" рабочей плате стал модифицировать софт
оставил одну инициализацию- нет верификации.
отключил все кроме RCC и ядра - нет верификации.
отключил внешний тактовый генератор- верификация ЕСТЬ. (также она есть если отключить или коротнуть резонатор, ну это и понятно)

А вот теперь самое непонятное- переключил биты SW в регистре конфигурации RCC на работу от внешнего генератора, минуя PLL и верификация появилась!

(правда программа в 5 раз медленнее работает)

Понятно, что дело в самой плате (методом замены ясно), но почему такой странный глюк? Плата 4-х слойка, все питание отфильтровано, емкостей вокруг проца штук 6, и главное, все порты отключены, оно жрет всего 40ма.., никаких сигналов никуда не подается, все SPI микросхемы спят, порты проца выключены...

Может, кто- нибудь сталкивался?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 14 2011, 04:09
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Serj78 @ Dec 14 2011, 00:59) *
отключил все кроме RCC и ядра - нет верификации.
отключил внешний тактовый генератор- верификация ЕСТЬ. (также она есть если отключить или коротнуть резонатор, ну это и понятно)

Та же история, только F107, через JTAG и openocd. Заметил также, что поведение при прошивке варьируется в зависимости от включенной набортной периферии (например, с включенным UART4 не шилось, а с выключенным - шилось). Но закорачивание резонатора (и, как следствие, программирование на внутреннем генераторе) помогает всегда.
Честно говоря, я особо не парился, считал это кривизной JTAG/openocd. На штатную работу устройства это вроде бы не влияет.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Serj78
сообщение Dec 14 2011, 05:41
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Цитата(AHTOXA @ Dec 14 2011, 08:09) *
Та же история, только F107, через JTAG и openocd. Заметил также, что поведение при прошивке варьируется в зависимости от включенной набортной периферии (например, с включенным UART4 не шилось, а с выключенным - шилось). Но закорачивание резонатора (и, как следствие, программирование на внутреннем генераторе) помогает всегда.
Честно говоря, я особо не парился, считал это кривизной JTAG/openocd. На штатную работу устройства это вроде бы не влияет.


Антоха, читайте дальше! там еще чудесатее sm.gif Во первых этот же проц на этой же плате без обвязки- верифицируется.
Во вторых не обязательно выключать внешний генератор- достаточно переключить источник тактирования SW с PLL на внешний генератор!
Возможно, дело в большой тактовой частоте..
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 14 2011, 05:56
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Serj78 @ Dec 14 2011, 11:41) *
Антоха, читайте дальше! там еще чудесатее sm.gif Во первых этот же проц на этой же плате без обвязки- верифицируется.

С той же самой программой внутри? Тогда получается, что влияет не только программа (через включение/выключение различной периферии), но и железо? Вот это даsm.gif Хотя я всё же думаю, что это JTAG/SWD как-то раскорячивается. Может и наводки какие-нибудь на него.
Да мало ли в чём там может быть делоsm.gif
Кстати, если программа использует режим sleep, то JTAG-ом за неё вообще невозможно зацепиться.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Serj78
сообщение Dec 14 2011, 06:07
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Цитата(AHTOXA @ Dec 14 2011, 09:56) *
С той же самой программой внутри?

Да, и с той же самой и с другой тоже - от программы практически не зависит.

На плате с запаяной обвязкой- поотключал в программе все, кроме настройки RCC и конфигурации флеша. программа 209 байт sm.gif
Верификация зависит от источника тактирования.

Сегодня еще покопаю.
Go to the top of the page
 
+Quote Post
Serj78
сообщение Dec 14 2011, 16:12
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



НАШЕЛ!

Достаточно долго копал- впаивал в "голую" плату по одному или нескольким элементам, нашел место когда перестало верифицироваться.

Оказалось- резистор на подтяжку Nrst - поставили 100ом ом вместо 1к sm.gif

Порту очевидно, не хватало мощи его "продавить" за необходимое время на высокой частоте, на пониженной тактовой все работало.

Вот такие пироги..
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 14 2011, 19:17
Сообщение #7


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Поздравляю! yeah.gif
Надо будет мне тоже глянуть, что там у меня установлено. Но, насколько я помню, сначала на той моей плате вообще не было резисторов на JTAG, и я думал, что это и есть причина глюков. Потом поставили, но глюки не прошли.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 14th August 2025 - 05:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01401 секунд с 7
ELECTRONIX ©2004-2016