сайт для палких паяльників

Raspberry Pi прекрасно работает с USB девайсами на базе FT232. У меня есть своя разработка USB-Барометра, он же – USB-Altimeter и вариометр, в котором используется FT232RL. Я решил протестировать, как он будет работать с Raspberry Pi.

Итак, вставляем устройство на базе FT232 в USB-разъема Raspberry Pi и … Raspberry Pi перезагрузился. Обидно. Питание Raspberry Pi осуществлялось от USB-порта компьютера. Вероятнее всего, не хватило мощности и просадка напряжения отправила Raspberry Pi в ребут. Однако, после перезагрузки все работало нормально. Если питать Raspberry Pi от более мощного блока питания, перезагрузок не происходит.

Проверим действительно ли Raspberry Pi распознал FT232. Это не обязательно, можно сразу перейти к запуску терминала, но эта проверка может помочь узнать что именно пошло не так, если есть проблема.

Проверим все по порядку. Смотрим в логи:

tail /var/log/messages

Видим:

Oct 2 08:05:19 raspberrypi kernel: [ 87.731002] usbserial: USB Serial support registered for generic
Oct 2 08:05:19 raspberrypi kernel: [ 87.747187] usbcore: registered new interface driver ftdi_sio
Oct 2 08:05:19 raspberrypi kernel: [ 87.749035] usbserial: USB Serial support registered for FTDI USB Serial Device
Oct 2 08:05:19 raspberrypi kernel: [ 87.749433] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected
Oct 2 08:05:19 raspberrypi kernel: [ 87.750033] usb 1-1.2: Detected FT232RL
Oct 2 08:05:19 raspberrypi kernel: [ 87.750059] usb 1-1.2: Number of endpoints 2
Oct 2 08:05:19 raspberrypi kernel: [ 87.750076] usb 1-1.2: Endpoint 1 MaxPacketSize 64
Oct 2 08:05:19 raspberrypi kernel: [ 87.750091] usb 1-1.2: Endpoint 2 MaxPacketSize 64
Oct 2 08:05:19 raspberrypi kernel: [ 87.750108] usb 1-1.2: Setting MaxPacketSize 64
Oct 2 08:05:19 raspberrypi kernel: [ 87.751506] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0

Замечаем ttyUSB0

Следующая команда:

cat /proc/tty/driver/usbserial

должна вернуть нечто похожее на следующее:

usbserinfo:1.0 driver:2.0
0: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:6001 num_ports:1 port:0 path:usb-bcm2708_usb-1.3

Проверим существует ли device file:

ls -l /dev/ttyUSB*

Должны увидеть такое:

crw-rw---T 1 root dialout 188, 0 Aug 15 06:39 /dev/ttyUSB0

Проверяем состояние USB шин:

lsusb

Должны увидеть такое:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Проверяем загружены ли модули для ftdi:

lsmod | grep ftdi

Видим следующее:

ftdi_sio 30487 0
usbserial 26435 1 ftdi_sio

Запускаем терминал

Запускаем терминальную программу, правильно указав скорость. В этом случае 57600:

minicom -b 57600 -o -D /dev/ttyUSB0

(терминальную программу minicom мы устанавливали в статье Raspberry Pi – UART)

Видим поток данных от нашего USB-Барометра.

Программно принимать и отправлять данные также можно. Поскольку Raspbian видит и UART и FT232 как serial порт, примеры работы с FT232 ничем не отличаются от примеров, приведенных в статье Raspberry Pi – UART. Отличие только в названии девайса: надо будет заменить /dev/ttyAMA0 на /dev/ttyUSB0.

Успехов!

Смотри также:
Translate
Архіви

© 2011-2018 Андрій Корягін, Кременчук - Київ, Україна