Перейти к содержанию
    

USB хаб на плате -- сброс

24 minutes ago, Tarbal said:

 

Тут 2 проблемы:

1. Почему-то драйвер usb251xb не дергает или дергает но оставляет на нуле сигнал сброса, хотя, судя по коду драйвера, он должен подавать подавать короткий сигнал 0 на пин сброса и потом возвращать пин в 1. При этом через sysfs из юзерспейса пин сброса нормально экспортируется и управляется и сигнал на ножке меняется.

2. Если откинуть сам драйвер usb251xb и просто пытаться задетектить хаб драйвером I2C после ручного сброса из юзерспейса, то устройство не находится на шине I2C. При этом на этой же шине есть еще одно устройство и его драйвер I2C находит нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть два места, где может быть проблема в программе и в железе.
Если вы попробуете подергать ножкой как я дал ссылку, то одно из мест отпадет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, дело было, как всегда, не в бобине)
Итак:
1. Хаб аппаратно сконфигурирован для настройки по SMBus
2. Загружаемый драйвер USB215xb (modprobe usb251xb) _не_ отправляет по шине ничего от слова совсем. Ни по I2C0, ни по I2C1. Кто в курсе, подскажите, как ему передавать параметры?
3. Через i2c-tools я всё-таки добился отправки данных, для этого долго курил тырнет в поисках эмуляции SMBus Block Transfer
4. Сконфигурировал дефолтными значениями, записал в регистр STATUS/COMMAND (0xFF) заветное 0x01 (Hub will signal a USB attach event to an upstream device) и... увидел давно ожидаемые
 

debian@beaglebone:~$ sudo i2ctransfer -v -y 1 w3@0x2c 0xFF 0x01 0x01
msg 0: addr 0x2c, write, len 3, buf 0xff 0x01 0x01
debian@beaglebone:~$ [ 1847.365857] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 1847.518055] usb 1-1: New USB device found, idVendor=0424, idProduct=2422, bcdDevice= 0.a0
[ 1847.526340] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1847.546666] hub 1-1:1.0: USB hub found
[ 1847.550776] hub 1-1:1.0: 2 ports detected

debian@beaglebone:~$ lsusb
Bus 001 Device 002: ID 0424:2422 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

В общем, остаётся это всё автоматизировать, желательно через драйвер, но не знаю, как ему передавать параметры...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, toweroff said:

Кто в курсе, подскажите, как ему передавать параметры?

Все параметры берутся из Device Tree.

При загрузке модуля какая-нибудь отладочная информация выдается в логе?

Если нет, то остается вносить в модуль отладочную информацию и пересобирать, чтобы пошагово разобраться, что там в модуле происходит и на каком этапе возникает проблема.

Если ничего не выводится, то можно настроит уровень логгирования:

https://www.kernel.org/doc/html/latest/core-api/printk-basics.html

Quote

To change the current console_loglevel simply write the desired level to /proc/sys/kernel/printk. For example, to print all messages to the console:


# echo 8 > /proc/sys/kernel/printk

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если просто:

echo usb251xb 0x2c > /sys/class/i2c-adapter/i2c-1/new_device

?

 

Использовал USB2517, но конфигурацию грузил вручную, драйвер даже не пробовал.

Еще один момент: хаб на musb - такое себе удовольствие, что подключать планируете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

14 минут назад, BaN сказал:

Все параметры берутся из Device Tree.

При загрузке модуля какая-нибудь отладочная информация выдается в логе?

в том-то и дело, через device tree у меня даже пин сброса не конфигурируется как надо. Может, я что не так ему (дереву) говорю, конечно... Но собирается ведь, не ругается
а драйвер при загрузке через modprobe молчит, как партизан

6 минут назад, aaarrr сказал:

echo usb251xb 0x2c > /sys/class/i2c-adapter/i2c-1/new_device

попробую..
 

 

6 минут назад, aaarrr сказал:

Еще один момент: хаб на musb - такое себе удовольствие, что подключать планируете?

один постоянный коннект (LTE), второй порт наружу через ключ с контролем тока

3 минуты назад, toweroff сказал:

echo usb251xb 0x2c > /sys/class/i2c-adapter/i2c-1/new_device

попробовал. Там у микрочипа своя заморочка: он понимает только SMBus Block transfer и на просто S-SA-R-A-P не отзывается, поэтому и не грузится ничего

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, toweroff said:

один постоянный коннект (LTE), второй порт наружу через ключ с контролем тока

Мне в такой ситуации пришлось отключить виртуальные tty у модема, т.к. они выбирали лимит на interrupt EP. Если есть возможность задействовать полноценный USB, то лучше так и сделать.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, aaarrr сказал:

Мне в такой ситуации пришлось отключить виртуальные tty у модема, т.к. они выбирали лимит на interrupt EP. Если есть возможность задействовать полноценный USB, то лучше так и сделать.

Спасибо, будем иметь ввиду

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...