реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> "Рассинхронизация" с USART, Нестабильная связь
nik0lay_
сообщение Oct 19 2010, 12:57
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 19-10-10
Пользователь №: 60 270



Здравствуйте.

Такая проблема: есть собранное устройство на PIC16F877, интерфейсная микросхема ADM232AAN, скорость передачи 2400, асинхронный прем/передача, 8 бит, четность не смотрим, 1 стоповый бит, управления потоком нет, подключение по 3-м проводам (прем-передача-общий); не всегда устанавливается связь с компьютером.
Например: компьютер включен, включаю устройство, включаю гипертерминал (все настройки соответсвуют) - нет приема, в терминале отключить-вызов, отключить-вызов.. и связь появляется! иногда связь начинает идти "кривыми" символами (передаются другие), иногда начинает идти как положено. Причем если уж подключилось, но связь стабильная, все четко, без сбоев.
Если питание на устройство подавать при включенном терминале, то связь устанавливается сразу, без сбоев.

Не хватает опыта что бы разобраться в причинах, большая просьба помочь......
Go to the top of the page
 
+Quote Post
Danis
сообщение Oct 19 2010, 13:11
Сообщение #2


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(nik0lay_ @ Oct 19 2010, 15:57) *
Не хватает опыта что бы разобраться в причинах, большая просьба помочь......


Привет, Вам нужен снифер Com порта, берите например LGComSpyInst. Только он для стандартных портов Com1 и Com2, виртуальные могут не пойти.

Сообщение отредактировал Danis - Oct 19 2010, 13:15
Прикрепленные файлы
Прикрепленный файл  LGComSpyInst.zip ( 3.39 мегабайт ) Кол-во скачиваний: 60
 


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
nik0lay_
сообщение Oct 19 2010, 13:24
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 19-10-10
Пользователь №: 60 270



Цитата(Danis @ Oct 19 2010, 19:11) *
Привет, Вам нужен снифер Com порта

Попробую, только чем он мне сможет помочь? Устройство мое, что оно передает я знаю, а что идет в порт гипертерминал и так показывает...
Go to the top of the page
 
+Quote Post
Danis
сообщение Oct 19 2010, 13:39
Сообщение #4


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(nik0lay_ @ Oct 19 2010, 16:24) *
Попробую, только чем он мне сможет помочь?


Ну, я предполагаю, что целевое использование вашей железки не связано для постоянной совместной работы с гипертерминалом.
Так или иначе со снифером отлаживать все приходится. Ну а про сбои, имеется ли у вас осциллограф? Если есть, то можно сигналы посмотреть, длительности, фронты и т.п., т.е проверить их соответствие протоколу RS232 для вашей скорости.

Сообщение отредактировал Danis - Oct 19 2010, 13:40


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
nik0lay_
сообщение Oct 19 2010, 14:41
Сообщение #5





Группа: Новичок
Сообщений: 7
Регистрация: 19-10-10
Пользователь №: 60 270



Попробывал эту програмку.. интересная штука.
В момент, когда на терминал якобы ничего не приходит, снифер показывает "левые" данные (вроде 3E) и в окне для asci (справа от основного окна) кажет <W*ERR>, что наводит на мысль о какой то ошибке. Описалова к программе не нашел, кто пользуется ранее упомянутой программой, просьба прояснить ситуацию, что это такое, с чем его едят и как это исправить. smile.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 19 2010, 16:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(nik0lay_ @ Oct 19 2010, 18:57) *
Например: компьютер включен, включаю устройство, включаю гипертерминал (все настройки соответсвуют) - нет приема, в терминале отключить-вызов, отключить-вызов.. и связь появляется!

Сделайте со стороны COM-порта ПК нуль-модемное соединение для сигналов квитирования. Соедините между собой DTR-DSR-DCD и RTS-CTS. Либо используйте другую программу-терминал, не виндусовый гипертерминал.
Go to the top of the page
 
+Quote Post
Danis
сообщение Oct 19 2010, 17:12
Сообщение #7


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(rezident @ Oct 19 2010, 20:45) *
не виндусовый гипертерминал.


А чем он вам не угодил то, гипертерминал как гипертерминал. Тут наверняка в железке проблема.
Ну вот для винды я этим пользуюсь - Realterm, очень удобный, можно лог в файл писать. Глюков пока не было на скоростях до мегабита работает.

http://realterm.sourceforge.net/

Сообщение отредактировал Danis - Oct 19 2010, 17:14


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
nik0lay_
сообщение Oct 20 2010, 04:47
Сообщение #8





Группа: Новичок
Сообщений: 7
Регистрация: 19-10-10
Пользователь №: 60 270



