Raspberry Pi - FT232


06.10.2014

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.

Успіхів.

Дивись також:

Raspberry Pi
Коментарі:
Додати коментар
Code
* - обов'язкові поля

Архіви