Страница 1 из 1
Atmega128 повреждение линии порта
Добавлено: Ср июн 07, 2017 14:33:27
ano60
Добрый день. Пытаюсь разобраться в причине неполадки контроллера.
Неполадка выглядит так: Atmega128, PINE3 вход с подтяжкой внутренним резистором. Подключена внешняя кнопка, длина провода 150 мм. При подключении пина к земле все нормально, программа выполняется. Если кнопка не нажата (нет земли), а к линии присоединен провод другим концом подключенный по назначению или вовсе не подключенный, программа слетает, начинается регулярная перезагрузка контроллера. Если подключить к ножке питание (без ограничивающего резистора или с резистором сопротивлением не более 65 ом) , то тоже все работает. Все другие линии портов работают нормально. Все неиспользуемые линии портов подтянуты к питанию. То есть - это наводка. Но почему только одна ножка так себя ведет?
Как такое поведение реализуется в микросхеме?
Re: Atmega128 повреждение линии порта
Добавлено: Ср июн 07, 2017 15:12:58
Z_h_e
Помеха с линии может перезапускать МК или приводить к другим сбоям. Если нечем посмотреть что творится на ноге МК, попробуйте поднять ее от платы и поглядеть что стало.
Re: Atmega128 повреждение линии порта
Добавлено: Ср июн 07, 2017 15:25:04
vem566
Внутренние резисторы у авр порядка 20 ком. В то же время для подключения удаленных датчиков, кнопок или других устройств рекомендуют внешние подтягивающие резисторы в зависимости от удаленности от 10 до 1 ком как раз для минимизации наводок. А что касается именно этого входа, то возможно звезды так сошлись. Ну или последовать совету Z_h_e.
Re: Atmega128 повреждение линии порта
Добавлено: Ср июн 07, 2017 16:11:39
Z_h_e
vem566 писал(а):Внутренние резисторы у авр порядка 20 ком.
Уточню. От 20 до 50 кОм.
ano60 писал(а):начинается регулярная перезагрузка контроллера.
Если перезагрузка не предусматривается в программе от данного пина, то это скорее сильная наводка, которая уходит в питание МК через его защитные диоды, например от искрящего реле. Если перезагрузка заложена в программе или есть такая ошибка в программе, то это может быть всего-лишь ложное срабатывание и достаточно подтянуть к питанию сопротивлением поменьше, ну например 1кОм.
Re: Atmega128 повреждение линии порта
Добавлено: Ср июн 07, 2017 16:40:50
ano60
Перезагрузка программой не предусмотрена. Вход я подтягивал резистором от 10к до 0 к. Работает от 0 до 65 ом. Я об этом писал. Косяк в программе как определить, если при подключении входа к "0" и непосредственно к питанию все работает? Там ветвление "если "0", если "1". Все, как обычно. Дополнительно скажу, что контроллер гонит 4 ШИМ на квадрант из IGBT. В нагрузке ДПТ 0,8КВт. Все коммуникации контроллера (ШИМ, сигнал ошибки с драйвера, разрешение драйверу) с гальв. развязкой. Кнопки и потенциометр-задатчик скорости - нет, но у них нет других соединений, кроме платы контроллера и провода в экранах и не длиннее 150 мм. Питание платы контроллера и чистой стороны развязок от индивидуального трансформатора. Я перекинул сигнал на другую (свободную) ногу этого же порта, и все работает. Для работы устройства мне ничего не нужно, но разобраться хочется, чтобы в другой раз не вляпаться.
Re: Atmega128 повреждение линии порта
Добавлено: Ср июн 07, 2017 20:18:46
vem566
Ну так порт "битый", да и все разборки.
Re: Atmega128 повреждение линии порта
Добавлено: Чт июн 08, 2017 03:43:27
Ivanoff-iv
а какая ещё периферия есть на этой ноге? (ну там прерывание или компаратор...)
Re: Atmega128 повреждение линии порта
Добавлено: Чт июн 08, 2017 05:54:52
ano60
Все правильно. Осталось от прошлого проекта подключенное прерывание, а процедуры обработки нет. Вот так и происходит замутнение сознания. Огромное спасибо за помощь.