Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запуск STM32F107.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Atridies
Добрый день!

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

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

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

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

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

Проблема может быть в том, что в SystemInit Вы забыли проинициализировать GPIO, и то что Вы там пишете в пины срабатывает только когда инициализация реально пройдёт (включатся все необходимые тактирования и т.п.), а произойдёт это там-же где и раньше - в недрах startup-кода (или где там у Вас периферия конфигурится).
Также непонятно - от какого момента Вы меряете интервал? Надеюсь от спада сигнала RESET?
scifi
8 мс напоминает время запуска кварца. Нигде его не ждёте?
Василий Иванов
Цитата(scifi @ Jun 17 2015, 07:41) *
8 мс напоминает время запуска кварца. Нигде его не ждёте?

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

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

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

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

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

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.