Платформенный справочник: китайский источник V2.7.0 (RK-CS-YF-094) перечисляет серии 29/30/31/32/33/35, PX, RV, Sofia, MCU и все версии ядра; это не обещание поддержки всех плат ArmSoM. Проверяйте SoC, контроллер, порт, BSP, ядро и TRM, особенно питание/роль Type-C. Это примеры источника, не измерения ArmSoM. Есть только китайский PDF; его оригинальные изображения сохранены во всех языках.
Внимание: io напрямую пишет регистры; переключение питания/режимов рискованно, команды не выполнялись. Сохранены сомнения: некоторые cat sys/… без начального слеша; Host назван Device; BER записан 10e-12; для Device текст указывает 11 дюймов, снимок 5; граница 10 cm не определена. Таблица 6 в разделе Device имеет колонки Host. Адреса/константы не исправлены догадками.
Техническое предисловие: USB2 охватывает High/Full/Low Speed, подробно High-Speed Signal Quality и Receiver Sensitivity. Для USB3 подробно дан Tx Compliance; для Rx только принципы и меры. Контроллеры Rockchip независимы: до выбора команды изучите TRM. Приборы Agilent, Tektronix, LeCroy: следуйте руководству производителя. Все USB-команды относятся к проверяемому порту.
Другие проверки USB2: Packet Parameters, CHIRP Timing, Suspend/Resume/Reset Timing, Test J/K, SE0_NAK. Команды даны по модели контроллера и требуют знаний ПО; для поиска по имени порта на схеме используйте Rockchip USB SQ Tool.
1. USB 2.0 Compliance Test
1.1 Испытания соответствия USB2
USB 2.0 Tx Signal Quality проверяет глазковую диаграмму, скорость сигнала, ширину конца пакета, диапазон напряжения пересечения (Low/Full Speed), джиттер JK/KJ и последовательный джиттер, монотонность (High Speed), время нарастания/спада. USB 2.0 Rx Receiver Sensitivity проверяет чувствительность, порог подавления и минимальное поле SYNC.
1.2 Команды и средства USB2 Tx
USB 2.0 Tx SQ задаёт регистр Test Control для перехода в Test Packet Mode. Контроллер непрерывно передаёт периодический шаблон, а осциллограф анализирует целостность сигнала. Порты Device Rockchip включают режим командами или инструментом, Host — только командами.
1.2.1 Команды и средства USB2 Device Tx
Команды USB 2.0 Device SQ приведены в таблице 1 и вводятся через UART или ADB. Таблица 1: команды USB 2.0 Device SQ.
| Микросхема | DWC2_0 OTG 2.0 Device |
DWC3_0 OTG 2.0 device | DWC3_1 OTG 2.0 device |
|---|---|---|---|
| RK1808 | N.A | io -4 0xfd00c704 0x8c000a08 | N.A |
| RK1820 | N.A | io -4 0x102500c704 0x8c000a08 | io -4 0x102400c704 0x8c000a08 |
| RK2108 | io -4 0x41300804 0x40 | N.A | N.A |
| RK2116 | io -4 0x40040804 0x40 | N.A | N.A |
| RK2118 | io -4 0x50040804 0x40 | N.A | N.A |
| RK2206 | io -4 0x43040804 0x40 | N.A | N.A |
| RK29XX RK30XX RK31XX |
io -4 0x10180804 0x40 | N.A | N.A |
| RK3228 RK3229 |
io -4 0x30040804 0x40 | N.A | N.A |
| RK3288 RK3228H RK3328 RK3368 |
io -4 0xff580804 0x40 | N.A | N.A |
| RK3308 RK3308B-S RK3308H-S |
io -4 0xff400804 0x40 | N.A | N.A |
| RK3326 RK3326S PX30 PX30S |
io -4 0xff300804 0x40 | N.A | N.A |
| RV1103 RV1106 |
N.A | io -4 0xffb0c704 0x8c000a08 | N.A |
| RV1103B | N.A | io -4 0x20b0c704 0x8c000a08 | N.A |
| RV1108 | io -4 0x30180804 0x40 | N.A | N.A |
| RV1126 RV1109 |
N.A | io -4 0xffd0c704 0x8c000a08 | N.A |
| RV1126B | N.A | io -4 0x2150c704 0x8c000a08 | N.A |
| SOFIA-3GR | io -4 0xe2100804 0x40 | N.A | N.A |
| RK3366 | io -4 0xff4c0804 0x40 | io -4 0xff50c704 0x8c000a08 | N.A |
| RK3399 | N.A | io -4 0xfe80c704 0x8c000a08 | io -4 0xfe90c704 0x8c000a08 |
| RK3506 | io -4 0xff740804 0x40 | N.A | N.A |
| RK3528 | N.A | io -4 0xfe50c704 0x8c000a08 | N.A |
| RK3538 | N.A | io -4 0xfc00c704 0x8c000a08 | N.A |
| RK3562 | N.A | io -4 0xfe50c704 0x8c000a08 | N.A |
| RK3576 | N.A | io -4 0x2300c704 0x8c000a08 | io -4 0x2340c704 0x8c000a08 |
| RK3566 RK3568 |
N.A | io -4 0xfcc0c704 0x8c000a08 | N.A |
| RK625 | io -4 0x40180804 0x40 | N.A | N.A |
| RK3588 RK3588S |
N.A | io -4 0xfc00c704 0x8c000a08 | io -4 0xfc40c704 0x8c000a08 |
Команда RK3506 OTG1 Device: io -4 0xff780804 0x40. Альтернатива — USB HSET от USB-IF: USBHSET for EHCI или XHCI. Загрузка:
- EHCI 32-bit: https://www.usb.org/document-library/usbhset-ehci-32-bit
- EHCI 64-bit: https://www.usb.org/document-library/usbhset-ehci-64-bit
- xHCI 32-bit: https://www.usb.org/document-library/xhsett-x32
- xHCI 64-bit: https://www.usb.org/document-library/xhsett-x64e (ссылка источника)
Порядок работы:
-
Подключите проверяемый Device-порт к ПК USB-кабелем.
-
Откройте инструмент, выберите Device и нажмите TEST (рис. 1).

Рисунок 1. Выбор типа теста.
- Выберите устройство и TEST PACKET, нажмите EXECUTE (рис. 2). Контроллер входит в Test Packet Mode и передаёт периодические пакеты с формой сигнала рис. 3.

Рисунок 2. Выбор устройства и команды.

Рисунок 3. Тестовая форма сигнала.
1.2.2 Команды USB2 Host Tx
USB 2.0 Host SQ требует команд, отдельного инструмента нет. Вводите команды таблиц 2–4 через ADB или UART. Таблица 2: команды USB 2.0 Host SQ (a).
| Микросхема | DWC2_0 OTG Host 2.0 | DWC2_1 Host 2.0 | EHCI_0 Host 2.0 |
|---|---|---|---|
| RK1808 | N.A | N.A | io -4 0xffd80054 0x40000 |
| RK2116 | io -4 0x40040440 0x8000 | N.A | N.A |
| RK2118 | io -4 0x50040440 0x8000 | N.A | N.A |
| RK2206 | io -4 0x43040440 0x8000 | N.A | N.A |
| RK29XX RK30XX RK3188 |
io -4 0x10180440 0x8000 | io -4 0x101c0440 0x8000 | N.A |
| RK312X | io -4 0x10180440 0x8000 | io -4 0x101c0440 0x8000 | io -4 0x101c0054 0x40000 |
| RK3228 RK3229 |
io -4 0x30040440 0x8000 | N.A | io -4 0x30080054 0x40000 |
| RK3288 | io -4 0xff580440 0x8000 | io -4 0xff540440 0x8000 | io -4 0xff500054 0x40000 |
| RK3308 RK3308B-S RK3308H-S |
io -4 0xff400440 0x8000 | N.A | io -4 0xff440054 0x40000 |
| RK3326 RK3326S |
io -4 0xff300440 0x8000 | N.A | N.A |
| PX30 PX30S |
io -4 0xff300440 0x8000 | N.A | io -4 0xff340054 0x40000 |
| RK3228H RK3328 |
io -4 0xff580440 0x8000 | N.A | io -4 0xff5c0054 0x40000 |
| RK3366 | io -4 0xff4c0440 0x8000 | N.A | io -4 0xff480054 0x40000 |
| RK3368 | io -4 0xff580440 0x8000 | N.A | io -4 0xff500054 0x40000 |
| RV1108 | io -4 0x30180440 0x8000 | N.A | io -4 0x30140054 0x40000 |
| RV1126 RV1109 |
N.A | N.A | io -4 0xffe00054 0x40000 |
| RV1126B | N.A | N.A | io -4 0x21480054 0x40000 |
| SOFIA-3GR | io -4 0xe2100440 0x8000 | N.A | N.A |
| RK3399 | N.A | N.A | io -4 0xfe380054 0x40000 |
| RK3506 | io -4 0xff740440 0x8000 | io -4 0xff780440 0x8000 | N.A |
| RK3528 | N.A | N.A | io -4 0xff100054 0x40000 |
| RK3538 | N.A | N.A | io -4 0xfc100054 0x40000 |
| RK3562 | N.A | N.A | io -4 0xfed00054 0x40000 |
| RK3566 RK3568 |
N.A | N.A | io -4 0xfd800054 0x40000 |
| RK3588 RK3588S |
N.A | N.A | io -4 0xfc800054 0x40000 |
Таблица 3. Команды USB 2.0 Host SQ (b).
| Микросхема | EHCI_1 Host 2.0 | EHCI_2 Host 2.0 | EHCI_HSIC Host 2.0 |
|---|---|---|---|
| RK3168 RK3188 |
N.A | N.A | io -4 0x10240054 0x40000 |
| RK3288 | N.A | N.A | io -4 0xff5c0054 0x40000 |
| RK3228 RK3229 |
io -4 0x300c0054 0x40000 | io -4 0x30100054 0x40000 | N.A |
| RK3368 | N.A | N.A | io -4 0xff5c0054 0x40000 |
| RK3399 | io -4 0xfe3c0054 0x40000 | N.A | io -4 0xfe340054 0x40000 |
| RK3566 RK3568 |
io -4 0xfd880054 0x40000 | N.A | N.A |
| RK3588 RK3588S |
io -4 0xfc880054 0x40000 | N.A | N.A |
Таблица 4. Команды USB 2.0 Host SQ (c).
| Микросхема | DWC3_0 OTG Host 2.0 | DWC3_1 OTG Host 2.0 |
|---|---|---|
| RK1808 | io -4 0xfd000424 0x40000000 | N.A |
| RK1820 | io -4 0x1025000424 0x40000000 | io -4 0x1024000424 0x40000000 |
| RK3228H | io -4 0xff600424 0x40000000 | N.A |
| RK3366 | io -4 0xff500424 0x40000000 | N.A |
| RK3399 | io -4 0xfe800424 0x40000000 | io -4 0xfe900424 0x40000000 |
| RV1103 RV1106 |
io -4 0xffb00424 0x40000000 | N.A |
| RV1103B | io -4 0x20b00424 0x40000000 | N.A |
| RV1126 RV1109 |
io -4 0xffd00424 0x40000000 | N.A |
| RV1126B | io -4 0x21500424 0x40000000 | N.A |
| RK3528 | io -4 0xfe500424 0x40000000 | N.A |
| RK3538 | io -4 0xfc000424 0x40000000 | N.A |
| RK3562 | io -4 0xfe500424 0x40000000 | N.A |
| RK3566 RK3568 |
io -4 0xfcc00424 0x40000000 | io -4 0xfd000424 0x40000000 |
| RK3576 | io -4 0x23000424 0x40000000 | io -4 0x23400424 0x40000000 |
| RK3588 RK3588S |
io -4 0xfc000424 0x40000000 | io -4 0xfc400424 0x40000000 |
1.3 Стенд USB2 Tx
Нужен осциллограф с USB-ПО: Agilent 9000/90000, Tektronix или LeCroy. Пример Agilent 9000: MSO9254A с N5416A; активный дифференциальный пробник 113xA; головка E2678A; оснастка E2649-66401 Device и E2649-66402 Host; кабель USB2. Кабель должен строго соответствовать USB2. До 10 см используется маска Near End, более 10 см — Far End. Избыточная длина или рассогласование импеданса может вызвать отказ Near End.
1.4 Процедура USB2 Tx
- Соберите стенд. Для Agilent см. Agilent N5416A USB 2.0 Compliance Test Option и Agilent USB2.0 High Speed Device SQ Test. Для Tektronix/LeCroy найдите инструкции на официальных сайтах. Рис. 4 показывает Agilent USB2 Device SQ.

Рисунок 4. Стенд Agilent USB2 SQ.
- Войдите в Test Packet Mode. Сначала проверьте нормальный обмен USB. OTG Device подключите через оснастку/кабель к ПК и проверьте обнаружение, затем используйте описанные команды или инструмент. Для Host метод зависит от оснастки и осциллографа; ниже Agilent и Tektronix.
2.1 Оборудование Agilent
Подключите Host к одному концу оснастки, High-Speed устройство, например флешку, к другому (рис. 5), затем выполните команду.

Рисунок 5. Подключение оснастки Agilent USB2.
2.2 Tektronix: оснастка имеет только порт Host и не позволяет одновременно подключить другое High-Speed устройство. Отключите оснастку, подключите High-Speed устройство, например флешку, выполните команду. После входа в тестовый режим извлеките устройство, подключите оснастку и тестируйте. Нужен именно High-Speed, не Full-/Low-Speed мышь или клавиатура.
- Анализ автоматическим USB-ПО. В тестовом режиме осциллограф показывает непрерывные периодические Test Packet Patterns (рис. 6). ПО анализирует их и формирует полный отчёт.

Рисунок 6. Анализ качества USB2.
1.5 Анализ глазковой диаграммы USB2
1.5.1 Стандартная глазковая диаграмма USB2
USB2 использует маски Near End и Far End. Для High-Speed SQ кабель до 10 см между портом и оснасткой требует Near End, свыше 10 см — Far End. Для надёжности Rockchip источник рекомендует более строгую Near End как единый ориентир. Стандартные диаграммы показаны на рис. 7/8.

Рисунок 7. Глазковая диаграмма USB2 High-Speed Near End.

Рисунок 8. USB2 High-Speed Far End. Нормальный глаз имеет тонкие чёткие трассы и широкое раскрытие. Межсимвольная интерференция искажает сигнал, мешает совпадению символов, размывает и закрывает глаз. Шум дополнительно размывает линии и сужает раскрытие. Оно характеризует искажения и межсимвольную интерференцию.
1.5.2 Проблемы глазковой диаграммы USB2
-
Нет триггера: проверьте оснастку и USB-ПО осциллографа. Ищите периодический сигнал рис. 1-3. Его отсутствие может означать ошибку или неуспех команды.
-
Сильное искажение амплитуды или провал обычно означает ошибку методики. На рис. 9 амплитуда вдвое выше нормы: для Agilent обычно отсутствуют оконечные SMA 50 Ом на D+/D-. Провал рис. 10 обычно означает, что переключатель оснастки Agilent не в ON.

Рисунок 9. Искажение амплитуды глаза.

Рисунок 10. Провал сигнала глаза.
- Закрытый глаз рис. 11 пересекает маску. Проверьте DP/DM на ESD или электронные переключатели с большой ёмкостью; при наличии удалите для повторного теста. Программно настройте силу драйвера PHY и фронты с помощью инженера USB.

Рисунок 11. Закрытый глаз USB.
- Размытый глаз с множеством трасс (рис. 12) указывает на сильные перекрёстные помехи, возможные рассогласование импеданса и шум. Сначала проверьте/удалите ёмкостные ESD и переключатели DP/DM. Затем проверьте импеданс или замените кабель. Наконец проверьте разводку PCB, источник 24 MHz и пульсации питания PHY.

Рисунок 12. Размытый глаз USB.
1.6 USB2 Rx Compliance Test
1.6.1 Принцип USB2 Receiver Sensitivity
USB 2.0 Electrical Compliance Test Specification 1.07 определяет EL_16 Receiver Sensitivity @ Squelch, EL_17 Receiver Sensitivity и EL_18 Minimum SYNC Field. Переведите DUT в SE0_NAK. Генератор имитирует Host с IN-пакетами; принятый пакет вызывает NAK. Изменяйте амплитуду IN и наблюдайте NAK. EL_16 идёт сверху вниз: ответ ниже 100 mV означает чрезмерную чувствительность и отказ. EL_17 снизу вверх: отсутствие устойчивого ответа выше 200 mV означает недостаточную чувствительность и отказ. Изначально предел EL_17 был 150 mV, ECN изменил его на 200 mV. Поскольку генератор — Host, проверяется только Device или upstream HUB, не Host. NAK: 32-битная синхронизация (31 ноль и 1), затем 8-битный PID 10100101.
1.6.2 Команды USB2 Rx
Таблица 5. Команды USB2 Test SE0_NAK.
| Микросхема | USB 2.0 Test SE0_NAK команда |
|---|---|
| RK1808 | io -4 0xfd00c704 0x8c000a06 |
| RK1820 | io -4 0x102500c704 0x8c000a06 |
| RK2108 | io -4 0x41300804 0x30 |
| RK2116 | io -4 0x40040804 0x30 |
| RK2206 | io -4 0x43040804 0x30 |
| RK29XX RK30XX RK31XX |
io -4 0x10180804 0x30 |
| RK3228 RK3229 |
io -4 0x30040804 0x30 |
| RK3288 RK3228H RK3328 RK3368 |
io -4 0xff580804 0x30 |
| RK3308 RK3308B-S RK3308H-S |
io -4 0xff400804 0x30 |
| RK3326 RK3326S PX30 PX30S |
io -4 0xff300804 0x30 |
| RV1103 RV1106 |
io -4 0xffb0c704 0x8c000a06 |
| RV1108 | io -4 0x30180804 0x30 |
| RV1126 RV1109 |
io -4 0xffd0c704 0x8c000a06 |
| RV1126B | io -4 0x2150c704 0x8c000a06 |
| RK3399 | io -4 0xfe80c704 0x8c000a06 |
| RK3566 RK3568 |
io -4 0xfcc0c704 0x8c000a06 |
| RK625 | io -4 0x40180804 0x30 |
| RK3588 RK3588S |
io -4 0xfc00c704 0x8c000a06 |
1.6.3 Процедура USB2 Rx
Стандартная процедура: раздел 4.2.1 Upstream Port Receiver Sensitivity в USB 2.0 Electrical Compliance Test Specification 1.07. Пример использует Tektronix.
1.6.3.1 Меры предосторожности USB2 Rx
До команд подключите DUT через оснастку к PC Host, чтобы PHY не перешёл в suspend. Введите Test SE0_NAK через UART. При EL_18, когда генератор Tektronix меняет SYNC с 32 на 12 бит, поменяйте полярность канала генератора.
1.6.3.2 Процедура USB2 Rx
- Подключите DUT через Device Sensitivity к генератору и осциллографу Tektronix, как на рис. 13.

Рисунок 13. Соединения Tektronix USB2 Rx.

Рисунок 14. Генератор Tektronix.

Рисунок 15. Оснастка USB2 Rx Device Sensitivity.
-
Переключите DIP оснастки в ON и подключите её к PC Host.
-
Введите команду таблицы 5 через UART для режима SE0_NAK.
-
Переключите DIP в OFF.
-
Задайте шаблон Tektronix и последовательно выполните EL_16, EL_17, EL_18.
1.6.3.3 Анализ результатов USB2 Rx
На рис. 16 осциллограф в реальном времени измеряет IN генератора и NAK DUT и формирует показанный отчёт.

Рисунок 16. Сигналы USB2 Rx.

Рисунок 17. Отчёт USB2 Rx. При отказе EL_16/EL_17 попробуйте настройку Squelch PHY USB2; см. Rockchip USB SQ Tool.
2. USB2 HUB SQ Test
SQ HUB охватывает upstream/downstream, но обычно проверяют пользовательские downstream, описанные здесь. Типовые USB2 HUB: FE1.1, FE1.1S, GL850, GL852, USX2064, HX2VL; HSIC: USB4604, GL850H. USB2 допускает оба метода, HSIC только второй. Метод 1: определите Host-контроллер и команду таблиц 2–4, затем проверьте все downstream по процедуре USB2. Команда и метод одинаковы для портов. Метод 2: сборка/запуск скрипта сложнее, но универсальны для USB2 и HSIC.
-
Загрузите и соберите USB_HUB_Compliance_Test_Script: https://redmine.rockchip.com.cn/documents/113 .
-
Скопируйте linux-eye в каталог data, выполните
chmod 777 linux-eye, запустите его и вводите команды по подсказкам:
[root@hari LinuxEye]# ./linuxEye
LinuxEye - select one of the following hub for testing.
[ 0] 4-port Full-Speed hub at tier 2 of Bus 3
(VID: 0451, PID: 1446, Address: 3)
[ 1] 4-port High-Speed hub at tier 2 of Bus 1
(VID: 1A40, PID: 0101, Address: 15)
[ 2] 4-port High-Speed hub at tier 2 of Bus 1
(VID: 1A40, PID: 0101, Address: 10)
[ 3] 7-port High-Speed hub at tier 3 of Bus 1
(VID: 1A40, PID: 0201, Address: 50)
Please enter [0 ~ 3] to select a hub or 'q' to quit: 2 (表⽰共有4个HUB, 测试HUB[2])
[ 1] is connected to Low-Speed device
[ 2] is open
[ 3] is connected to High-Speed device
[ 4] is connected to Low-Speed device
Please enter [1 ~ 4] to select a port or 'q' to quit: 2 (表⽰测试HUB的第2个port)
LinuxEye - Start testing port 2 of device 10 on bus 1
Type 'q' to stop the test: q (退出测试脚本)
[root@hari LinuxEye]#
3. USB3 Compliance Test
USB3 имеет две шины, добавляя SuperSpeed к USB2. SuperSpeed: 5 Gbps, ANSI 8b/10b, полный дуплекс, кабель до 3 м. Рис. 18 показывает архитектуру.

Рисунок 18. Архитектура шины USB3.
3.1 Дополнительные нормы USB3
Калибровка/тест выполняются в конце compliance channel худшего соединения: Host — кабель 3 м и трасса 5 дюймов; Device — 3 м и 11 дюймов. Tx допускает embedding эталонных S-параметров. Вычисляют DJ/RJ/TJ при указанном BER 10e-12 и Pj на 10, 20, 33 MHz. После CTLE анализируют выровненный глаз: 5 Gbps после длинного кабеля/PCB может закрыться; CTLE приёмника компенсирует ВЧ-потери, поэтому ПО осциллографа тоже требует CTLE. Калибровка глаза Device: 145 mVp-p, Host: 180 mVpp.
Электрические тесты USB3 включают Tx, Rx Tolerance Compliance и кабели/разъёмы.
3.2 USB3 Tx Compliance Test
3.2.1 Требования USB3 Tx
Передатчик выдаёт заданные шаблоны. Осциллограф реального времени измеряет глаз, амплитуду, джиттер, среднюю скорость и фронты. Для USB3 5 Gbps с меньшей амплитудой нужен осциллограф свыше 12 GHz и низкий шум. Точка измерения — конец compliance channel, а не прямой контакт оснастки. Канал моделирует Host: 3 м + 5 дюймов PCB; Device: 3 м + 11 дюймов. USB3 даёт S-модели. На практике DUT подключают непосредственно через оснастку, а канал внедряют S-параметрами осциллографа. TP1 рис. 19 — точка измерения.

Рисунок 19. Модель теста USB3 Tx.

Рисунок 20. Требования глаза USB3 Tx.
Редактируемая транскрипция таблицы изображения (тексты указанных примечаний в изображении отсутствуют):
| Характеристика | Минимум | Номинал | Максимум | Единицы | Номера примечаний |
|---|---|---|---|---|---|
| Высота глаза | 100 | 1200 | mV | 2, 4 | |
| Dj | 0.43 | UI | 1, 2, 3 | ||
| Rj | 0.23 | UI | 1, 2, 3, 5 | ||
| Tj | 0.66 | UI | 1, 2, 3 |

Рисунок 21. Электрические требования USB3 Tx.
Редактируемая транскрипция таблицы изображения (тексты указанных примечаний в изображении отсутствуют):
| Символ | Параметр | 5.0 GT/s | Единицы | Примечания |
|---|---|---|---|---|
| UI | Единичный интервал | 199.94 (min); 200.06 (max) | ps | UI соответствует допуску ±300 ppm на устройство; период без изменений от SSC. |
| V_TX-DIFF-PP | Дифференциальный размах Tx p-p | 0.8 (min); 1.2 (max) | V | Номинал 1 V p-p. |
| V_TX-DIFF-PP-LOW | Маломощный дифференциальный размах Tx p-p | 0.4 (min); 1.2 (max) | V | См. 6.7.2. В этом режиме требований к предыскажению нет; зависит от реализации. |
| V_TX-DE-RATIO | Предыскажение Tx | 3.0 (min); 4.0 (max) | dB | Номинал 3.5 dB. |
3.2.2 Испытания USB3 Tx
LFPS (Near End); SSC (Near End); Tx (Near/Far End): глаз, Tj/Rj/Dj, амплитуда.

Рисунок 22. Параметры Agilent USB3 Tx.
3.2.3 Тестовый режим USB3 Tx
USB3 требует Compliance Mode до проверки Tx. После первого тайм-аута LFPS в Polling контроллер переходит из Polling.LFPS в Compliance Mode (рис. 23).

Рисунок 23. Вход в USB3 Compliance Mode.
3.2.4 Стенд USB3 Tx
Agilent рекомендует серию 90000 (до 13 GHz), автоматическое ПО U7243A и оснастку U7242A для теста передатчика USB3.

Рисунок 24. Стенд Agilent USB3 Tx.

Рисунок 25. Оснастка Agilent USB3 Tx U7242.
Agilent предлагает N7015A для USB3.1 Gen1 Type-C (рис. 26) с тем же ПО, что U7242A. См. Keysight N7015A-16A Type-C Test Kit.

Рисунок 26. Agilent N7015A Type-C. Стенд Tektronix показан на рис. 27. Опция USB-Tx DPO/MSO70000 автоматизирует измерения передатчика USB3: https://www.tek.com.cn/datasheet/usb3-transmitter-and-receiver-solutions-datasheet .

Рисунок 27. Соединения Tektronix USB3 Tx.
3.2.5 Команды USB3 Device Tx
Некоторым микросхемам нужна команда Device Tx для CP1. Вводите её только по запросу осциллографа на CP1, иначе переключение CP0/CP1 может нарушиться. Команды приведены в таблице 6.
| Микросхема | DWC3_0 OTG Host 3.0 | DWC3_1 OTG Host 3.0 |
|---|---|---|
| RK1808 | io -4 0xff384008 0xc | N.A |
| RK3228H RK3328 |
io -4 0xff478408 0xc | N.A |
Обычно Device входит в режим Tx без команд. В таблице 6 RK1808/RK3228H/RK3328 требуют команды ручного перехода CP1; RK3399/RK3568/RK3588 — нет.
3.2.6 Процедура USB3 Device Tx
Ниже процедура Device Tx использует Agilent 90000 DSO91204A и оснастку U7242A. Для Tektronix и LeCroy см. руководства производителей.
3.2.6.1 Меры USB3 Device Tx
Сначала проверьте таблицу 6. После подключения Device обычно автоматически входит в Compliance Mode; при необходимости выполните команду по запросу CP1. Device не должен выдавать 5 V на VBUS. Подайте VBUS через USB-питание U7242A от осциллографа или ПК.
3.2.6.2 Шаги USB3 Device Tx
Шаг 1: настройте автоматическое испытательное ПО.

На рисунке 28 показано ПО V2.01. У V3.00.0001 другой интерфейс; настройте канал, как показано ниже.

Рисунок 29. По умолчанию Normal Channel добавляет модель кабеля 3 m и платы 5 дюймов. Подключите оснастку прямо к DUT. Реальный кабель длиннее 10 cm может вызвать отказ Far End; выберите None либо кабель короче 10 cm.
Шаг 2: выберите All USB3 Tests.

Рисунок 30. Выбор испытаний.
Шаг 3: установите Automate Test Pattern Change = Auto; остальные настройки оставьте по умолчанию.

Рисунок 31. Настройка испытаний.
Шаг 4: соедините осциллограф, оснастку и Device по подсказке, включая питание VBUS 5 V.

Рисунок 32. Соединения Device Tx.
Шаг 5: запустите испытание Tx.
5.1 Указания для испытания LFPS.

Рисунок 33. До теста LFPS отсоедините USB3-оснастку от DUT, нажмите OK, затем подключите снова.

Рисунок 34. Эталонная форма LFPS.
5.2 После LFPS измените соединения по подсказке для теста SSC.

Рисунок 35. Соединения SSC.
5.3 После SSC измените соединения для глазковой диаграммы и джиттера.

Рисунок 36. Соединения для глазковой диаграммы и джиттера.
5.4 Просмотрите автоматически созданный отчёт.

Рисунок 37. Отчёт.

Рисунок 38. LFPS Burst Width.

Рисунок 39. LFPS Repeat Time Interval.

Рисунок 40. Short Channel Eye.

Рисунок 41. Far End Eye.
3.2.7 Команды USB3 Host Tx
Таблица 7. Команды USB3 Host Tx.
| Микросхема | DWC3_0 OTG Host 3.0 | DWC3_1 OTG Host 3.0 | DWC3_2 Host 3.0 |
|---|---|---|---|
| RK1808 | io -4 0xff384008 0xc io -4 0xfd000430 0x0a010340 |
N.A | N.A |
| RK1820 | io -4 0x1025000430 0x0a010340 | N.A | N.A |
| RK3228H RK3328 |
io -4 0xff478408 0xc io -4 0xff600430 0x0a010340 |
N.A | N.A |
| RK3366 | io -4 0xff500430 0x0a010340 | N.A | N.A |
| RK3399 | io -4 0xfe800430 0x0a010340 | io -4 0xfe900430 0x0a010340 | N.A |
| RK3528 | io -4 0xfe500430 0x0a010340 | N.A | N.A |
| RK3562 | io -4 0xfe500430 0x0a010340 | N.A | N.A |
| RK3566 RK3568 |
io -4 0xfcc00430 0x0a010340 | io -4 0xfd000430 0x0a010340 | N.A |
| RK3576 | io -4 0x23000430 0x0a010340 | io -4 0x23400430 0x0a010340 | N.A |
| RK3588 RK3588S |
io -4 0xfc000430 0x0a010340 | io -4 0xfc400430 0x0a010340 | io -4 0xfcd00430 0x0a010340 |
| RV1126B | io -4 0x21500430 0x0a010340 | N.A | N.A |
У RK1808/RK3228H/RK3328 две команды; первая записывает 0xc для ручного CP1. Обычно выполняйте обе вместе. При проблеме CP0/CP1 сначала запишите только 0x0a010340, затем 0xc по запросу CP1. Команды io применимы к разным чипам/ядрам. Узлы Type-C RK3399 Linux 3.10/4.4 см. 3.4.2.
3.2.8 Процедура USB3 Host Tx
Источник называет следующий процесс Device Tx с Agilent 90000 DSO91204A/U7242A, хотя он расположен в разделе Host. Для Tektronix и LeCroy см. руководства производителей.
3.2.8.1 Меры USB3 Host Tx
Сначала подключите USB3-диск и проверьте SuperSpeed в журнале, затем извлеките. Без этого тест RK3399 Type-A может не работать. До теста выполните команду таблицы 7. Host подаёт VBUS 5 V; оснастка не должна питать его — в отличие от Device. Момент команды различается для Type-A и Type-C.
3.2.8.2 Шаги USB3 Host Tx
Шаг 1: настройте ПО как для Device.
Шаг 2: соедините оснастку и осциллограф, пока без Host.
Шаг 3: при LFPS осциллограф просит отсоединить оснастку от Host.
Шаг 4: найдите команду чипа и порта в таблице 7.
Шаг 5: для Type-A команда предшествует подключению; для Type-C подключите, подождите 2–3 s перехода Host, затем выполните команду.
Шаг 6: соедините оснастку и Host; тестовый режим запускается автоматически.
Шаг 7: следуйте остальным подсказкам осциллографа для завершения тестов.
3.2.9 Проверка USB3 Tx Compliance mode
Запрос Device Tx: cat /sys/kernel/debug/usb/xxxx/link_state, где xxxx — узел проверяемого USB-контроллера. Compliance означает Device Tx. Для Host Tx Linux 4.19 и ранее прочитайте xHCI PORTSC через io: биты [8:5] — Port Link State (PLS). PLS = 10 (десятичное) означает Compliance mode (здесь источник пишет Device). База зависит от чипа, см. TRM; смещение 0x430. Для RK3399 Host0 PORTSC = 0xfe800430, Host1 = 0xfe900430. Linux 5.10 и новее предоставляют узел portsc для проверки Host Tx:
cat sys/kernel/debug/usb/xhci/xxxx/ports/port02/portsc, где xxxx — узел проверяемого xHCI. Link:Compliance mode означает Host Tx.
3.3 USB3 Rx Compliance Test
Электрический тест USB3 Rx называется Receiver Jitter Tolerance Test. Команды не нужны: после подключения стенда контроллер автоматически входит в Loopback и начинается Rx. Стенд сложен и зависит от осциллографа, поэтому подробной процедуры здесь нет; см. его руководство. Здесь описаны лишь вход в Loopback и проверка состояния.
3.3.1 Процедура USB3 Rx
Вход в Loopback: на стадии Polling.Configuration обучения линии обнаружение бита Loopback в T2 pattern прибора автоматически переводит USB3 PHY в Loopback (рис. 42).

Рисунок 42. Вход USB3 в Loopback. Процедуры Receiver Jitter Tolerance Test см. в Electrical Compliance Test Specification for SuperSpeed USB Rev.
1.0a, раздел TD.1.5 Receiver Jitter Tolerance Test с подробными шагами испытания.
3.3.2 Проверка USB3 Rx Loopback mode
Запрос Device Rx: cat /sys/kernel/debug/usb/xxxx/link_state, где xxxx — узел проверяемого USB-контроллера.
Loopback означает Device Rx. Для Host Rx Linux 4.19 и ранее прочитайте xHCI PORTSC через io: биты [8:5] PLS = 11 (десятичное) означают Loopback. Базу см. в TRM чипа, смещение 0x430. RK3399 Host0 PORTSC = 0xfe800430, Host1 = 0xfe900430. Linux 5.10 и новее: cat sys/kernel/debug/usb/xhci/xxxx/ports/port02/portsc, где xxxx — реальный узел xHCI. Link:Test mode означает Host Rx.
3.4 Проблемы USB3 и решения
3.4.1 Device не входит в Tx
USB3 Device обычно входит в Tx без команды. Иначе сначала измерьте VBUS. Спецификация Device Tx Compliance запрещает Device самостоятельно питать VBUS 5 V: это мешает автоматическому входу Compliance. VBUS должна подавать оснастка; соедините её USB-питание с осциллографом или ПК.
3.4.2 Проблемы RK3399 USB3
-
RK3399 Type-A Host не входит в Tx: до испытания вставьте USB3-диск, как описано в мерах Host Tx, иначе вход может не сработать. Альтернатива: удалите
snps,usb3-warm-reset-on-resume-quirkиз DTS-узловusbdrd_dwc3_0иusbdrd_dwc3_1. -
RK3399 Type-C Host не входит в Tx: обычно достаточно процедуры Host Tx. При отказе проверьте VBus: постоянное питание может мешать. Способ 1: программное управление VBus, по умолчанию без 5 V, 5 V только после подключения кабеля Type-C–Type-A. Способ 2: DTS
dr_mode="host". -
RK3399 Type-A Host не входит в Rx Loopback: сначала вставьте USB3-диск и подтвердите SuperSpeed в последовательном журнале, то есть поддержку USB3 прошивкой. Извлеките диск и начните тест. Без этого Type-A может не войти в Loopback.
-
Процедура USB3 Host Tx RK3399 Linux 3.10/4.4.
Примечание: только для RK3399.
- RK3399 Linux 3.10 / ранний Linux 4.4. Type-C0 прямая/обратная ориентация — первая/вторая команда; Type-C1 — третья/четвёртая:
echo test_u3 > /sys/kernel/debug/usb@fe800000/host_testmode
echo test_flip_u3 > /sys/kernel/debug/usb@fe800000/host_testmode
echo test_u3 > /sys/kernel/debug/usb@fe900000/host_testmode
echo test_flip_u3 > /sys/kernel/debug/usb@fe900000/host_testmode
- RK3399 новый Linux 4.4: Type-C0 прямо/обратно — команды 1/2, Type-C1 — 3/4. Последний запрос проверяет вход. U2: test_packet — тест U2; U3: compliance mode — тест U3; U3: UNKNOWN — режим не включён.
echo test_u3 > /sys/devices/platform/usb0/host_testmode
echo test_flip_u3 > /sys/devices/platform/usb0/host_testmode
echo test_u3 > /sys/devices/platform/usb1/host_testmode
echo test_flip_u3 > /sys/devices/platform/usb1/host_testmode
cat /sys/kernel/debug/usb3 控制器节点/host_testmode
U2: test_packet // means that U2 in test mode
U3: compliance mode // means that U3 in test mode
3.4.3 Проблемы RK1808 USB3
- RK1808 Type-A USB3 Host не входит в Rx Loopback: отключите hub autosuspend следующей правкой ПО.
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 36e5098..0b2930d 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -66,7 +66,7 @@ int usb_disabled(void)
EXPORT_SYMBOL_GPL(usb_disabled);
#ifdef CONFIG_PM
-static int usb_autosuspend_delay = 2; /* Default delay value,
+static int usb_autosuspend_delay = -1; /* Default delay value,
3.4.4 Проблемы RK3588 USB3
Для тестов RK3588 USB3 Tx/Rx на Linux 5.10 соблюдайте следующие меры.
- До теста Type-C0 Device отключите autosuspend контроллера:
echo on > /sys/devices/platform/usbdrd3_0/fc000000.usb/power/control
-
Для Type-C Host сначала подключите оснастку к порту, подождите 2–3 секунды переключения Host, затем выполните команду таблицы 7.
-
Если Rx не входит автоматически в Loopback, добавьте
snps,dis_u3_susphy_quirk;в конфигурацию DWC3 DTS. -
Type-C0 Device Tx:
cat /sys/kernel/debug/usb/fc000000.usb/link_state;Complianceподтверждает тестовый режим. -
Type-C0 Device Rx:
cat /sys/kernel/debug/usb/fc000000.usb/link_state;Loopbackподтверждает тестовый режим. -
Host Tx на примере Type-C1:
cat sys/kernel/debug/usb/xhci/xhci-hcd.8.auto/ports/port02/portsc;Link:Compliance modeподтверждает Host Tx. -
Host Rx на примере Type-C1:
cat sys/kernel/debug/usb/xhci/xhci-hcd.8.auto/ports/port02/portsc;Link:Test modeподтверждает Host Rx.
4. USB3 HUB Compliance Test
Пояснения скрипта: пример USB2 содержит четыре HUB, выбирается HUB[2], затем порт 2, выход q. В USB3 выбор 0 означает SuperSpeed HUB, затем 1 означает port1 (2 — port2 и далее); q завершает тест. Исходный вывод и китайские комментарии не изменены.
USB3 HUB compliance охватывает upstream и downstream, но обычно проверяют только доступные пользователю downstream-порты; здесь описаны они. Распространены GL352x, VL812, VL813, USB5734, RTS5411 и CYPRESS HX3. В отличие от USB2 HUB, Rockchip USB3 HUB проверяется только скриптом.
-
Загрузите и скомпилируйте скрипт. Исходники: https://redmine.rockchip.com.cn/documents/113 , файл USB_HUB_Compliance_Test_Script.
-
Выполните скрипт: пример GL3523 на RK3399. (1) Передайте скрипт в Android через adb. (2) Измените права linux-eye. (3) Выполните для режима теста порта USB3 HUB. (3.1) Определите HUB по журналу ядра.
adb push C:\Users\user\Desktop\linux-eye /data
root@rk3399:/data # chmod 777 linux-eye
[ 139.427845] usb 6-1: new SuperSpeed USB device number 2 using xhci-hcd
[ 139.445641] usb 6-1: New USB device found, idVendor=05e3, idProduct=0612
[ 139.445708] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 139.445738] usb 6-1: Product: USB3.0 Hub
[ 139.445763] usb 6-1: Manufacturer: GenesysLogic
[ 139.452409] usb 5-1: new high-speed USB device number 2 using xhci-hcd
[ 139.463572] hub 6-1:1.0: USB hub found
[ 139.465861] hub 6-1:1.0: 4 ports detected
[ 139.589854] usb 5-1: New USB device found, idVendor=05e3, idProduct=0610
[ 139.589920] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 139.589950] usb 5-1: Product: USB2.0 Hub
[ 139.589975] usb 5-1: Manufacturer: GenesysLogic
[ 139.607244] hub 5-1:1.0: USB hub found
[ 139.609146] hub 5-1:1.0: 4 ports detected
(3.2) Выполните испытательный скрипт.
root@rk3399:/ # ./data/linux-eye
LinuxEye - select one of the following hub for testing.
[ 0] 4-port Super-Speed hub at tier 2 of Bus 6
(VID: 05E3, PID: 0612, Address: 2)
[ 1] 4-port High-Speed hub at tier 2 of Bus 5
(VID: 05E3, PID: 0610, Address: 2)
Please enter [0 ~ 1] to select a hub or 'q' to quit: 0 (输⼊0,表⽰测试super-speed)
[ 1] is open
[ 2] is open
[ 3] is open
[ 4] is open
Please enter [1 ~ 4] to select a port or 'q' to quit: 1 (输⼊1,表⽰测试USB3 HUB
port1,如果测试port2,则输⼊2,以此类推)
device file /dev/bus/usb/006/002 opened successfully
Port (1) Status: 02A0
LinuxEye - Start testing port 1 of device 2 on bus 6 (开始测试)
Type 'q' to stop the test: q (测试结束,输⼊q,退出)
(3.3) Повторите для остальных downstream-портов USB3 HUB.
5. Rockchip USB SQ Tool
Rockchip USB SQ Tool — средство отладки целостности сигнала USB PHY Rockchip. Оно показывает тестовые команды, динамически регулирует PHY и создаёт код драйвера по результатам настройки. См. Rockchip_Introduction_USB_SQ_Tool_CN. Загрузка: https://redmine.rockchip.com.cn/documents/113 .
6. Документация
-
USB 2.0 Specification
-
USB 3.1 Specification
-
Agilent N5416A USB 2.0 Compliance Test Option
-
Agilent USB2.0 High Speed Device SQ Test
-
Keysight N7015A-16A Type-C Test Kit
-
USB 2.0 Electrical Compliance Test Specification Version 1.07
-
Electrical Compliance Test Specification for SuperSpeed USB Rev. 1.0a
