04.04.2019, 09:20
|
|
Прохожий
Регистрация: 04.04.2019
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Стартап STM32F103 - траблы
Добрый день!
Осваиваю STM32F103, мигрирую с ПИК18.
Для начала делаю минимальный запуск, со светодиодом в цикле, потом буду ранащивать остальное. Не мудрствуя, взял готовый пример.
По инструкции создал проект, подстегнул стартап и CMSIS, включил тактирование GPIO, короче - заработало.
Но мигало беспорядочно, было похоже на постоянный рестарт.
Первая трабла. Был сброшен бит WDG_SW, и как я понял, как следствие IWDG запускался аппраатно. А с установленным битом вероятно, требуется программный запуск. Установил бит, мигание стабилизировалось (рестарт прекратился). Но ненадолго.
Вторая трабла:
При отключении ST-LINK от изделия начало снова рестартовать, только с бОльшим периодом, около 1,5 сек. Если воткнуть программатор и что нибудь прочитать с чипа этого не происходит.
В чем может быть проблема? Порывшись в стартапах вроде бы программно WD нигде не активировано, но при чем тогда программатор?
Хотя конечно и просмотреть мог запросто.
|
|
|
|
04.04.2019, 14:32
|
|
Прописка
Регистрация: 05.12.2008
Адрес: Россия, Омск
Сообщений: 145
Сказал спасибо: 39
Сказали Спасибо 29 раз(а) в 22 сообщении(ях)
|
Re: Стартап STM32F103 - траблы
1. Регистра WDG_SW в STM32F103 нет.
2. Watchdog таймер не запускается самостоятельно.
3. Проверьте, что питание на контроллер идёт корректно, без проседаний.
4. Проверьте выбраный источник тактирования. Если это внутренний тактовый генератор, то он обычно достаточно стабилен.
5. Приведите пример кода, который мигает светодиодом. Возможно что-то не так с задержками.
6. Используйте оптимизацию при сборке проекта (-O1 и выше). В случае отключения оптимизайии (-O0) работа кода может быть очень забавной.
7. Проверьте опции подключения отладчика. Возможно потребуется снизить скорость тактирования отладчиком контроллера.
8. Если используете режимы засыпания - разрешайте отладку в них
Код:
|
// Разрешаем отладку
DBGMCU-›CR |= DBGMCU_CR_DBG_SLEEP | DBGMCU_CR_DBG_STANDBY | DBGMCU_CR_DBG_STOP; |
Опять же, какую плату используете для опытов?
|
|
|
|
04.04.2019, 15:37
|
|
Прохожий
Регистрация: 04.04.2019
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Стартап STM32F103 - траблы
Кажется начинаю доковыриваться..)
WDG_SW - это бит конфигурационного слова (там где бит защиты кода).
Я в главном цикле цикле поставил IWDG-›KR = 0xAAAA; и стало надежно безразлично на состояние этого бита.
Плата - готовое коммерческое изделие, реверс микрокода которого и есть задача которую я себе поставил, для этого и осваиваю АРМ.
До этого делал это на ПИКах.
Соответственно на борту оказались сюрпризы. Обнаружил что есть флаги, по которым можно диагностировать причину последнего сброса кристалла.
Путем все того же управления миганием (я пока только это умею на этом кристалле) выяснил что вачдоги непричем, выставляется бит
RCC-›CSR & RCC_CSR_PINRSTF.
Велико же было удивление, когда ДАЖЕ ПРИ СТЕРТОМ ЧИПЕ обнаружил сигнал сброса 1 раз в 3 сек на пине NRST!!! Разработчики этой платы заложили абсолютно внешний WD, или что-то тому подобное!!!
Понять бы как по науке правильнее с этим поступить.. Отрезать дорожку ведущую к NRST дело то не хитрое. А что этот сигнал формирует?..
Последний раз редактировалось esatman; 04.04.2019 в 15:43.
|
|
|
|
04.04.2019, 17:24
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,247
Сказал спасибо: 11,166
Сказали Спасибо 3,855 раз(а) в 2,926 сообщении(ях)
|
Re: Стартап STM32F103 - траблы
esatman
1. Таки лучше сразу упомянуть и последние буковки в маркировке для точного понимания имеющегося у Вас.
2. До установления тёплых, доверительных, дружеских отношений с чипом - стоит процес перенести на arduino nano на STM32F103C8T6. Там все нужное присутствует для обучения.
3. Для усугубления процесса знакомства провести дизассемблирование целевой прошивки и по мере продвижения по п.2 разбирать там код и писать комментарии.
PS Для разборок с сигналом на NRST стоит проследить дорожку. Там он явно не один будет идти к источнику (минимум с парой). Возможно для лучшего понимания в процессе реверс-инжиниринга стоит и схему с той платы восстановить.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 04.04.2019 в 17:30.
|
|
|
Сказали "Спасибо" mike-y-k
|
|
|
05.04.2019, 12:24
|
|
Прохожий
Регистрация: 04.04.2019
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Стартап STM32F103 - траблы
Спасибо за ответы!!!
Как приятно что не прогинорировали)
STM32F103VET6.
Источник сигнала нашел, отпаял, и подтянул NRST по типовой схеме. Программно все заработало как часы! Можно от мигалки дальше двигаться).
Внешний WD это оказался tps3828, можно науки ради теперь проследить откуда обратная связь, и припаять его назад)))
У меня есть платка Discovery, но ковыряемая платка как раз и является образцом того, что хочу создать, весьма непростая, многослойка.. так просто принципиалку не воссоздать, но основные требуемые узлы оттрассировал.
Орининаловский бинарник естесссственно недоступен.
Базовые навыки с этим чипом наработаю, плату свою нарисую...
Приятно что он оказался аж с 512кб флешь памяти, аж в 10 раз больше чем мой последний ПИК!
Последний раз редактировалось esatman; 05.04.2019 в 12:28.
|
|
|
|
05.04.2019, 15:02
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,247
Сказал спасибо: 11,166
Сказали Спасибо 3,855 раз(а) в 2,926 сообщении(ях)
|
Re: Стартап STM32F103 - траблы
esatman, таки для изучения и наработки навыков стоит взять платку с STM32F103C8T6.
Они сейчас почти на вес продаются. На ней отточить навыки работы с нужными компонентами и периферией. Потом на целевую плату переходить.
Разница там основная в количестве GPIO (таки 48 против 100 контактов у корпуса). Заодно небольшой skill будет получен в портировании прошивки
Наличие discovery сильно упрощает прошивку и отладку - STLink уже имеется
C8T6 лучше брать сразу несколько - они при соответствующем программировании вполне смогут стать эмуляторами внешнего окружения, отладочными средствами для протоколов, средой проверки и отладки работы с периферией,…
Заодно на сайте ST закачайте под все используемое errata - предварительное знакомство с этим документом позволяет устранить многие печали
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
05.04.2019, 19:02
|
|
Прохожий
Регистрация: 04.04.2019
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Стартап STM32F103 - траблы
ОК, посмотрю.
Удручает конечно в примерах большинство HAL-ориентированное, а я для себя это не приемлю, люблю работать с регистрами напрямую, а процы блин непростые, эх, тяжко будет..)
|
|
|
|
05.04.2019, 20:18
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,247
Сказал спасибо: 11,166
Сказали Спасибо 3,855 раз(а) в 2,926 сообщении(ях)
|
Re: Стартап STM32F103 - траблы
esatman, не так в итоге страшен черт, как его малюют.
Надо просто завести правило - все нарытое записывать и не лениться читать - для работы с STM32 много AN, ну и в errata залезать регулярно стоит.
В качестве примеров - стоит посмотреть на решения из OpenSource.
Например на minidso.com есть исходники для паяльника, отвертки и осциллографов на 103, ЕМНИП под keil.
Если таки вопрос с полной работой с аппаратурой - то свои библиотеки из голого кода достаточно быстро наработаются и процесс пойдёт с нарастающей скоростью.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:17.
|
|