RVL

Проблемы С Работой Uart

14 сообщений в этой теме

RVL    0

Доброго времени суток!

Исходное:

ATmega16L подключен к ком-порту через MAX232CPE.

Командами из компа управляем ногами контроллера, которые (через транзистор+реле) включают/отключают нагрузку (электродвигатели 12в*4А).

Все это питается от того же блока питания, что и компьютер.

В какие-то моменты времени в момент включения нагрузки комп начинает получать в ответ на команды информацию, что контроллер не разобрал команду (скорость 9600, кабель короткий). Также, комп может получать какие-то левые байтики на ком-порт. А иногда, контроллер вообще выполняет принятую команду с неверным параметром!

Предположения:

- max232cpe начинает "гнать лажу" в одну/обе сторону(ы) из-за колебаний питания;

- мк виснет (глючит) после колебаний питания;

Хотя оба предположения странные - вроде компьютерный блок питания ATX (350W) обеспечивает достаточный ток! Да и комп ведь при этом не виснет!

Может кто сталкивался с проблемами режимов питания мк AVR или max232?

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


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

Все эти вещи вполне нормальны. С этим следует бороться с помощью протокола. То есть формируется посылка, маркёр начала, длина, тело, контрольная сумма, маркёр конца. По контрольной сумме определяется правильность посылки и принимаются соответствующие действия.

Найдите описание какого либо протокола и почитайте, например Modbus.

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


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

Нет. Не нормальны. Я ведь скалаз "иногда".

Выглядит так:

1. сначала долгое время все нормально.

2. в какой-то момент контроллер начинает всякий раз добавлять к своему нормальному ответу мусорный (-ные) байт(ы). И так, пока не "передергну" питание всей платы с контроллером.

3. После передергивания питания контроллера все становится опять просто замечательно (переходим к п.1).

Так что в протоколе здесь ошибок нет. Кроме того, мк имеет парсер команды. И если что-то пришло неправильно, он в ответ выдаст "ERRRO", иначе "ОК".

Но ведь он выполняет команды при этом, но неправильно (ощущение, что параметр команды неправилен).

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


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

А можете показать фото устройства? У вас похоже серьёзные проблемы с фильтрацией сигнала и питания...Всегда когда надо включать и выключать нагрузку более чем 2А надо принимать меры о гащении помех в питании...

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


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

Так вроде используется реле для развязки питания мк от питания нагрузки. У них только GND общий.

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


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

При вкл/выкл релюшек тоже могут возникать помехи в питании, на которые, может быть, и обижается Ваш МК...

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


Ссылка на сообщение
Поделиться на других сайтах
RVL    0
При вкл/выкл релюшек тоже могут возникать помехи в питании, на которые, может быть, и обижается Ваш МК...

Обмотки релюшек питаются от +24в.

С мк 4 выхода подключены к дешифратору (ИД3), а о дешифратора к инфертору. От инвертора идет на транзисторный ключ, который включает/отключает обмотку реле (с параллельно включенным диодом в обратку).

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


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

Я бы начал с проверки MAX232.

У меня с ней тоже были глюки. Только я юзал MAX232N и скорость была 115кб/с. При ~3.5В питании оно работало, при 5В - байт нормально, байт бреда...

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


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

Появилось новое подозрение на источник проблемы:

Дело в том, что 4 выхода с мк подключены на вход дешифратора (аналог ИД3). А все его выходы (а они инверторные) подключены на входы инверторов.

Так вот что получается: пусть в какой-то момент времени дергается питание. И этого хватает, чтобы отключился дешифратор. Когда отключается дешифратор, инверторы на вход получают лог.0 (поскольку вход болтается в воздухе), а на своих выходах выдают лог.1. Это открывает транзисторные ключи (одновременно все!) и включает одновременно все релюшки и нагрузку. Естественно, что это уже перебор.

Выход: все выходы дешифратора подтянуть к +5в через, например, 22к.

Может быть такое???

Изменено пользователем RVL

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


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

Последнее легко проверить отключив дешифратор вовсе. Мое мнение совпадает с мнением mazzi - ваш протокол не умеет или не корректно обробатывает ошибки.

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


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

