Технический форум по робототехнике.
bondik » 29 янв 2011, 13:55
Собственно делаю небольшой проектик.Решил протестировать схему в протеусе.Использую виртуальный ком порт.Отсылаю нормальные символы ,а приходят какието непонятные кракозябры.Соединял в протеусе на ком порте RX TX,работает нормально,что отслаю в терминале то и приходит.Скорость 9600Бодов.Мега на частоте 16МГц
Скрин схемы:
Скрин терминала(отправляю символ 'B'):
Помогите пожалуйста разобраться.Схема протеуса и проект CodeVisionAVR в архиве.
Radist » 29 янв 2011, 17:10
RX с TX в компорту не перепутаны? В железе косяков не видно. Можете подключить виртуальный осциллограф? Он точно поможет.
bondik » 29 янв 2011, 19:35
Не перепутаны.Осцилографом посмотрел тоже вроде все норм,я вот думаю может частоты не хватает на передачу,у меня передача зацикленна.А что самое парадоксальная,в цикле делаю задержку в одну секунду и компонент в протеусе "ком порт" ошибку выдает
Добавлено спустя 27 минут 38 секунд:Вообщем вопросов все больше.Заместо МК я подключил виртуальный терминал протеусе и с компа на него слал символы.Тоже были кракозябры.Но потом я в протеусе в настройках терминала поставил галку RX TX inverted.
И все сразу стало нормально.
Так спрашивает какого ... РХ ТХ конвертированы,и это только так протеусе или в железе тоже???
Radist » 29 янв 2011, 20:13
лог 0 ттл лог 1 ттл лог 0 СОМ лог 1 СОМ
0 +5 +12 -12
dccharacter » 29 янв 2011, 21:12
Я мож криво как-то смотрю, но посмотрел уже три раза, глаза лезут на лоб, надеюсь мне кажется.
Путь сигнала от компа: TXD->T1OUT(пум, затык)->T1IN->TXD
Путь сигнала от МК: RXD->R1OUT->R1IN->RXD
Т.е. и комп и МК усердно пихают биты в одну и туже линию, а из другой линии оба же ждут изо всех сил пакетов каких-то.....
bondik » 30 янв 2011, 00:34
Нет,почему все правильно по поводу подключения.Я просто понять не могу откуда это инвертирование берется
Да,и еще на этих ножках в протеусе у макс232 кружочку нарисованы ,что значит инвертирование
Добавлено спустя 15 минут 51 секунду:нашел небольшую статью
http://www.radioprog.ru/?page=25,там написано
Однако, стоит обратить внимание, что MAX232 содержит логические инверторы, и поэтому полярность RX/TX виртуального терминала должна быть изменена на отрицательную, чтобы схема моделировалась должным образом.
И опять же возникает вопрос,это только в протеусе так,или и в железе?
avr123.nm.ru » 30 янв 2011, 00:37
Соедините без макса. терминал в PROTEUS напрямую работает.
bondik » 30 янв 2011, 00:41
Соединял,все работает отлично.Но я это в железе собирать буду и мне очень важно в реальности выходы тоже инвертируются или нет.
dccharacter » 30 янв 2011, 00:46
Ну как все правильно-то? Объясните мне кто-нибудь, если все действительно правильно, то почему оно правильно?
Тх - это ПОСЫЛАЮЩИЙ ПИН. Рх - ПРИНИМАЮЩИЙ. Вы с двух устройств пихаете сигнал в одну и ту же линию - ну как так можно?
bondik » 30 янв 2011, 00:51
dccharacter Нет,блин почитайте схемы уже собранных устройст.А я наконецто понял =) Огромное спасибо Radist,я только сейчас нашел что приемник компа тоже инвертирует,а так как у меня через виртуалку два порта,значит у меня не двойная инверсия , а тройная.Огромное спасибо Radist.
dccharacter » 30 янв 2011, 00:58
Йолки, правда похоже. Открыл COMPIM demo, там тот же бред. Извини, bondik.
forastr » 15 мар 2011, 16:28
2 bondik: А как ты исправил чтобы в proteus заработало?