Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USART - передача одного байта
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Паша_З
Не сталкивался ли кто-нибудь из Вас стакой проблемой: если через USART постоянно и непрерывно отсылать один и тот же байт, то приёмник распознаёт его неверно; он также выдаёт один повторяющийся байт, но другой, причём, при повторных соединениях приёмник может выдавать другие значения (среди них встречается и правильное).

Я думаю, это связано с неверной интерпритацией входных данных приёмником, т.е. он находит СТАРТ- и СТОП-биты там, где их нет, а всё, что между ними считает входным байтом.

Могут ли быть ещё какие-нибудь причины такого поведения? Как возможно решить/обойти эту проблему?
one_eight_seven
Проблема при синхронной или асинхронной передаче данных? Точно не стоят преобразователи в другой интерфейс между USART'ами? LSB first MSB first - тоже проверяли?
V_G
one_eight_seven
Вопрос в теме по AVR, а там вроде нет переключения LSB-MSB. И вопрос точно по асинхронной передаче, т.к. при синхронной не требуются старт- и стопбиты.

Паша_З
1. Скорее всего, у вас проблемы с корректной передачей байтов. Вы точно ожидаете, чтобы буфер передатчика освободился, или работаете по прерыванию от передатчика, или тупо шлете байты, не заботясь о том, готов ли блок UART принять их от вас?
2. Какова скорость передачи данных и какова длина и качество линии связи между премником и передатчиком? Чем выше скорость, тем короче должна быть линия.
smalcom
частота, длина линии?
psw
камень тактируется от кварца? (если да, то какого) или от внутреннего генератора
Genadi Zawidowski
Проверьте эту ситуацию с передаваемым байтом FF, потом подумайте.
Не поможет - нарисуйте на бумаге график напряжения при передаче Вашего одого и того же байта, потом посмотрите - если приём начать с произвольного места, сможет ли приёмник перейти на правильное?
Способ борьбы - или пауза длинной в 10 бит (для формата 8-n-1) или передать перед началом пакета FF.
Если нет пакетов - их не пердусмотрели - и не ввести - то если требуется надёжная работа - или переделывать протокол в канале или отказываться от этой работы, так как сдать её не получится.
Паша_З
Genadi Zawidowski
Я склонялся к этой же мысли.

Всем большое спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.