Шаманъ 1 30 мая, 2019 Опубликовано 30 мая, 2019 (изменено) · Жалоба 1 minute ago, ViKo said: А с конденсатором 1000 мкФ на разъеме питания можете картины показать? Конечно, но попозже, сейчас убегаю... Да, вот еще, в состоянии зависания МК потребляет около 4мА (может немного меньше - полностью отключить физически все остальное на плате не могу). При замыкании сброса на землю потребление уменьшается до 2.2мА, когда сброс отпускаю опять те же 4мА, и ничего не перезапускается. 2 minutes ago, jcxz said: Как тут уже советовали: первым делом убедитесь, что проблемы не программные (кривая прошивка вашего девайса). 90% всех проблем в МК-шных девайсах - программные Согласен. Но я вот не могу придумать как программно завесить МК, чтобы он не реагировал на сброс? Ну и судя по состоянию ног до основной программы дело при сбое не доходит - т.е. код инициализации GPIO не исполняется. Изменено 30 мая, 2019 пользователем Шаманъ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 89 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 22 минуты назад, Шаманъ сказал: Да, вот еще, в состоянии зависания МК потребляет около 4мА (может немного меньше - полностью отключить физически все остальное на плате не могу). При замыкании сброса на землю потребление уменьшается до 2.2мА, когда сброс отпускаю опять те же 4мА, и ничего не перезапускается. А что на входе BOOT происходит при этих манипуляциях? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 41 минуту назад, Шаманъ сказал: Согласен. Но я вот не могу придумать как программно завесить МК, чтобы он не реагировал на сброс? Ну и судя по состоянию ног до основной программы дело при сбое не доходит - т.е. код инициализации GPIO не исполняется. А почему Вы думаете, что он не реагирует? ПО может просто виснуть при повторных сбросах (которые вызваны не включением, а именно сигналом сброса). Например: При включении питания содержимое какой-то области памяти (или регистров периферии) всегда определённое. Старт программы завязан на это изначальное состояние. А если состояние не соответствует - что-то в программе виснет. Вот у Вас при первом включении программа стартует, что-то частично успевает изменить в памяти и тут происходит сброс. А при повторном старте содержимое уже не такое, что после первого вкл. питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 47 минут назад, Шаманъ сказал: Ну и судя по состоянию ног до основной программы дело при сбое не доходит - т.е. код инициализации GPIO не исполняется. Значит виснет код до инициализации GPIO. Возможно.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 1 hour ago, Шаманъ said: Конечно, но попозже, сейчас убегаю... Схему лучше покажите, чтобы в угадайку не играть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба Например, не запускается кварцевый генератор. Как он там, кстати? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serglg 0 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба долго я тут читал и увидел истину в последнем посте. :-) 2 hours ago, ViKo said: Например, не запускается кварцевый генератор. Как он там, кстати? Именно так у меня выглядело, когда не мог запустить кварц. А это происходит ведь в самом начале. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 17 minutes ago, serglg said: Именно так у меня выглядело, когда не мог запустить кварц. ... используется внутренний ОГ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksandr Baranov 1 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 13 hours ago, haker_fox said: Не совсем понятно, что имел в виду автор топика. Но я в упор не понмаю, как МК может не реагировать на внешний аппаратный сброс? Отчего же? Лично наблюдал такое. Устройство не начинало работать как должно даже после внешнего аппаратного сброса, а только после "power cycle". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 1 hour ago, Aleksandr Baranov said: Отчего же? Лично наблюдал такое. Устройство не начинало работать как должно даже после внешнего аппаратного сброса, а только после "power cycle". Ну и?))) А что происходило-то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба ТС надо сделать "пустую" программу с while(1) { PORT_PINX ^= PORT_PINX; } и "всеми" настройками по умолчанию. Что тут неоднократно и предлагали. Есть гипотеза, что при повторных "дребезговых" сбросах программа-FW ТС "влетает" в какой-то специфический участок (или режим работы с зациклом). Почему не отрабатывает WD ? А он используется ? (пардон, ветку не вычитал), и с каким таймаутом ? Может при этих (непонятных) настройках таймаут 5 минут ? Отличие питания по USB - ограничение ейного тока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 30 мая, 2019 Опубликовано 30 мая, 2019 (изменено) · Жалоба 2 hours ago, Aleksandr Baranov said: Отчего же? Лично наблюдал такое. Устройство не начинало работать как должно даже после внешнего аппаратного сброса, а только после "power cycle". Ну, схем сброса полно. В том числе "импульсный", последовательно через конденсатор. Девайс, тем или иным образом, "подсох" :) Уменьшилась длительность или амплитуда сбросного напряжения по лапе Reset. Как вариант - это очень военный процессор, который уже увидел цель, а препятствий в этом случае, вроде какого-то ресета, быть не может Изменено 30 мая, 2019 пользователем k155la3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksandr Baranov 1 30 мая, 2019 Опубликовано 30 мая, 2019 · Жалоба 1 hour ago, haker_fox said: Ну и?))) А что происходило-то? Ну так, тиристорный эффект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 31 мая, 2019 Опубликовано 31 мая, 2019 (изменено) · Жалоба 23 hours ago, jcxz said: А почему Вы думаете, что он не реагирует? ПО может просто виснуть при повторных сбросах (которые вызваны не включением, а именно сигналом сброса). Вот! Огромное спасибо за правильную мысль :) Похоже я решил проблему. Вчера проверить не было времени, но не давала покоя одна мысль - при активном резете МК потреблял меньше, чем при неактивном - т.е. он что-то выполнял, и, соответственно, Ваша мысль была очень вероятным кандидатом на реальную картину. А подходящее место в программе было только одно. Так оно по всему и получилось. Вход в основную программу из загрузчика осуществлялся через сброс МК. Добавил контроль при входе, чтобы сброс был именно программный и все стало работать стабильно (по крайней мере как не старался завесить не смог, со старым загрузчиком, который без этой проверки, вешается достаточно просто через помехи в питании). Остался правда один вопрос - как мог происходить в этом месте сбой для меня по прежнему загадка (ибо та проверка предназначена для выявления повреждения или отсутствия основной программы, а она присутствовала в нормальном виде всегда). On 5/30/2019 at 12:05 PM, ViKo said: А с конденсатором 1000 мкФ на разъеме питания можете картины показать? Не знаю актуально ли, но как-то так (сброс не подключал): Изменено 31 мая, 2019 пользователем Шаманъ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться