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

STM32F4 и PORTG вывод 11

STM32F437II.

Столкнулся с проблемой, которая по началу и не предполагалась. Прошу отнестись серьёзно, хоть она связана с простым чтением цифровогоо порта.

Есть мех. селектор (переключатель), который подключается к выводам порта G.

Ползунок этого переключателя заземлён, выводы переключательной группы подключены к выводам микроконтроллера, которые сконфигурированы на pull UP.

Переключаю, определяю, что на выводе (входе порта) логический ноль, выполняю свои действия.

Задачка казалась бы тривиальная. Практически всё работает, кроме вывода PG11.

Но! Не тут то было. Не смог понять в чём проблема.

 

Теперь описание схемы.

Выводы селектора подключены к выводам порта G. Опрашиваю состояние порта G.

Если переключатель в положении, когда PG11 в нуле, программа вылетает.

Для других выводов такой проблемы нет. Конфигурация выводов идеинтичная.

Ошибок в логике не может быть.

 

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

Если же не подключать переключатель, то программы на новых (девственных) платах нормально стартуют.

Если отсоединить переключатель от плат, на которых был подключен переключатель при прошивке, то программа также не стартует.

 

В errata информации по этой проблеме не нашёл.

 

Заранее спасибо за рекомендации.

 

 

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


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

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

 

что еще за периферия работает в проце? пробовали все кроме этого отрубить?

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


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

Саму ножку прозвонили с соседними и с землёй и питанием? Может банальная закоротка на плате.

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


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

Саму ножку прозвонили с соседними и с землёй и питанием? Может банальная закоротка на плате.

 

Или на вывод сконфить, да диодом помигать... :laughing:

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


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

Саму ножку прозвонили с соседними и с землёй и питанием? Может банальная закоротка на плате.

 

Закоротка исключена.

Сигналы смотрел осциллографом.

 

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

 

что еще за периферия работает в проце? пробовали все кроме этого отрубить?

 

Это всё в начале программы. То что написал, простой и банальгый тест на работоспосбность.

Инициализацию перрифеиии просмотрел. Нет внештатных конфигураций PG11.

 

Не хочется быть первооткрывателем по багам.

 

Всегда считал, что причина проблем в моей собственной кривизне рук и откуда они растут.

Но это не тот случай.

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


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

может там что сильно искрит или перемыкает все же, что там за выключатель-переключатель.... ?

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


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

может там что сильно искрит или перемыкает все же, что там за выключатель-переключатель.... ?

 

Обычный поворотный переключатель.

Как я писал раньше, закорачивает сигналы порта G на землю (ползунок).

Вводы порта - входы, пулап резисторы включены. При переключении есть конечно дребезг. Не думаю, что это он вырубает микроконтроллер.

Соседние с PG11 выводы работают. Только с PG11 какая-то странность.

Да и то, что микроконтроллер перестаёт стартовать после включения питания очень напрягает.

Проверено на нескольких платах. Симптомы одни и теже.

 

 

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


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

а в поддержку пробовали писать? их должна история заинтересовать. Особенно если у вас некоторая выборка по платам имеется.

 

напишите потом, что ответят, очень интересно.

 

 

 

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


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

а в поддержку пробовали писать? их должна история заинтересовать. Особенно если у вас некоторая выборка по платам имеется.

 

напишите потом, что ответят, очень интересно.

Я обнаружил, что при редактировании старой программы оставил внешнее прерывание на выводе PG11.

Программы обработки прерывания не было поэтому программа вылетала.

С этим разобрался. Всё-таки руки кривые.

 

А вот то, что микроконтроллер не стартует после включения питания, осталось.

На новых платах всё запускается сразу. На двух первых, которых немного помучил, запускается только от внешнего ресета.

Пробовал менять уровни BOR STM утилитой. Не помогает.

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


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

а есть способы узнать на каком моменте?

попробуйте диодики позажигать, докуда программа доходит, может она в настройках PLL виснет, а может у вас еще какие старые прерывания остались?:

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


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

а есть способы узнать на каком моменте?

попробуйте диодики позажигать, докуда программа доходит, может она в настройках PLL виснет, а может у вас еще какие старые прерывания остались?:

 

Но от внешнего ресета программа стартует. И ток потребления возрастает и светодиоды мигают как надо.

Не очень хочется аппаратный watch-dog разрешать, потом его надо будет постоянно обнулять.

Что-то здесь совсем простое, но пока понять не могу.

 

В цепи ресета R=100кОм и С=0.33 мкФ.

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


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

В цепи ресета R=100кОм и С=0.33 мкФ.

А если просто подтяжку reset сделать, без конденсатора? Чем внутренний ресет не устраивает?

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


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

А если просто подтяжку reset сделать, без конденсатора? Чем внутренний ресет не устраивает?

 

На плате стоит микросхема SDRAM. При упрощённом программном тестировании я исключил конфигурацию контроллера SDRAM и самой микросхемы.

Так, на всякий случай, раскомментировал этот кусок и программа начала запускаться после включения питания.

 

Пока не совсем понял почему. Потом дойдёт.

 

 

Тем не менее, всем спасибо за помощь.

ВОПРОС снимаю.

 

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


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

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

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

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

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

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

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

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

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

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