FTDI eeprom generator v0.17 (c) Intra2net AG and the libftdi developers <opensource@intra2net.com> Unable to find FTDI device with description: i:0403:6001 Error code: -3 (device not found) root@rockpi-s:~# ftdi_eeprom --read-eeprom c.txt --verbose FTDI eeprom generator v0.17 (c) Intra2net AG and the libftdi developers <opensource@intra2net.com> Unable to find FTDI devices under given vendor/product id: 0x0/0x0 Error code: -3 (device not found) Retrying with default FTDI pid=0x6001. FTDI read eeprom: 0 EEPROM size: 128 VID: 0x0403 PID: 0x6001 Release: 0x0000 Bus Powered: 90 mA USB Remote Wake Up Manufacturer: FTDI Product: FT232R USB UART Serial: A10M5ZU3 Checksum : 17cb Internal EEPROM Oscillator: Internal Enable Remote Wake Up PNP: 1 Channel A has Mode UART VCP C0 Function: TXLED C1 Function: RXLED C2 Function: TXDEN C3 Function: PWREN C4 Function: SLEEP Warning: Not writing eeprom, you must supply a valid filename FTDI close: 0
Этой же программой можно писать
параметры в еепром ft232, создав конфигурационный файлик.
🙋♀️Зачем это надо ?
Проверить жив ли ft232
Проверить назначение линий CBUS (C0-C4), которые могут быть переопределены.
👍 Полезные факты
lsusb -v — должно быть состояние bConfigurationValue = 1
PWREN # после того как модуль инициализирован драйвером должен быть в НУЛЕ (0)
SLEEP #у FTDI — это сигнал, который показывает, что чип перешёл в режим сна (USB suspend).
Когда USB-шина в нормальном рабочем состоянии → SLEEP# = 1 (логическая единица).
Когда хост перевёл устройство в режим suspend (спящий режим по USB, обычно при бездействии или энергосбережении) → SLEEP# = 0.
Имя файла будет похоже на следующее - Armbian_23.5.2_Rockpi-s_bookworm_current_6.1.32.img.xz
Распаковать образ и записать образ на SD-карту
или
Загрузить NAPI c SD карты в NapiLinux, вставить флешку с
распакованным файлом образа и записать имидж в NAND по инструкции
Загрузить ARMbian. Войти по SSH (Логин\Пароль root\1234)
При первой загрузке ARMbian задаст вопросы про язык, локаль, часовой пояс, дополнительного пользователя - надо пройти все эти вопросы (в подготовленном имидже мы уже все сделали).
Поместите данный список в файл packages.txt (nano packages.txt), выполните команду:
xargs apt-get -y install < packages.txt
Все пакеты должны установиться автоматически !
Теперь у вас есть утилита mbpoll для работы с modbus, pip3 - система установки пакетов для python3, средства для работы с git, средства для компилирования программ (понадобиться ниже).
В Armbian (и других современных Linux) включение аппаратных и нестандартных интерфейсов (uart, i2c, spi) работает через систему подключаемых оверлеев (файлы в формате dtbo - device tree binary). Это бинарные файлы, которые компилируются из исходных текстовых файлов dts (data tree source).
В Armbian есть утилита, которая компилирует и добавляет оверлей из пользовательского файла dts.
Общий алгоритм такой. Нужно скачать или другим образом (через копи\паст) сформировать файл dts (название лучше делать по смыслу файла, например rk3308-spi2.dts) и далее выполнить команду
armbian-add-overlay <файл.dts>
Обязательно перегрузиться.
После этого должно заработать устройство, которое Вы подключили, если оно не конфликтует с другими устройствами. Конфликты зависят от включенных устройствах по умолчанию, от аппаратной конфигурации устройства.
tip
Например, в NAPI не может работать одновременно UART1,2 и SPI2 а также UART3 и SPI1
Для того, чтобы в модуле NAPI работал SPI2, необходимо отключить uart1 и uart2. Так как в ARMbian они включены в основном файле дерева устройств, то в оверлее spi2 необходимо отключить явным образом uart1, uart2. Правильный файл dts для SPI2 приводим ниже.
Сделайте файл rk3308-spi2-spidev.dts такого содержания:
⚠️ Несмотря на то, что в системе присутствует практически такая же утилита mbpoll аргументы у них
немного различаются. Мы можем давать примеры на основе утилиты modpoll, поэтому рекомендуем ее тоже установить.
К сожалению, по умолчанию в Armbian довольно старая версия gpiod, поэтому
мы написали статью, как установить свежую версию gpiod и работать с командами пакета.