Скорость UART возможно неправильно

Мой мозг пожарен, таким образом, я думал, что передам этого сообществу.

При отправке 1 символа в мою встроенную систему это последовательно думает, что получает 2 символа. Первый полученный символ, кажется, отображается на переданный символ (некоторым неизвестным способом), и второй полученный символ всегда 0xff.

Вот то, что я наблюдал:

Tx char (in hex)    Rx character (in hex), I left out the second byte (always ff)
31                    9D
32                    9B
33                    99
61                    3D
62                    3B
63                    39
64                    37
65                    35
41                    7D
42                    7B
43                    79

Я имею, проверяют, что мои часы и они, кажется, в порядке. Единственная разница между этим не рабочая версия и предыдущая версия - то, что я теперь использую микросхему RS485.

Я проследил сигнал полностью до MCU, и он выглядит хорошо (подтвердил битовое значение на контакте RX),

6
задан dsolimano 2 October 2012 в 21:06
поделиться

3 ответа

Кажется, что первый полученный символ отображается на переданный символ ( каким-то неизвестным образом)

В каждом случае байт TX является сдвигается влево на 1 бит, затем инвертируется.

Например:

31 = 00110001 9D = 10011101

0x31 << 1 = 01100010

дополнение 01100010 равно 0x9D

Я проверил пару других, смотрит быть одинаковым для всех. Я не знаю, откуда берется второй байт, но это может быть результатом вероятной инверсии сигнала, которая происходит.

RS485 использует дифференциальную сигнализацию. Пахнет так, как будто вы использовали перевернутый выход микросхемы и подключили к входу RS232.

Я проследил сигнал на всем пути до MCU, и он выглядит нормально (подтвердил значение бита на выводе rx )

Какой сигнал вы используете в качестве ориентира?

9
ответ дан 9 December 2019 в 22:31
поделиться

RS485 сильно отличается от RS232 на электрическом уровне (дифференциальный по сравнению с несимметричным и +/- 6 В по сравнению с + 15 / -3 В) - это обе стороны вашего канала связи, использующие тот же протокол?

1
ответ дан 9 December 2019 в 22:31
поделиться

Если это RS485, правильно ли установлено "состояние по умолчанию" шины? Как насчет правильного количества стоповых битов?

1
ответ дан 9 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: