|
|
  |
внешний сброс LPC1788, Ведёт себя странно |
|
|
|
Jun 7 2013, 10:41
|

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

|
Добрый день, коллеги! Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно. Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти. Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти. Вопрос, что может быть?
Правильность написанного ПО вроде обсуждать не надо, т.к. написано выше, всё работает по включению питания.
Из структурной схемы на LPC1788 видно, что сброс по пину RESET идёт точно также, как и по включению питания (POR, power on reset).
До сегодняшнего дня думал, что аппаратный сброс по ноге - это "железно". Выходит, что нет.
З.Ы. В проге нет анализа причины сброса.
Спасибо!
--------------------
Выбор.
|
|
|
|
|
Jun 7 2013, 10:48
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
Цитата(haker_fox @ Jun 7 2013, 05:41)  Добрый день, коллеги! Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно. Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти. Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти. Вопрос, что может быть?
Правильность написанного ПО вроде обсуждать не надо, т.к. написано выше, всё работает по включению питания.
Из структурной схемы на LPC1788 видно, что сброс по пину RESET идёт точно также, как и по включению питания (POR, power on reset).
До сегодняшнего дня думал, что аппаратный сброс по ноге - это "железно". Выходит, что нет.
З.Ы. В проге нет анализа причины сброса.
Спасибо! Было что-то похожее на 2478. изредка прибор не стартовал. Вина была возложена на LDO который не справлялся с включением процесора при достижении напряжением питания 3В. Регулятор был на 3.3 и при включении процессора начинал творить что-то странное.
|
|
|
|
|
Jun 9 2013, 02:46
|

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

|
Прошу прщения, я ответы и вопросы ar__systems и SII заметил только сейчас, в прошлый раз был сильно уставший... Отвечаю по порядку QUOTE (ar__systems @ Jun 7 2013, 20:02)  Кстати, когда он не стартовал, ресет ему после этого уже не помогал, так же как и WDT Нет, у нас стартует по питанию отлично, а вот ресет срабатывает через раз. Между прочим, под отладчиком (J-Link) эта особенность не проявляется! QUOTE (SII @ Jun 7 2013, 20:14)  А как цепь сброса реализована? Помнится, была какая-то проблема, из-за чего там надо было навешивать дополнительные резистор и конденсатор. Подробности в Эррате описаны. RC-цепь -> два инвертирующих триггера Шмитта -> пин RESET. Очень простое и элегантное решение
--------------------
Выбор.
|
|
|
|
|
Jun 10 2013, 12:41
|

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

|
QUOTE (esaulenka @ Jun 10 2013, 20:37)  Моя любимая ошибка - сделать плату, которая самопроизвольно попадает в boot ;-)
Что на соответствующей ножке висит? Uart0 наружу есть? Что-нибудь отвечает на символ '?' ? Запуск нашей проги в любом случае всегда происходил. я это отследил писком зуммера. Но проблема была "уникальная". В драйвере EMC был установлен бит, блокирующий сброс этого модуля по тёплому ресету. Было так CODE SCS |= 0x02; Таким образом, весь котроллер за исключением EMC сбрасывался, но инициализация этого модуля происходила повторно, хотя он в этот момент работал в нормально режиме (см. юзер мануал). Стоило мне закомментировать эту строку, как сброс по пину RESET стал отрабатываться корректно. Естественно, можно было отслеживать источник сброса, и если это был бы тёплый ресет, то не инициализировать контроллер "по живому"
--------------------
Выбор.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|