Перейти к содержанию
    

внешний сброс LPC1788

Добрый день, коллеги!

Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно.

Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти.

Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти.

Вопрос, что может быть?

 

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

 

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

 

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

 

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

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день, коллеги!

Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно.

Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти.

Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти.

Вопрос, что может быть?

 

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

 

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

 

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

 

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

 

Спасибо!

Было что-то похожее на 2478. изредка прибор не стартовал. Вина была возложена на LDO который не справлялся с включением процесора при достижении напряжением питания 3В. Регулятор был на 3.3 и при включении процессора начинал творить что-то странное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Было что-то похожее на 2478. изредка прибор не стартовал. Вина была возложена на LDO который не справлялся с включением процесора при достижении напряжением питания 3В. Регулятор был на 3.3 и при включении процессора начинал творить что-то странное.

Гм, а причём тут LDO? ;) прибор как раз стартует при включении питания. Но не стартует при аппаратном внешнем сбросе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гм, а причём тут LDO? ;) прибор как раз стартует при включении питания. Но не стартует при аппаратном внешнем сбросе...

Кстати, когда он не стартовал, ресет ему после этого уже не помогал, так же как и WDT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как цепь сброса реализована? Помнится, была какая-то проблема, из-за чего там надо было навешивать дополнительные резистор и конденсатор. Подробности в Эррате описаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

http://www.nxp.com/documents/application_note/AN10931.pdf

пункт 3 - не ваш случай?

Очень интересно!!! :a14: пока не знаю, смогу только в понедельник проверить. Но вот как подать высокий уровень на шину когда плата уже сделана? Блин...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прщения, я ответы и вопросы ar__systems и SII заметил только сейчас, в прошлый раз был сильно уставший... Отвечаю по порядку :rolleyes:

 

Кстати, когда он не стартовал, ресет ему после этого уже не помогал, так же как и WDT

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

 

 

А как цепь сброса реализована? Помнится, была какая-то проблема, из-за чего там надо было навешивать дополнительные резистор и конденсатор. Подробности в Эррате описаны.

RC-цепь -> два инвертирующих триггера Шмитта -> пин RESET. Очень простое и элегантное решение :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Что на соответствующей ножке висит?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Что на соответствующей ножке висит?

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

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

 

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

SCS |= 0x02;

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...