FT4232H это интегральная микросхема преобразователя USB UART, поддерживающая режим High Speed на стороне USB и имеющая четыре порта на стороне UART.
Подключив к этой микросхеме EEPROM-память можно задать специфические режимы работы или изменить данные производителя.
Разберемся на примере и сконфигурируем FT4232H непосредственно в системе под
управлением GNU/Linux. Делать это будем с помощью утилиты
ftdi_eeprom
.
Установка
ftdi_eeprom
Утилита ftdi_eeprom
входит в состав open-source
библиотеки libFTDI
и зависит от libconfuse
.
-
Для установки
ftdi_eeprom
в Ubuntu или Debian, введите в окне терминала команды:
sudo apt-get updatesudo apt-get install ftdi-eeprom
-
Если готовите собственный дистрибутив с помощью
Yocto Project (thud)
, утилитуftdi_eeprom
можно установить, добавив рецепты:
recipes-support/confuse/confuse_2.7.bb
DESCRIPTION = "Library for parsing configuration files."HOMEPAGE = "http://www.nongnu.org/confuse/"SECTION = "libs"LICENSE = "ISC"LIC_FILES_CHKSUM = "file://NEWS;md5=18e885b42b86362019e0cab8dc2a393b"SRC_URI = "http://download.savannah.gnu.org/releases/confuse/confuse-${PV}.tar.gz"SRC_URI[md5sum] = "45932fdeeccbb9ef4228f1c1a25e9c8f"SRC_URI[sha256sum] = "e32574fd837e950778dac7ade40787dd2259ef8e28acd6ede6847ca895c88778"inherit autotools binconfig pkgconfig lib_package gettextEXTRA_OECONF = "--enable-shared"BBCLASSEXTEND = "native"
recipes-support/libftdi/libftdi_%.bbappend
PACKAGECONFIG += "ftdi-eeprom"PACKAGECONFIG[ftdi-eeprom] = "-DFTDI_EEPROM=on,-DFTDI_EEPROM=off,confuse"PACKAGES =+ "ftdi-eeprom"FILES_ftdi-eeprom += "${bindir}/ftdi_eeprom"
Конфигурируем FT4232H
По умолчанию четыре UART-порта FT4232H работают в режиме RS232
,
наименование производителя FTDI
и название устройства
Quad RS232-HS
.
Изменим наименование производителя на habr.com
,
название продукта на Quad RS485
, а UART-порты
переведем в режим RS485
.
Подготовим конфигурационный файл habr.conf
# Имя файла, содержащий образ EEPROM, который будет созданfilename=habr.bin# Идентификатор производителя. Для FT4232H значение по умолчанию: 0x0403vendor_id=0x0403# Идентификатор продукта. Для FT4232H значение по умолчанию: 0x6011product_id=0x6011# Тип EEPROM микросхемы. 0x46 для 93xx46, 0x56 для 93xx56 и 0x66 для 93xx66eeprom_type=0x56manufacturer="habr.com"product="Quad RS485"serial="1234"# Разрешить использование серийного номераuse_serial=true# Ограничение по потреблению микросхемы: (значение параметра) * 2 мА. Значение параметра# должно быть равно 0, когда self_powered=truemax_power=0# Микросхема питается не от USB, а от собственного источника питанияself_powered=true# Если на линии RI логический 0 и значение параметра равно true, то хост контроллер USB# выйдет из режима ожидания примерно через 20 мс.remote_wakeup=false# Задать режим работы портаcha_type=UARTchb_type=UART# Использовать драйвер виртуального com-портаcha_vcp=truechb_vcp=truechc_vcp=truechd_vcp=true# Разрешить режим RS-485cha_rs485=truechb_rs485=truechc_rs485=truechd_rs485=true
С помощью утилиты ftdi_eeprom
загрузим нашу
конфигурацию в eeprom-память, выполнив в окне терминала
команду:
ftdi_eeprom --flash-eeprom habr.conf
После перезагрузки устройства можно наблюдать результаты работы: