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

 
 
> Отсутствие стоповых битов?, Вопрос про стоповые биты в UART
Vladimir Prokofi...
сообщение Mar 9 2011, 08:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 9-03-11
Пользователь №: 63 481



Вопрос такой, я выставляю на компьютере 57600_8_N_1.
При этом, насколько я понимаю, я должен увидеть на осциллографе 10 бит, 1ый и последний -- стартовый и стоповый и 8 бит данных.
Но я вижу только 9 бит и это не зависит от того, 1 или 2 стоповых бита я выставляю -- стоповыъ битов я не вижу. Почему? Я проверял на разных компьютерах)

А вопрос, почему я этим заинтересовался -- проблемы связи по UART с Silabs C8051f061. Компьютер понимает все, что ему посылает контроллер, а контроллер понимает только одиночные байты. При пересылке нескольких байт, за первым следует всякая фигня.

Методом проб и ошибок удалось заставить работать -- установить 2 стоповые бита на компьютере. Но Мне не нравится что на контроллере установлен ОДИН стоповый бит и при передаче байта от контроллера я вижу на осциллографе ОДИН стоповый бит.



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Палыч
сообщение Mar 9 2011, 08:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Vladimir Prokofiev @ Mar 9 2011, 11:13) *
Но я вижу только 9 бит и это не зависит от того, 1 или 2 стоповых бита я выставляю -- стоповыъ битов я не вижу.
Это Вы видите при передаче от ПК? Как Вам такое удалось? Какое значение имеет поле StopBits структуры DCB?
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 9 2011, 11:54
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Стоповый бит как таковой не передается. Это возврат к исходному состоянию (1) после передачи последнего информационного бита (или контрольного, если он есть). Если несколько последних бит равны 1, то и возврата вы вообще не увидите. Ширина стоп-бита фактически определяет минимальную паузу между передачей двух последовательных байтов (в смысле символов, не обязательно 8-битных).
Число стоп-бит передатчика должно быть не меньше числа стоп-бит связанного с ним приемника. Если обмен двусторонний, число стоп-бит должно совпадать.

Сообщение отредактировал V_G - Mar 9 2011, 11:56
Go to the top of the page
 
+Quote Post
Палыч
сообщение Mar 9 2011, 12:40
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Vladimir Prokofiev @ Mar 9 2011, 11:13) *
Методом проб и ошибок удалось заставить работать -- установить 2 стоповые бита на компьютере.
Вероятно, скорость приёма/передачи на МК выставляется не точно (ошибка близка к 10%). Установите и на МК два стоповых бита (Mode=3, TB8=1).
Go to the top of the page
 
+Quote Post
Vladimir Prokofi...
сообщение Mar 9 2011, 16:04
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 9-03-11
Пользователь №: 63 481



Цитата(Палыч @ Mar 9 2011, 15:40) *
Вероятно, скорость приёма/передачи на МК выставляется не точно (ошибка близка к 10%). Установите и на МК два стоповых бита (Mode=3, TB8=1).


Спасибо за ответы, все понял) Я тоже сначала думал что скорости не совпадают, но осцил показал все ок. Но вот увидел эту фигню со стоповыми битами. Где-то прочитал, что стоповые биты передаются и на контроллере их увидел так что сразу поверил)
А на контроллере просто была выставлена 9-битная передача...

Всем спасибо, вопрос решен
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:47
Рейтинг@Mail.ru


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