korotaev 0 31 июля, 2015 Опубликовано 31 июля, 2015 · Жалоба STM32F437II. Столкнулся с проблемой, которая по началу и не предполагалась. Прошу отнестись серьёзно, хоть она связана с простым чтением цифровогоо порта. Есть мех. селектор (переключатель), который подключается к выводам порта G. Ползунок этого переключателя заземлён, выводы переключательной группы подключены к выводам микроконтроллера, которые сконфигурированы на pull UP. Переключаю, определяю, что на выводе (входе порта) логический ноль, выполняю свои действия. Задачка казалась бы тривиальная. Практически всё работает, кроме вывода PG11. Но! Не тут то было. Не смог понять в чём проблема. Теперь описание схемы. Выводы селектора подключены к выводам порта G. Опрашиваю состояние порта G. Если переключатель в положении, когда PG11 в нуле, программа вылетает. Для других выводов такой проблемы нет. Конфигурация выводов идеинтичная. Ошибок в логике не может быть. Ненормальность проявляется также и в том, что после работы платы с подключенным переключателем, программа микроконтроллера не стартует после включения питания. Помогает только принудительный ресет. Если же не подключать переключатель, то программы на новых (девственных) платах нормально стартуют. Если отсоединить переключатель от плат, на которых был подключен переключатель при прошивке, то программа также не стартует. В errata информации по этой проблеме не нашёл. Заранее спасибо за рекомендации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 31 июля, 2015 Опубликовано 31 июля, 2015 · Жалоба чуднО, по описанию ничего особенного. Приведите вашу инициализацию выводов, чисто на всякий случай, вдруг все же что-то упускаете... что еще за периферия работает в проце? пробовали все кроме этого отрубить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvus 1 31 июля, 2015 Опубликовано 31 июля, 2015 · Жалоба Саму ножку прозвонили с соседними и с землёй и питанием? Может банальная закоротка на плате. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 31 июля, 2015 Опубликовано 31 июля, 2015 · Жалоба Саму ножку прозвонили с соседними и с землёй и питанием? Может банальная закоротка на плате. Или на вывод сконфить, да диодом помигать... :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
korotaev 0 31 июля, 2015 Опубликовано 31 июля, 2015 · Жалоба Саму ножку прозвонили с соседними и с землёй и питанием? Может банальная закоротка на плате. Закоротка исключена. Сигналы смотрел осциллографом. чуднО, по описанию ничего особенного. Приведите вашу инициализацию выводов, чисто на всякий случай, вдруг все же что-то упускаете... что еще за периферия работает в проце? пробовали все кроме этого отрубить? Это всё в начале программы. То что написал, простой и банальгый тест на работоспосбность. Инициализацию перрифеиии просмотрел. Нет внештатных конфигураций PG11. Не хочется быть первооткрывателем по багам. Всегда считал, что причина проблем в моей собственной кривизне рук и откуда они растут. Но это не тот случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 31 июля, 2015 Опубликовано 31 июля, 2015 · Жалоба может там что сильно искрит или перемыкает все же, что там за выключатель-переключатель.... ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
korotaev 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба может там что сильно искрит или перемыкает все же, что там за выключатель-переключатель.... ? Обычный поворотный переключатель. Как я писал раньше, закорачивает сигналы порта G на землю (ползунок). Вводы порта - входы, пулап резисторы включены. При переключении есть конечно дребезг. Не думаю, что это он вырубает микроконтроллер. Соседние с PG11 выводы работают. Только с PG11 какая-то странность. Да и то, что микроконтроллер перестаёт стартовать после включения питания очень напрягает. Проверено на нескольких платах. Симптомы одни и теже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 2 августа, 2015 Опубликовано 2 августа, 2015 · Жалоба а в поддержку пробовали писать? их должна история заинтересовать. Особенно если у вас некоторая выборка по платам имеется. напишите потом, что ответят, очень интересно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
korotaev 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба а в поддержку пробовали писать? их должна история заинтересовать. Особенно если у вас некоторая выборка по платам имеется. напишите потом, что ответят, очень интересно. Я обнаружил, что при редактировании старой программы оставил внешнее прерывание на выводе PG11. Программы обработки прерывания не было поэтому программа вылетала. С этим разобрался. Всё-таки руки кривые. А вот то, что микроконтроллер не стартует после включения питания, осталось. На новых платах всё запускается сразу. На двух первых, которых немного помучил, запускается только от внешнего ресета. Пробовал менять уровни BOR STM утилитой. Не помогает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба а есть способы узнать на каком моменте? попробуйте диодики позажигать, докуда программа доходит, может она в настройках PLL виснет, а может у вас еще какие старые прерывания остались?: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
korotaev 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба а есть способы узнать на каком моменте? попробуйте диодики позажигать, докуда программа доходит, может она в настройках PLL виснет, а может у вас еще какие старые прерывания остались?: Но от внешнего ресета программа стартует. И ток потребления возрастает и светодиоды мигают как надо. Не очень хочется аппаратный watch-dog разрешать, потом его надо будет постоянно обнулять. Что-то здесь совсем простое, но пока понять не могу. В цепи ресета R=100кОм и С=0.33 мкФ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bugdesigner 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба В цепи ресета R=100кОм и С=0.33 мкФ. А если просто подтяжку reset сделать, без конденсатора? Чем внутренний ресет не устраивает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
korotaev 0 3 августа, 2015 Опубликовано 3 августа, 2015 · Жалоба А если просто подтяжку reset сделать, без конденсатора? Чем внутренний ресет не устраивает? На плате стоит микросхема SDRAM. При упрощённом программном тестировании я исключил конфигурацию контроллера SDRAM и самой микросхемы. Так, на всякий случай, раскомментировал этот кусок и программа начала запускаться после включения питания. Пока не совсем понял почему. Потом дойдёт. Тем не менее, всем спасибо за помощь. ВОПРОС снимаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться