Я пытаюсь запустить последовательный порт со скоростью 3,25 Мбит/с, применяя делитель 2 к базе данных 6,5 Мбит/с. Я использую устройство IoT (Telit HE922-3GR) под управлением Android 6 со встроенными последовательными портами, файл proc/tty/driver/ttyS содержит:

serinfo:1.0 driver revision:
0: uart:XGOLD_USIF mmio:0xE1200000 irq:36 tx:32497 rx:20751 fe:1834 RTS|DTR|DSR|CD|RI
1: uart:XGOLD_USIF mmio:0xE1100000 irq:35 tx:453 rx:0 RTS|DTR|DSR|CD|RI

Я использую /dev/ttyS1

Делитель устанавливается в sys/class/tty/ttyS0/custom_divisor на правильное значение, но последовательный порт по-прежнему работает на скорости 6,5 Мбит/с, независимо от делителя.

Могу ли я что-нибудь сделать, чтобы последовательный порт использовал этот делитель?

3
jc1850 10 Авг 2018 в 12:31

1 ответ

Лучший ответ

Если вы внимательно посмотрите на спецификации Broadcom для некоторых наборов микросхем iOT, вы увидите там белое на черном, что реализация сервисов последовательной связи в ARM iOT является частичной эмуляцией обычных наборов микросхем 16550 с последовательным интерфейсом. найти обычно в мире ПК. Насколько я помню, они явно пишут, что эмуляция поддерживает только небольшое подмножество сервисов 16550.

Таким образом, они предоставляют только достаточно хорошее подмножество услуг, предоставляемых «полномасштабными UART».

В итоге не рассчитывайте на то, что он поддерживает все обычные функции на 100%.

4
Rui F Ribeiro 10 Авг 2018 в 12:44
Возможно, стоит отметить, что он может работать с другой нестандартной скоростью передачи данных, такой как 3 Мбит / с и 3,5 Мбит / с, с использованием констант, определенных в termios.h, не нужно ли порту использовать делитель для достижения этих скоростей?
 – 
jc1850
10 Авг 2018 в 13:08
1
Я подозреваю, что у него есть некоторые «официальные» встроенные скорости ... не могу ни вспомнить полные документы, ни иметь сегодня время, чтобы искать и читать их.
 – 
Rui F Ribeiro
10 Авг 2018 в 13:10