RVL Опубликовано 7 августа, 2009 Поделиться Опубликовано 7 августа, 2009 Доброго времени суток! Исходное: ATmega16L подключен к ком-порту через MAX232CPE. Командами из компа управляем ногами контроллера, которые (через транзистор+реле) включают/отключают нагрузку (электродвигатели 12в*4А). Все это питается от того же блока питания, что и компьютер. В какие-то моменты времени в момент включения нагрузки комп начинает получать в ответ на команды информацию, что контроллер не разобрал команду (скорость 9600, кабель короткий). Также, комп может получать какие-то левые байтики на ком-порт. А иногда, контроллер вообще выполняет принятую команду с неверным параметром! Предположения: - max232cpe начинает "гнать лажу" в одну/обе сторону(ы) из-за колебаний питания; - мк виснет (глючит) после колебаний питания; Хотя оба предположения странные - вроде компьютерный блок питания ATX (350W) обеспечивает достаточный ток! Да и комп ведь при этом не виснет! Может кто сталкивался с проблемами режимов питания мк AVR или max232? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mazzi Опубликовано 7 августа, 2009 Поделиться Опубликовано 7 августа, 2009 Все эти вещи вполне нормальны. С этим следует бороться с помощью протокола. То есть формируется посылка, маркёр начала, длина, тело, контрольная сумма, маркёр конца. По контрольной сумме определяется правильность посылки и принимаются соответствующие действия. Найдите описание какого либо протокола и почитайте, например Modbus. 0 Пока ты жив, надежда есть. Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
RVL Опубликовано 7 августа, 2009 Автор Поделиться Опубликовано 7 августа, 2009 Нет. Не нормальны. Я ведь скалаз "иногда". Выглядит так: 1. сначала долгое время все нормально. 2. в какой-то момент контроллер начинает всякий раз добавлять к своему нормальному ответу мусорный (-ные) байт(ы). И так, пока не "передергну" питание всей платы с контроллером. 3. После передергивания питания контроллера все становится опять просто замечательно (переходим к п.1). Так что в протоколе здесь ошибок нет. Кроме того, мк имеет парсер команды. И если что-то пришло неправильно, он в ответ выдаст "ERRRO", иначе "ОК". Но ведь он выполняет команды при этом, но неправильно (ощущение, что параметр команды неправилен). 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
wowa Опубликовано 7 августа, 2009 Поделиться Опубликовано 7 августа, 2009 А можете показать фото устройства? У вас похоже серьёзные проблемы с фильтрацией сигнала и питания...Всегда когда надо включать и выключать нагрузку более чем 2А надо принимать меры о гащении помех в питании... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RVL Опубликовано 8 августа, 2009 Автор Поделиться Опубликовано 8 августа, 2009 Так вроде используется реле для развязки питания мк от питания нагрузки. У них только GND общий. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Zenner Опубликовано 8 августа, 2009 Поделиться Опубликовано 8 августа, 2009 При вкл/выкл релюшек тоже могут возникать помехи в питании, на которые, может быть, и обижается Ваш МК... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RVL Опубликовано 8 августа, 2009 Автор Поделиться Опубликовано 8 августа, 2009 При вкл/выкл релюшек тоже могут возникать помехи в питании, на которые, может быть, и обижается Ваш МК... Обмотки релюшек питаются от +24в. С мк 4 выхода подключены к дешифратору (ИД3), а о дешифратора к инфертору. От инвертора идет на транзисторный ключ, который включает/отключает обмотку реле (с параллельно включенным диодом в обратку). 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Zenner Опубликовано 8 августа, 2009 Поделиться Опубликовано 8 августа, 2009 Я бы начал с проверки MAX232. У меня с ней тоже были глюки. Только я юзал MAX232N и скорость была 115кб/с. При ~3.5В питании оно работало, при 5В - байт нормально, байт бреда... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RVL Опубликовано 8 августа, 2009 Автор Поделиться Опубликовано 8 августа, 2009 (изменено) Появилось новое подозрение на источник проблемы: Дело в том, что 4 выхода с мк подключены на вход дешифратора (аналог ИД3). А все его выходы (а они инверторные) подключены на входы инверторов. Так вот что получается: пусть в какой-то момент времени дергается питание. И этого хватает, чтобы отключился дешифратор. Когда отключается дешифратор, инверторы на вход получают лог.0 (поскольку вход болтается в воздухе), а на своих выходах выдают лог.1. Это открывает транзисторные ключи (одновременно все!) и включает одновременно все релюшки и нагрузку. Естественно, что это уже перебор. Выход: все выходы дешифратора подтянуть к +5в через, например, 22к. Может быть такое??? Изменено 8 августа, 2009 пользователем RVL 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Станислав Опубликовано 8 августа, 2009 Поделиться Опубликовано 8 августа, 2009 Последнее легко проверить отключив дешифратор вовсе. Мое мнение совпадает с мнением mazzi - ваш протокол не умеет или не корректно обробатывает ошибки. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Zenner Опубликовано 8 августа, 2009 Поделиться Опубликовано 8 августа, 2009 (изменено) Да протокол явно непричем. Если бы его глючило - глючило бы постоянно. Скорее всего глюки железа, и стоит попробовать, как сказал Станислав, отключить дешифратор... Изменено 8 августа, 2009 пользователем Zenner 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Станислав Опубликовано 8 августа, 2009 Поделиться Опубликовано 8 августа, 2009 Правильно написанный протокол глюки железа обработает. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
RVL Опубликовано 8 августа, 2009 Автор Поделиться Опубликовано 8 августа, 2009 Протокол сейчас правлю. До этого вообще не было контроля целостности управляющей строки. Проводилась только сравнение с шаблоном команды, а также проверка, что параметры укладываются в диапазон. Т.е. проверки по сути не было. Сейчас добавляю CRC16 для проверки, что команда и ее параметры пришли такими, как их отправлял компьютер. Отключить дешифратор не получится. Мы останемся только с контроллером. Нагрузка отключится вместе с дешифратором. А так все это у меня собрано на макетке (только мк, max, светодиоды заместо нагрузки и кнопки заместо датчиков). На макетке все работает как надо. Протокол работает без ошибок. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
l-e-o-n-a-r-d-o Опубликовано 18 августа, 2009 Поделиться Опубликовано 18 августа, 2009 трабла очевидна. На релюшках нету диодов в обратном направлении. Это раз. Дальше ключем проблемы является вот эта строчка: Все это питается от того же блока питания, что и компьютер. Что сделать: 1) поставить в обратном направлении шунтирующие диоды на реле (обмотка реле) 2) поставить подтяжку на + ресет 3) поставить дроссель по плюсу и конденсатор более чем 470мкф хотя бы. у меня была довольно таки итересная ситуация: авр 910 сделал, и подключил на выход через транзистор маленькое реле 5В , все это питалось от юсб. Релюшка жрет отсилы 10ма. Так вот иногда в момент включения/выключения реле комп просто зависал и отрубался очень жостко! очень неприятно это было... все это закончилось когда на реле поставил диод. в момент выключения реле на обмотках возникает довольно таки большой отрицательный импульс которого у меня хватало чтобы комп отрубился. У вас же изза этого мк пропускает пару тактов или подвисает или еще хз что с ним происходит. Что сделать я уже написал. Напишите результат 0 чем шире кругозор, тем тупее угол обозрения Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.