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

 
 
 
Reply to this topicStart new topic
> STM32 странности при запуске. не вижу зависимости MEM_MODE от boot0, ну и вообще - поведение отличается от дев.кита
yes
сообщение Sep 1 2015, 09:00
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



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 отдельный подфорум пора уже
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 2 2015, 11:19
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



какая-то фигня
отпаял полностью, припаял на сброс и boot0 перемычки, порт припаял к ПК - не работает

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

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

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

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

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

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

у 373-го бут только по UART1&2 (внешний кварц 13МГц, USB не должно) - вопрос, а выбор ножек к каким подключен UART как определяется? или слушает все возможные варианты (4шт?) и выбирает? где написано?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Sep 2 2015, 19:06
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(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
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 4 2015, 10:48
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



у этого процессора нет ноги boot1, вместо этого есть бит nBoot1 в спец. области флаш, который в 0 (ну то есть бит Boot1 в 1) - то есть system memory

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

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

пока, конечно, STM32F3 сильно расстраивает с F4 такого не было sm.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 4 2015, 11:31
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(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 МГц.
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 4 2015, 11:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(ViKo @ Sep 4 2015, 14:31) *
Там перечислены частоты HSE, 13 МГц среди них нет. Есть 12 МГц.


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

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

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


Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 4 2015, 11:58
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(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.
Go to the top of the page
 
+Quote Post
SSerge
сообщение Sep 4 2015, 11:59
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



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

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

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


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 4 2015, 15:20
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(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 такое проходило, а тут нет)

Go to the top of the page
 
+Quote Post
SSerge
сообщение Sep 4 2015, 15:50
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



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

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


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 7 2015, 15:54
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



спасибо всем.
со всеми странностями не разобрался, но заработало

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

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

MEM_MODE у конкретно того проца остается в 00 даже при работе бутлоадера и успешной прошивки флашки (хуже всего, что на евал борде - устойчиво 01)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 11 2015, 05:47
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(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.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 11 2015, 12:02
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(Сергей Борщ @ 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 - хз)
Go to the top of the page
 
+Quote Post

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

 


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


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