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

 
 
 
Reply to this topicStart new topic
> Запуск STM32F107., Запускается целые 8 мс.
Atridies
сообщение Jun 16 2015, 18:54
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 445
Регистрация: 7-02-05
Из: Зеленоград
Пользователь №: 2 468



Добрый день!

При подключении ЖКИ - потребовалось сразу после включения получить управление ножками микроконтроллера (д/б 20 мс ожидание). Задался целью сразу после включение - перевести сигналы в нуль. Не получилось.

Поставил в самом начале функции main - все равно - 9 мс. задержки перед выполнением. Залез в startup_stm32f10x_cl.s посмотрел функцию, висящую на прерывании Reset_Handler (оказалась: SystemInit).
Поправил SystemInit. В самом начале - этой функции сделал переключение в нуль. Все равно 8,5 мс. В чем проблема может быть?

Ведь по идее: при включении - MCU прыгает по адресу, указанному в векторе прерывания Reset. Там вообще ничего не должно быть. Тем более - на 8 мс.... Я в замешательстве.

Вот сигналы с микроконтроллера. Начало - желтая черта. Момент, когда сигналы E, RW, A0 - падают до нуля - 8,5 мс.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 17 2015, 04:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Atridies @ Jun 17 2015, 00:54) *
Поставил в самом начале функции main - все равно - 9 мс. задержки перед выполнением. Залез в startup_stm32f10x_cl.s посмотрел функцию, висящую на прерывании Reset_Handler (оказалась: SystemInit).
Поправил SystemInit. В самом начале - этой функции сделал переключение в нуль. Все равно 8,5 мс. В чем проблема может быть?

Проблема может быть в том, что в SystemInit Вы забыли проинициализировать GPIO, и то что Вы там пишете в пины срабатывает только когда инициализация реально пройдёт (включатся все необходимые тактирования и т.п.), а произойдёт это там-же где и раньше - в недрах startup-кода (или где там у Вас периферия конфигурится).
Также непонятно - от какого момента Вы меряете интервал? Надеюсь от спада сигнала RESET?
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 17 2015, 04:41
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



8 мс напоминает время запуска кварца. Нигде его не ждёте?
Go to the top of the page
 
+Quote Post
Василий Иванов
сообщение Jun 17 2015, 06:48
Сообщение #4





Группа: Участник
Сообщений: 10
Регистрация: 9-04-09
Пользователь №: 47 414



Цитата(scifi @ Jun 17 2015, 07:41) *
8 мс напоминает время запуска кварца. Нигде его не ждёте?

Согласен, приблизительно такое время нужно чтобы внешний кварц начал выдавать нормальный сигнал. А стартап код ждет, пока не появится нормальное тактирование. Можно ускорить время запуска если использовать встроенные в микроконтроллер источники тактирования. Но насколько помню внутренние источники, быстро запускаются, но потом медленно и неточно работают.
Go to the top of the page
 
+Quote Post
Obam
сообщение Jun 17 2015, 07:42
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Контроллер после сброса "взлетает" на внутреннем RC-генераторе 8 МГц (HSI). Мало того что HSI имеет время старта <2 мкс, так он уже и готов к этому моменту. Сконфигурировать выходы в нужное состояние (на 8 МГц)- считанные команды, неоткуда там браться 8 мс.
TS, смотрите в результирующий код: точно ли настройка и установка GPIO выполняется с точки входа Reset_Handler?



--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Atridies
сообщение Jun 18 2015, 16:44
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 445
Регистрация: 7-02-05
Из: Зеленоград
Пользователь №: 2 468



Прошу прощения у почтенной публики - проблему я нашел. Это внешний сигнал RESET-а на микроконтроллер.
Не думал что так лохонусь...

Всем спасибо.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 19 2015, 09:48
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Atridies @ Jun 18 2015, 22:44) *
Прошу прощения у почтенной публики - проблему я нашел. Это внешний сигнал RESET-а на микроконтроллер.

Значит я был прав rolleyes.gif

Цитата(jcxz @ Jun 17 2015, 10:09) *
Также непонятно - от какого момента Вы меряете интервал? Надеюсь от спада сигнала RESET?

Go to the top of the page
 
+Quote Post

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

 


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


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