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

 
 
 
Reply to this topicStart new topic
> контроллер ICP CON, искажение последнего бита
Evgenius_Alex
сообщение Oct 26 2011, 19:38
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 373
Регистрация: 6-11-07
Пользователь №: 32 103



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

Если кто сталкивался, проконсультируйте, пожалуйста. Имеется контроллер ICP CON i7561. (Преобразователь USB to RS232/RS422/RS485)
Передаю символ с Hyper Terminal на порт USB данного контроллера, на контактах DATA+, DATA- RS485 интерфейса сажусь осциллографом.
При передачи ряда одинаковых символов происходят искажения последнего бита, причём ровно через символ, т.е. если послать с терминала
последовательность "1111111111" на выходе получается что-то вроде "1@1@1@1@1@". В тоже время при передачи последовательности
неодинаковых символов - искажений не происходит, например если послать "1234567890", на выходе тоже "1234567890".
Пробовал с двумя контроллерами - ICP CON i7561 и ICP CON i7188E5. Ситуация идентичная. Игрался с настройками терминала (скорость,
паритет) - не помогает.

В чём может быть проблема?

Спасибо!
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Oct 27 2011, 09:05
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Evgenius_Alex @ Oct 26 2011, 23:38) *
...порт USB...последовательность "1111111111" на выходе получается что-то вроде "1@1@1@1@1@"....В чём может быть проблема?...


бу-га-га
контроллер не правильно отрабатывает физ. уровень? sm.gif))

вот вам цитата на русском из инета..

"Прием данных должен удовлетворять требованию возможности засинхронизировать приемник и передатчик в любой момент времени. Таким образом, не разрешается передавать непрерывный поток нулей или единиц по линиям данных. Протокол USB гарантирует синхронизацию за счет заполнения битами. Это означает, что, после 6 непрерывных единиц или нулей на линиях данных, вставляется одно одиночное изменение (один бит). Сигналы по линиям USB передаются в коде NRZI. В коде NRZI каждый '0' представляется путем сдвига текущего уровня сигнала, а каждая '1' путем удержания текущего уровня. На уровне битового заполнения это означает, что каждый нулевой бит вставляется в поток логических данных после 6 непрерывных логических 1."

удачи вам
(круглый)
Go to the top of the page
 
+Quote Post
Evgenius_Alex
сообщение Oct 28 2011, 09:07
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 373
Регистрация: 6-11-07
Пользователь №: 32 103



[quote name='kolobok0' date='Oct 27 2011, 12:05' post='987388']
бу-га-га
контроллер не правильно отрабатывает физ. уровень? sm.gif))

Вы неправильно поняли.

Я имел ввиду, что передаю с Hyper Terminal последовательность символов '1', т.е. 31 в hex или 00110001 в бинарном формате.
Проблему уже решил. Это был глюк самого Hyper Terminal, который искажал последний бит.

Проверил с другой терминальной программой - COM Port Toolkit 3.9 - всё работает нормально.
Поэтому, пользуйтесь другими терминальными программами.


Go to the top of the page
 
+Quote Post
DmitryM
сообщение Oct 28 2011, 09:12
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата
Я имел ввиду, что передаю с Hyper Terminal последовательность символов '1', т.е. 31 в hex или 00110001 в бинарном формате.
Проблему уже решил. Это был глюк самого Hyper Terminal, который искажал последний бит.

Не надо рассказывать про глюк HyperTerminal, проверено не однократно. Смотрите настройки, стоповые биты, управление потоком и т.п.
Go to the top of the page
 
+Quote Post

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

 


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


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