Цитата(rezident @ Oct 19 2010, 22:45) *
Соедините между собой DTR-DSR-DCD и RTS-CTS

Я тоже подумал про это, сейчас со стороны компьютера соединены выводы 1-4-6 и 7-8, надеюсь не перепутал.

Realterm посмотрю, что из себя представляет.
Если повезет раздобыть осциллограф, гляну на нем..
Go to the top of the page
 
+Quote Post
Danis
сообщение Oct 20 2010, 05:14
Сообщение #9


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(nik0lay_ @ Oct 20 2010, 08:47) *
Я тоже подумал про это, сейчас со стороны компьютера соединены выводы 1-4-6 и 7-8, надеюсь не перепутал.


Зачем на них вообще заморачиваться то? Объясните, я не понимаю. Никогда этого не делал. Если используете асинхронный обмен, то Вам нужны только 3 линии:
Rx, Tx, GND. Больше ничего не нужно!


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
nik0lay_
сообщение Oct 20 2010, 07:02
Сообщение #10





Группа: Новичок
Сообщений: 7
Регистрация: 19-10-10
Пользователь №: 60 270



Цитата(Danis @ Oct 20 2010, 11:14) *
Зачем на них вообще заморачиваться то? Объясните, я не понимаю. Никогда этого не делал. Если используете асинхронный обмен, то Вам нужны только 3 линии:
Rx, Tx, GND. Больше ничего не нужно!

Да это все понятно! smile.gif Изначально и было подцеплено 3 проводка, просто в поисках решения проблемы готов уже произвести обряд изгнания злых духов cranky.gif
Go to the top of the page
 
+Quote Post
Danis
сообщение Oct 20 2010, 08:31
Сообщение #11


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(nik0lay_ @ Oct 20 2010, 10:02) *
Да это все понятно! smile.gif Изначально и было подцеплено 3 проводка, просто в поисках решения проблемы готов уже произвести обряд изгнания злых духов cranky.gif


Попробуйте скорость поднять до 19200 - 57600, у меня однажды были глюки на малых скоростях, только с виртуальным COM.

А железку Вашу и без осциллографа можно грубо потестировать , проверьте сам MAX232 на уровни Rx, Tx.

Сообщение отредактировал Danis - Oct 20 2010, 08:32


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
nik0lay_
сообщение Oct 20 2010, 12:39
Сообщение #12





Группа: Новичок
Сообщений: 7
Регистрация: 19-10-10
Пользователь №: 60 270



Осциллографа я не нашел, зато нарыл неплохую УСБ-АЦП, и вот что получается:
- форма сигнала соответствует тому, что показывает эмулятор Протеус
- уровни не соответствуют, высокий уровень +3,8; низкий -0,7; как я понимаю должно быть где то по 10-ке вольт
- на выводах V+ и V- тоже не то, +7 и -0,7 соответственно..

Похоже интерфейсная микруха не раскачивается, хотя все по даташиту...
Go to the top of the page
 
+Quote Post
Danis
сообщение Oct 20 2010, 13:03
Сообщение #13


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(nik0lay_ @ Oct 20 2010, 15:39) *
Похоже интерфейсная микруха не раскачивается, хотя все по даташиту...


Для MAX232 на выходе TX - T2_OUT у компа это RX), должно быть -8 до -11 В примерно, это есть логическая единица, +8...+ 11 - лог 0.


Сообщение отредактировал Danis - Oct 20 2010, 13:07
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 20 2010, 13:12
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(nik0lay_ @ Oct 20 2010, 16:39) *
Осциллографа я не нашел, зато нарыл неплохую УСБ-АЦП, и вот что получается:
- форма сигнала соответствует тому, что показывает эмулятор Протеус
- уровни не соответствуют, высокий уровень +3,8; низкий -0,7; как я понимаю должно быть где то по 10-ке вольт
- на выводах V+ и V- тоже не то, +7 и -0,7 соответственно..

Похоже интерфейсная микруха не раскачивается, хотя все по даташиту...


От должно быть от 3-х до 12 вольт... Попробуйте подать 0 на неиспользуемые входы TTL и незадействованный выход соединить с незадействованным входом... Чтобы они не переключались хаотически...

И проверьте частоту передачи, чтобы ее отклонение было в заданных пределах. Если можно использовать 16-ти кратную частоту, то работайте с ней, будет прием устойчивей. на стороне компьютера тоже можно замкнуть DTR на DSR... И вторую пару управляющих сигналов тоже... Кажется так...
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
remote_job
сообщение Oct 20 2010, 18:43
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-03-08
Пользователь №: 35 915



А тактироваание UART достаточно точное и стабильное?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 00:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.0253 секунд с 7
ELECTRONIX ©2004-2016