Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: внешний сброс LPC1788
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
haker_fox
Добрый день, коллеги!
Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно.
Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти.
Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти.
Вопрос, что может быть?

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

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

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

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

Спасибо!
ar__systems
Цитата(haker_fox @ Jun 7 2013, 05:41) *
Добрый день, коллеги!
Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно.
Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти.
Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти.
Вопрос, что может быть?

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

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

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

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

Спасибо!

Было что-то похожее на 2478. изредка прибор не стартовал. Вина была возложена на LDO который не справлялся с включением процесора при достижении напряжением питания 3В. Регулятор был на 3.3 и при включении процессора начинал творить что-то странное.
haker_fox
QUOTE (ar__systems @ Jun 7 2013, 19:48) *
Было что-то похожее на 2478. изредка прибор не стартовал. Вина была возложена на LDO который не справлялся с включением процесора при достижении напряжением питания 3В. Регулятор был на 3.3 и при включении процессора начинал творить что-то странное.

Гм, а причём тут LDO? wink.gif прибор как раз стартует при включении питания. Но не стартует при аппаратном внешнем сбросе...
ar__systems
Цитата(haker_fox @ Jun 7 2013, 05:58) *
Гм, а причём тут LDO? wink.gif прибор как раз стартует при включении питания. Но не стартует при аппаратном внешнем сбросе...

Кстати, когда он не стартовал, ресет ему после этого уже не помогал, так же как и WDT
SII
А как цепь сброса реализована? Помнится, была какая-то проблема, из-за чего там надо было навешивать дополнительные резистор и конденсатор. Подробности в Эррате описаны.
Corvus
http://www.nxp.com/documents/application_note/AN10931.pdf
пункт 3 - не ваш случай?
haker_fox
QUOTE (Corvus @ Jun 7 2013, 20:32) *
http://www.nxp.com/documents/application_note/AN10931.pdf
пункт 3 - не ваш случай?

Очень интересно!!! a14.gif пока не знаю, смогу только в понедельник проверить. Но вот как подать высокий уровень на шину когда плата уже сделана? Блин...
haker_fox
Прошу прщения, я ответы и вопросы ar__systems и SII заметил только сейчас, в прошлый раз был сильно уставший... Отвечаю по порядку rolleyes.gif

QUOTE (ar__systems @ Jun 7 2013, 20:02) *
Кстати, когда он не стартовал, ресет ему после этого уже не помогал, так же как и WDT

Нет, у нас стартует по питанию отлично, а вот ресет срабатывает через раз. Между прочим, под отладчиком (J-Link) эта особенность не проявляется!


QUOTE (SII @ Jun 7 2013, 20:14) *
А как цепь сброса реализована? Помнится, была какая-то проблема, из-за чего там надо было навешивать дополнительные резистор и конденсатор. Подробности в Эррате описаны.

RC-цепь -> два инвертирующих триггера Шмитта -> пин RESET. Очень простое и элегантное решение rolleyes.gif
esaulenka
Моя любимая ошибка - сделать плату, которая самопроизвольно попадает в boot ;-)

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

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

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

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

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