Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 странности при запуске. не вижу зависимости MEM_MODE от boot0
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
yes
STM32F373
ножками NRST и boot0 дергает другой проц (дергает, имхо, правильно - видно осцилоскопом)

попытки загрузить с этого другого проца через UART не проходят - но иногда 0x79 0x7F проскакивает.

попытки загрузить через flash demonstrator - тоже не прошла - не видит проца

-------------------

и вопрос по flash demonstranor-у
STM32 конфигурируется 8 bits, even parity and 1 Stop bit
а в flash demonstranor-е есть кнопка выбора parity: even/odd/none

интересно как раз без parity грузить - это возможно?

-------------------

при подключеном JLINK-е не вижу в SYSCFG_CFGR1 MEM_MODE - независимо от boot0 в момент поднятия NRST

на дев.борде - вижу (но там сброс через power cycle)

--------------------

еще проблема с отладчиком

JLINK в режиме JTAG-а подключается, прошивает - все ОК
ST-LINK не подключается ни JTAG-ом, ни SWD

на дев. борде все ОК

---------------------

проц работает - то есть прошитое через JTAG работает (и MEM_TYPE я всегда вижу как 00)

============

за такую формулировку извиняюсь, но может кто-то знает что не так или чего я в доке или на форуме не дочитал
спасибо

зыЖ наверно по STM32 отдельный подфорум пора уже
yes
какая-то фигня
отпаял полностью, припаял на сброс и boot0 перемычки, порт припаял к ПК - не работает

отладчиком вижу MEM_MODE = 00 (на евал борде 01)
но по 0 адрессу лежит system flash (ну по крайней мере ее содержимое совпадает, а user flash и ram - другое)
option byte 0xff

отладчиком по ней пройтись пока не могу - минимум надо таблицу векторов переопределить - подскажите как исполнить system flash под IAR-ом, плиз

---------------

куда вообще еще посмотреть?

---------------

допускаю, что из-за активности по другим ногам может переходит в какой-то режим (ну например запускает бутлоадер по тому порту, где его нет) или какое-то недокументированное поведение

у 373-го бут только по UART1&2 (внешний кварц 13МГц, USB не должно) - вопрос, а выбор ножек к каким подключен UART как определяется? или слушает все возможные варианты (4шт?) и выбирает? где написано?
KnightIgor
Цитата(yes @ Sep 1 2015, 10:00) *
STM32F373
ножками NRST и boot0 дергает другой проц (дергает, имхо, правильно - видно осцилоскопом)
попытки загрузить с этого другого проца через UART не проходят - но иногда 0x79 0x7F проскакивает.
попытки загрузить через flash demonstrator - тоже не прошла - не видит проца

Что с ногой BOOT1?

Boot modes At startup, Boot0 pin and Boot1 option bit are
used to select one of three boot options:
•Boot from user Flash
•Boot from system memory
•Boot from embedded SRAM
yes
у этого процессора нет ноги boot1, вместо этого есть бит nBoot1 в спец. области флаш, который в 0 (ну то есть бит Boot1 в 1) - то есть system memory

я пока с глюками не разобрался
удалось подсоединится flash demonstrator-ом из ПК, но при этом по JTAG-у я также вижу MEM_MODE = 00

сейчас зайду с другого конца - научусь вторым процессором грузить STM на евал.борде, потом буду копаться дальше с STM-ом

пока, конечно, STM32F3 сильно расстраивает с F4 такого не было sm.gif
ViKo
Цитата(yes @ Sep 2 2015, 14:19) *
у 373-го бут только по UART1&2 (внешний кварц 13МГц, USB не должно) - вопрос, а выбор ножек к каким подключен UART как определяется? или слушает все возможные варианты (4шт?) и выбирает? где написано?

http://www.st.com/st-web-ui/static/active/...rchtype=keyword
Там перечислены частоты HSE, 13 МГц среди них нет. Есть 12 МГц.
yes
Цитата(ViKo @ Sep 4 2015, 14:31) *
Там перечислены частоты HSE, 13 МГц среди них нет. Есть 12 МГц.


USB мне не нужно, а с UART-ом должно и от 13 работать (autobaud)
но я вроде бы уже добился устойчивой работы с ПК - пришлось только оторвать управляющий процессор от ножек NRST и boot0 и USART2 (перемычки, то есть сброс по POR получается, а не по NRST)
когда вернул NRST и boot0 (по команде их второй проц переключает - осциллоскопом вижу) ПК (flash demonstrator) не подключается

порты (ножки) подключены так как в AN2606 написано
вопрос был, что может AN2606 чего-то не договаривает?

мне пока не понятно - что за фигня


ViKo
Цитата(yes @ Sep 4 2015, 14:43) *
USB мне не нужно, а с UART-ом должно и от 13 работать (autobaud)

Rev 22, стр. 83
Цитата
The bootloader has two case of operation depending on the presence of the external clock
(HSE) at bootloader startup:
• If HSE is present and has a value of 24, 18, 16, 12, 9, 8, 6, 4 or 3 MHz, the system
clock is configured to 48 MHz with HSE as clock source. The DFU interface, USART1
and USART2 are functional and can be used to communicate with the bootloader
device.
• If HSE is not present, the HSI is kept as default clock source and only USART1 and
USART2 are functional.

Правда, в блок-схемах дальше показано, что если частоты HSE другие, то вроде как должно работать от HSI.
SSerge
Цитата(yes @ Sep 4 2015, 18:43) *
когда вернул NRST и boot0 (по команде их второй проц переключает - осциллоскопом вижу) ПК (flash demonstrator) не подключается

порты (ножки) подключены так как в AN2606 написано
вопрос был, что может AN2606 чего-то не договаривает?

Есть у всего семейства одна фича - нога NRST на самом деле двунаправленная, и управлять ей напрямую от цифрового выхода неправильно. Нужно либо использовать открытый коллектор (сток) либо подключаться через резистор.
yes
Цитата(SSerge @ Sep 4 2015, 14:59) *
Есть у всего семейства одна фича - нога NRST на самом деле двунаправленная, и управлять ей напрямую от цифрового выхода неправильно. Нужно либо использовать открытый коллектор (сток) либо подключаться через резистор.


у меня резистор есть, поставлен чтобы можно было цепь разорвать (100Ом)
но вроде как всегда NRST ножки по дефолту (то есть после POR и пока ее специально не перепрограммируют) вход с pull-up-ом
и у STM32F373 так же
да и осциллографом я вижу, как push-pull выход управляющего проца переключает 1-0-1

если не сложно и я что-то из общих соображений пропустил - объясните, плиз



Цитата(ViKo @ Sep 4 2015, 14:58) *
Правда, в блок-схемах дальше показано, что если частоты HSE другие, то вроде как должно работать от HSI.


да скорее всего - какая-то "грязь" у меня в методе или на плате - найти не могу.
но так как на чтении доки время сэкономлено sm.gif, то подозреваю, что что-то мог и пропустить важного (ну например пытался, еще до того как эту тему создал, по USART3 бутиться - в F4 такое проходило, а тут нет)

SSerge
Цитата(yes @ Sep 4 2015, 22:20) *
если не сложно и я что-то из общих соображений пропустил - объясните, плиз

В реф.мануале посмотрите схему входа NRST, там есть транзистор, умеющий утягивать ногу вниз.
У меня при подключении к NRST супервизора питания с пушпульным выходом тоже не получалось прошить через UART. Подключил через 1кОм - сразу заработало.
yes
спасибо всем.
со всеми странностями не разобрался, но заработало

может будет полезно
у ST-LINKа (фирменной коробочки) на NRST более слабый драйвер, чем в J-LINK (тоже фирменной коробочке), по крайней мере 200 Ом резистор первый не утягивает до 0, а второй утягивает (со 100Ом и у J-LINR-а не всегда получается)

parity none - хоть и ПК удается иногда сконектится с STM boot (удается даже с parity odd - я смотрел осциллографом - обмана нет), но в железе со второго проца с parity none (там такой порт) получить ответа не удалось

MEM_MODE у конкретно того проца остается в 00 даже при работе бутлоадера и успешной прошивки флашки (хуже всего, что на евал борде - устойчиво 01)
Сергей Борщ
Цитата(yes @ Sep 7 2015, 18:54) *
MEM_MODE у конкретно того проца остается в 00 даже при работе бутлоадера и успешной прошивки флашки (хуже всего, что на евал борде - устойчиво 01)
Только что бился с этими нулями в STM32F030. Из этого регистра всегда читаются нули пока не включено тактирование SYSCFG (в RCC->APB2_ENR). Но даже с выключенным тактированием в него все пишется. В описании APB2ENR есть даже такое примечание:
Цитата
When the peripheral clock is not active, the peripheral register values may not be readable by software and the returned value is always 0x0.

Вероятно на вашей демоплате программа зачем-то включает тактирование SYSCFG. Если вы включите его на своей плате, вы увидите в SYSCFG->CFGR искомые MEM_MODE = 01.
yes
Цитата(Сергей Борщ @ Sep 11 2015, 08:47) *
Вероятно на вашей демоплате программа зачем-то включает тактирование SYSCFG. Если вы включите его на своей плате, вы увидите в SYSCFG->CFGR искомые MEM_MODE = 01.


спасибо, посмотрю

по сбросу запускается загрузчик из system rom - он одинаковый (должен быть по-крайней мере)
IAR я конекчусь DEBUG WO DOWNLOAD, что он при этом прописывает в регистры, конечно, неизвестно, да и по-моему устроено так, что по-любому jump на user flash и там до main

сейчас доступны исходники только, без железки - посмотрел для eval - там модуль SYS инициализируется, брал готовый пресет для борды (то есть проекты как бы одинаковые, но что CUBE делает до main - хз)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.