2015-08-05 2 views
3

Я оглядывался на скорости боеготовки UART, поддерживаемые Beaglebone Black (BB). Я не могу найти его в справочном руководстве по системе BB или в техническом паспорте для самого процессора sitara. Я использую pyserial и библиотеку Adafruit BBIO для общения через UART.Максимум Beaglebone Black UART baud?

Поддерживает ли это какое-либо значение в пределах разумного или более стандартное (9600, 115200 и т. Д.)?

Спасибо за любую помощь.

-UPDATE- Это связано со скоростью передачи данных, поддерживаемой PySerial. Это дает список возможных скоростей передачи, но не конкретных, которые будут или не будут работать с конкретным оборудованием.

ответ

2

Техническое руководство по AM335x (документ TI spruh73) дает ограничения скорости передачи для подсистемы UART в разделе UART (раздел 19.1.1, стр 4208 в версии spruh73l):

  • скорость передачи от 300 бит до 3,6864 Мбит

УАПП модули каждый имеет 48MHz часы, чтобы генерировать их синхронизацию , Они могут быть сконфигурированы в одном из двух режимов: UART 16x и UART 13x, в которых эти часы делятся на 16 и 13 соответственно. Затем имеется сконфигурированный 16-разрядный делитель для генерации фактической скорости передачи данных с этих часов. Таким образом, для 300 бит/с это будет UART 16x и делитель 10000, или 48MHz/16/1000 = 300 bps.

Когда вы сообщаете драйверу ядра omap-serial (это драйвер, используемый для UART на BeagleBone), он вычисляет режим и делитель, который наилучшим образом приближает скорость, которую вы хотите. Фактическая скорость, которую вы получите, ограничена тем, как она сгенерирована - например, если вы попросили произвольный бод в 2998 бит/с, я полагаю, что вы действительно получите 2997.003 бит/с, потому что 48MHz/16/1001 = 2997.003 ближе к 2998, чем 48 MHz/16/1000 = 3000.

Таким образом, модули UART могут, безусловно, генерировать все стандартные скорости передачи, а также большой диапазон произвольных (вам нужно будет на самом деле сделать математику, чтобы увидеть, как близко она может получить). В системах на базе Linux PySerial просто отправляет по боду, который вы передаете его драйверу ядра через вызов ioctl, поэтому он также не будет ограничивать вас.

Примечание: Я просто тестирование отправки данных о из BeagleBone Black в 200 бит, и она работала хорошо, но он не генерирует 110 бит (следующий более низкий уровень скорости передачи ниже 300 бит), так что указанные пределы действительно самые низкие и самые высокие стандарт тарифы, которые он может сгенерировать.

0

Справочное руководство по BBB не содержит информации о скорости передачи данных для UART, но для последовательной связи Обычно я предпочитаю использовать значение BAUDRATE = 115200, который работает в большинстве случаев без каких-либо проблем.

0

Вы можете проверить это вручную, подключив ваш порт UART BBB к мини-компьютеру. Для этого нужно просто сократить Tx и Rx UART. Затем просто откройте minicom, используя

$ minicom -s 

и установите бод на разные скорости и посмотрите, работает ли он. (Нажмите любую клавишу, и если вы увидите символ, то вы знаете, что скорость передачи данных работает)