Да протокол явно непричем. Если бы его глючило - глючило бы постоянно.

Скорее всего глюки железа, и стоит попробовать, как сказал Станислав, отключить дешифратор...

Изменено пользователем Zenner

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


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

Протокол сейчас правлю. До этого вообще не было контроля целостности управляющей строки.

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

Т.е. проверки по сути не было.

Сейчас добавляю CRC16 для проверки, что команда и ее параметры пришли такими, как их отправлял компьютер.

Отключить дешифратор не получится. Мы останемся только с контроллером. Нагрузка отключится вместе с дешифратором.

А так все это у меня собрано на макетке (только мк, max, светодиоды заместо нагрузки и кнопки заместо датчиков).

На макетке все работает как надо. Протокол работает без ошибок.

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


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

трабла очевидна. На релюшках нету диодов в обратном направлении. Это раз. Дальше ключем проблемы является вот эта строчка:

Все это питается от того же блока питания, что и компьютер.

Что сделать:

1) поставить в обратном направлении шунтирующие диоды на реле (обмотка реле)

2) поставить подтяжку на + ресет

3) поставить дроссель по плюсу и конденсатор более чем 470мкф хотя бы.

у меня была довольно таки итересная ситуация: авр 910 сделал, и подключил на выход через транзистор маленькое реле 5В , все это питалось от юсб. Релюшка жрет отсилы 10ма. Так вот иногда в момент включения/выключения реле комп просто зависал и отрубался очень жостко! очень неприятно это было... все это закончилось когда на реле поставил диод. в момент выключения реле на обмотках возникает довольно таки большой отрицательный импульс которого у меня хватало чтобы комп отрубился. У вас же изза этого мк пропускает пару тактов или подвисает или еще хз что с ним происходит. Что сделать я уже написал. Напишите результат

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • @aiblack , эффективнее всего спец. химия вроде такой, не сравнить ни с бензином, ни с ацетоном, ни с "коктейлями Молотова".
    • Зависит от всех трёх деталей. С уважением В. Что будет? -а ничего страшного: при "0" на 10-й будет "1" на 8-й; при "1" на 10-й будет ~0,5Uпит на 8-й. Чем грозит? -а ничем: последующие эл-ты ТТЛ работать не захотят - для них 0,5Uпит - "ни то, ни сё". С уважением В. В 155 серии у нормального элемента сквозной ток через вых. транзисторы =20мА, у "усиленного" (с большим коэф. разветвления) - до 100мА. Если бы эти токи были опасными для МС, то они бы выгорали после нескольких переключений. С уважением В. ПС. Кстати: если 155ла3 "загнать" в линейный режим (а она это позволяет), то Ку=20.
    • Не спорю, просто ГОСТ и СНиП про разное, первый про всё второй только про строительство. Вот в нём и написано про объём вентиляции, толщине перекрытий, высоте ступеней и почему в старых домах дуло изо всех оконных щелей... приточная вентиляция аднака, а мы их ватой и пластырем  
    • До Вас такие мысли посещали не одну тысячу любителей халявы или просто неопытных радиолюбителей. "Вьюношей со взором горящим"...  Если конкретно погуглите - найдёте массу ссылок, чаще всего ведущих в никуда. Или, в радиолюбительские форумы, где или пинками под зад, или подробными объяснениями за невозможность такого разибьясняют.  Вы из центрального процессора своей Нокии вырежете программу управления камерой?  Нет? Тогда гуглите даташит на камеру. По модели и серии.  После этого - изучив его - ищете аппаратное и программное обеспечение.  А уж после этого - с непонятками - можно и здесь поспрошать.  
    • Всем привет! 

      Стал обладателем квартета ламп 6au5gt. Думаю собрать двухтактный усилитель на этих лампах. Если у кого-то есть опыт работы с этими лампами в двухтактной схеме, посоветуйте проверенный вариант.  
    • Здравствуйте Уважаемые. Сегодня неудачно испытал v17 с полевиком IRF630(бед диода в истоке). Заработало на максимальных оборотах. И не регулировалось вообще.  Пайку проверил, детали проверил.  Распаял в общем. Буду пробовать делать с новыми деталями по черной схеме выше.