haker_fox 61 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба Добрый день, коллеги! Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно. Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти. Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти. Вопрос, что может быть? Правильность написанного ПО вроде обсуждать не надо, т.к. написано выше, всё работает по включению питания. Из структурной схемы на LPC1788 видно, что сброс по пину RESET идёт точно также, как и по включению питания (POR, power on reset). До сегодняшнего дня думал, что аппаратный сброс по ноге - это "железно". Выходит, что нет. З.Ы. В проге нет анализа причины сброса. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба Добрый день, коллеги! Есть прибор, и прога к нему) Если прибор включается кнопкой питания, то всё работает исправно. Если микроконтроллер перезапустить внешней кнопкой сброс, то программа стартует в 5 - 8 случаях из десяти. Вроде зависание происходит после инициализации EMC. Висит в функции проверки памяти. Вопрос, что может быть? Правильность написанного ПО вроде обсуждать не надо, т.к. написано выше, всё работает по включению питания. Из структурной схемы на LPC1788 видно, что сброс по пину RESET идёт точно также, как и по включению питания (POR, power on reset). До сегодняшнего дня думал, что аппаратный сброс по ноге - это "железно". Выходит, что нет. З.Ы. В проге нет анализа причины сброса. Спасибо! Было что-то похожее на 2478. изредка прибор не стартовал. Вина была возложена на LDO который не справлялся с включением процесора при достижении напряжением питания 3В. Регулятор был на 3.3 и при включении процессора начинал творить что-то странное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба Было что-то похожее на 2478. изредка прибор не стартовал. Вина была возложена на LDO который не справлялся с включением процесора при достижении напряжением питания 3В. Регулятор был на 3.3 и при включении процессора начинал творить что-то странное. Гм, а причём тут LDO? ;) прибор как раз стартует при включении питания. Но не стартует при аппаратном внешнем сбросе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба Гм, а причём тут LDO? ;) прибор как раз стартует при включении питания. Но не стартует при аппаратном внешнем сбросе... Кстати, когда он не стартовал, ресет ему после этого уже не помогал, так же как и WDT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба А как цепь сброса реализована? Помнится, была какая-то проблема, из-за чего там надо было навешивать дополнительные резистор и конденсатор. Подробности в Эррате описаны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvus 1 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба http://www.nxp.com/documents/application_note/AN10931.pdf пункт 3 - не ваш случай? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба http://www.nxp.com/documents/application_note/AN10931.pdf пункт 3 - не ваш случай? Очень интересно!!! :a14: пока не знаю, смогу только в понедельник проверить. Но вот как подать высокий уровень на шину когда плата уже сделана? Блин... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 9 июня, 2013 Опубликовано 9 июня, 2013 · Жалоба Прошу прщения, я ответы и вопросы ar__systems и SII заметил только сейчас, в прошлый раз был сильно уставший... Отвечаю по порядку :rolleyes: Кстати, когда он не стартовал, ресет ему после этого уже не помогал, так же как и WDT Нет, у нас стартует по питанию отлично, а вот ресет срабатывает через раз. Между прочим, под отладчиком (J-Link) эта особенность не проявляется! А как цепь сброса реализована? Помнится, была какая-то проблема, из-за чего там надо было навешивать дополнительные резистор и конденсатор. Подробности в Эррате описаны. RC-цепь -> два инвертирующих триггера Шмитта -> пин RESET. Очень простое и элегантное решение :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 10 июня, 2013 Опубликовано 10 июня, 2013 · Жалоба Моя любимая ошибка - сделать плату, которая самопроизвольно попадает в boot ;-) Что на соответствующей ножке висит? Uart0 наружу есть? Что-нибудь отвечает на символ '?' ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 10 июня, 2013 Опубликовано 10 июня, 2013 · Жалоба Моя любимая ошибка - сделать плату, которая самопроизвольно попадает в boot ;-) Что на соответствующей ножке висит? Uart0 наружу есть? Что-нибудь отвечает на символ '?' ? Запуск нашей проги в любом случае всегда происходил. я это отследил писком зуммера. Но проблема была "уникальная". В драйвере EMC был установлен бит, блокирующий сброс этого модуля по тёплому ресету. Было так SCS |= 0x02; Таким образом, весь котроллер за исключением EMC сбрасывался, но инициализация этого модуля происходила повторно, хотя он в этот момент работал в нормально режиме (см. юзер мануал). Стоило мне закомментировать эту строку, как сброс по пину RESET стал отрабатываться корректно. Естественно, можно было отслеживать источник сброса, и если это был бы тёплый ресет, то не инициализировать контроллер "по живому" :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться