Sergio66 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 · Жалоба Так вроде бы никаких ошибок в настройках нет. А как настроена приемная часть? И, если я правильно понял, то на 1 переданный байт приходится аж 5 принятых. А что будет, если изменить передачу. Например, передавать такие коды: 0х01, 0х02, 0х04, и т.д. Что будет на приеме? Попробуйте передать 7 байт вот таким образом и посмотрите, что на приемнем конце. И еще - проверьте структуру и в частности битовое поле USCRA.5! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan2006 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 · Жалоба 2 ILYCHOFF 12:46:39> xяЂ ... 12:47:52> 78 00 FF 80 12:47:52> 00 Вообще эти символы (FF и 80) при неправильной работе с УАПП появляются очень часто. FF вместо данных получается, например, если baudrate приемника в ~10 раз больше baudrate передатчика. т.е. пока передатчик отправил только один бит=1, приемник получил все 10. Для предотвращения подобных ситуаций как раз и используют stop-биты. Вторая ошибка может заключатся в лишнем инвертировании сигнала по пути от передатчика к приемнику, например нечто подобное получал, когда делал гальваническую развязку на оптронах и перепутал местами два диода. попробуйте поизменять baudrate на компе и посмотрите на полученные данные, с большой вероятностью проблема решится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYCHOFF 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 · Жалоба у меня стоит кварц 4 МГц скорость 9600 ошибка составляет 0,2 % как CV пишет, может из-за этого такое происходить? смотрю осциллографом при передачи 0x01 с контроллера выходит стартовый бит лог. 0 затем первый бит данных - лог. 1 и до следующей посылки а после MAX232 сигнал полностью инвертирован, т. е. стартовый бит лог. 1, а не 0, так и должно быть ? для компа стартовый бит должен быть лог. 1 ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 · Жалоба у меня стоит кварц 4 МГц скорость 9600 ошибка составляет 0,2 % как CV пишет, может из-за этого такое происходить? смотрю осциллографом при передачи 0x01 с контроллера выходит стартовый бит лог. 0 затем первый бит данных - лог. 1 и до следующей посылки а после MAX232 сигнал полностью инвертирован, т. е. стартовый бит лог. 1, а не 0, так и должно быть ? для компа стартовый бит должен быть лог. 1 ??? Вам же уже написали, что MAX232 - инвертирует!!! У ПК приемник с линии RS232 тоже должет инвертировать... значит данные должны приходить в нормальном виде (двойная инверсия - означает, что принятые данные не инвертированы). Анализировать их необходимо после приемника... И вникнуть ,что у Вас приемник считал на ПК. Пользуйтесь программными анализаторами протокола (для COM порта). На форуме по ним ссылок было достаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kay 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 (изменено) · Жалоба попробуй открыть ком порт на разных скоростях, у тебя похоже скорости приёмника/передатчика несовпадают. а если не поможет, то собери кабель вот по этой схеме. я такой для сотового телефона делал, работает замечательно, главное включить сигналы DTR или RTS, а то питания не будет. А можно питание отдельно прикрутить, как описано тут. Изменено 6 февраля, 2006 пользователем kay Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 · Жалоба попробуй открыть ком порт на разных скоростях, у тебя похоже скорости приёмника/передатчика несовпадают. а если не поможет, то собери кабель вот по этой схеме. я такой для сотового телефона делал, работает замечательно, главное включить сигналы DTR или RTS, а то питания не будет. А можно питание отдельно прикрутить, как описано тут. Да проблема уже понятна давным-давно! Но советы и рекомендации инициатор темы не воспринимает... :angry2: Уважаемый, ILYCHOFF. Это выглядит так: (МК[передатчик/приемник] - RS232 - [передатчик/приемник]ПК): скорость приема (Baud Rate), количество бит данных (Data), бит паритета (Parity), стоповые биты (SBit) - должны быть одинаковыми!!! В первую очередь заняться надо проверкой именно этого. Выкладывайте код инициализации UART для МК и ПК, будем смотреть! P.S. А кабель пока надо попробовать по нуль-модемному варианту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 · Жалоба Где можно скачать программу RS 232 Pro? Существует ли подобная программа для RS 485? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 6 февраля, 2006 Опубликовано 6 февраля, 2006 (изменено) · Жалоба UDR = ('1'); ... Это в ASCII 12:46:38> xяЂ Это в HEX 12:47:52> 78 00 FF 80 '1' = $31 (00110001) у Вас растягивается в 0000000111111111000000001111, следовательно два варианта, либо частота чипа меньше в 4 раза, либо делитель уарта больше в 4 раза. Последнее исключается, т.к. в программе четко видно как Вы задаете делитель УАРТа. Остается только вариант с пониженной частотой тактирования чипа в 4 раза. 4Mhz/4 = 1Mhz. 1Mhz - это частота внутреннего RC генератора, и именно на работу от внутреннего генератора Mega16 настраивается заводом-изготовителем. Запрограммируйте Low Fuse Byte, биты CKSEL=1111 для тактирования чипа от кварца. Изменено 6 февраля, 2006 пользователем defunct Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYCHOFF 0 7 февраля, 2006 Опубликовано 7 февраля, 2006 · Жалоба Разобрался. Всем большое спасибо, особенно defunct , причина была именно в этом проц считал с частотой 1 МГц. Тему можно закрывать. еще раз всем большое спасибо..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 14 марта, 2006 Опубликовано 14 марта, 2006 · Жалоба Посоветуйте, пожалуйста, недорогую микросхему в DIP корпусе для того чтобы подключить контроллер с uart к com порту ПК на расстоянии одного метра и скоростью 57600 бит/с. Насколько я понимаю, на выходе TXD контроллера низкий логический уровень ~0 В, а высокий около напряжения питания (например 5 В). С другой стороны com порт воспринимает +11 В как единицу и -11 В как ноль. Выполняют ли такое преобразование микросхемы типа max232 (помимо инверсии)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 15 марта, 2006 Опубликовано 15 марта, 2006 · Жалоба С другой стороны com порт воспринимает +11 В как единицу и -11 В как ноль. Выполняют ли такое преобразование микросхемы типа max232 (помимо инверсии)? Да. max232 - это преобразователь уровней RS <-> TTL. Насколько я понимаю, на выходе TXD контроллера низкий логический уровень ~0 В, а высокий около напряжения питания (например 5 В). С другой стороны com порт воспринимает +11 В как единицу и -11 В как ноль. Думаю, если Вы не делаете промышленное устройство, то простого инвертора на одном транзисторе (по каждому каналу) будет достаточно. Из собственных экпериментов точно знаю, что COM порт компьютера нормально воспринимает уровни TTL так: меньше 3V- лог. 1 больше 3V -лог. 0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 16 марта, 2006 Опубликовано 16 марта, 2006 · Жалоба Думаю, если Вы не делаете промышленное устройство, то простого инвертора на одном транзисторе (по каждому каналу) будет достаточно. Из собственных экпериментов точно знаю, что COM порт компьютера нормально воспринимает уровни TTL так: меньше 3V- лог. 1 больше 3V -лог. 0 Большое спасибо за совет, такой вариант действительно работает ;) Правда при приёме (при передаче такого не наблюдается) на компьютере периодически (раз в пол минуты и длится секунд десять) в rs232pro видно как набегают помехи, что видимо связано с малым запасом помехоустойчивости (у меня "1" - ~0 В, "0" - +5 В). Можно ли это как-то побороть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 17 марта, 2006 Опубликовано 17 марта, 2006 (изменено) · Жалоба в rs232pro видно как набегают помехи, что видимо связано с малым запасом помехоустойчивости (у меня "1" - ~0 В, "0" - +5 В). Можно ли это как-то побороть? Pull-up на коллектор транзистора "сбоящего" канала поменьше поставьте ~500om-1kom.. Изменено 17 марта, 2006 пользователем defunct Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kojevnikov 0 17 марта, 2006 Опубликовано 17 марта, 2006 · Жалоба У тебя не согласована скорость между компьютером и микроконтроллером. Еще внимательнее проверь настройки USART Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 17 марта, 2006 Опубликовано 17 марта, 2006 · Жалоба Pull-up на коллектор транзистора "сбоящего" канала поменьше поставьте ~500om-1kom.. У меня вместо транзистора схема 3ИЛИ-НЕ (другой под рукой не оказалось =( ) с объединенными тремя входами в один. У тебя не согласована скорость между компьютером и микроконтроллером. Еще внимательнее проверь настройки USART Скорость нормально согласована, т.к. когда я непрерывно в течении нескольких минут что-то передаю в компьютер, вся посылка доходит без каких-либо искажений, когда же ничего не передаю, временами принимается "каша"... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться