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

 
 
> внешний сброс LPC1788, Ведёт себя странно
haker_fox
сообщение Jun 7 2013, 10:41
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Добрый день, коллеги!
Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно.
Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти.
Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти.
Вопрос, что может быть?

Правильность написанного ПО вроде обсуждать не надо, т.к. написано выше, всё работает по включению питания.

Из структурной схемы на LPC1788 видно, что сброс по пину RESET идёт точно также, как и по включению питания (POR, power on reset).

До сегодняшнего дня думал, что аппаратный сброс по ноге - это "железно". Выходит, что нет.

З.Ы. В проге нет анализа причины сброса.

Спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Jun 10 2013, 11:37
Сообщение #2


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Моя любимая ошибка - сделать плату, которая самопроизвольно попадает в boot ;-)

Что на соответствующей ножке висит?
Uart0 наружу есть? Что-нибудь отвечает на символ '?' ?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 10 2013, 12:41
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (esaulenka @ Jun 10 2013, 20:37) *
Моя любимая ошибка - сделать плату, которая самопроизвольно попадает в boot ;-)

Что на соответствующей ножке висит?
Uart0 наружу есть? Что-нибудь отвечает на символ '?' ?

Запуск нашей проги в любом случае всегда происходил. я это отследил писком зуммера.

Но проблема была "уникальная". В драйвере EMC был установлен бит, блокирующий сброс этого модуля по тёплому ресету. Было так
CODE
SCS |= 0x02;

Таким образом, весь котроллер за исключением EMC сбрасывался, но инициализация этого модуля происходила повторно, хотя он в этот момент работал в нормально режиме (см. юзер мануал). Стоило мне закомментировать эту строку, как сброс по пину RESET стал отрабатываться корректно. Естественно, можно было отслеживать источник сброса, и если это был бы тёплый ресет, то не инициализировать контроллер "по живому" rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post



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

 


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


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