Как я могу установить скорость UART?

12

Как вы должны установить скорость передачи UART

Бонусный вопрос: Какие скорости передачи доступны на RPi?

Изменить : После прочтения из ответа Стива, я обнаружил, что доступны два UART.

Мини-UART может работать до 32 Мбод, но имеет небольшой буфер и поэтому требует много процессорного времени для поддержки.

Существует также более полнофункциональный UART с большими буферами, я еще не нашел минимальную / максимальную скорость для него.

Джон Ла Рой
источник
Вы хотите установить скорость передачи данных во время выполнения, для взаимодействия с другим устройством или во время загрузки, чтобы вы могли войти в систему Pi через его последовательный порт?
Malvineous
@ Malvineous, время загрузки в порядке, но время выполнения тоже полезно. Мне интересно общаться с другими устройствами.
Джон Ла Рой

Ответы:

9

В соответствии с кратким руководством Фарнелла скорость передачи по умолчанию составляет 115200 . Довольно подробное обсуждение настроек и возможностей UART можно найти в этой записи блога Подробнее о последовательных портах Raspberry Pi . Более подробные сведения о реализации / проблемах работы с последовательным портом можно найти в сообщении в блоге Настройка моего Raspberry Pi для высокоскоростной последовательной связи UART .

Вы не упоминаете, какой дистрибутив вы используете, но если вы используете Debian, вы можете установить скорость передачи данных, выполнив следующие действия:

Обратите внимание, что Raspberry Pi использует UART для консольных сообщений (включая загрузочные сообщения) и getty, чтобы вы могли войти через последовательный порт. Чтобы использовать этот последовательный порт для собственных нужд, вам необходимо отключить эти службы.

Чтобы изменить скорость передачи консоли, отредактируйте файл /boot/cmdline.txt, указав 115200 с желаемой скоростью передачи данных (обратите внимание, что это одна строка).

dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 rootwait

затем отредактируйте / etc / inittab, чтобы изменить скорость передачи getty (вы должны найти строку, подобную следующей, со скоростью передачи 115200, измените ее на желаемую скорость передачи)

2:23: респаун: / sbin / getty -L ttyAMA0 115200 vt100

и не забывайте следить за напряжением ваших контактов, чтобы не повредить вам, Пи.

Дополнительные ссылки:

http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart

Стив Робиллард
источник
3

В этой теме есть решение для произвольной (нестандартной) скорости передачи: /programming/12646324/how-to-set-a-custom-baud-rate-on-linux/21960358

Сначала выполняйте манипуляции с POSIX, а затем настраивайте пользовательскую скорость. Он отлично работает на встроенном UART Raspberry Pi, чтобы получить скорость передачи 250 кбод. Таким образом, помимо стандартных тарифов POSIX, вы можете иметь любой целочисленный коэффициент 16M, по крайней мере до 1M ( http://fw.hardijzer.nl/?p=138 для очень высокоскоростных программ).

RichardAshAudacity
источник