При отправке запроса SetAddress USB флэшке она не подтверждает приём адреса, т.е. должно быть так: отправка запроса SetAddress устройству setup token packet (от хоста): 0x2d 0x00 0x10 data packet (от хоста): 0xc3 0x00 0x05 0x02 0x00 0x00 0x00 0x00 0x00 0xeb 0x16 handshake packet (от устройства): 0xd2 (ACK)
подтверждение того, что устройство приняло адрес token packet (от хоста): 0x69 0x00 0x10 data packet (от устройства): 0x4b 0x00 0x00 (пакет нулевой длины) handshake packet (от хоста): 0xd2 (ACK)
а в реальности происходит так: отправка запроса SetAddress устройству setup token packet (от хоста): 0x2d 0x00 0x10 data packet (от хоста): 0xc3 0x00 0x05 0x02 0x00 0x00 0x00 0x00 0x00 0xeb 0x16 handshake packet (от устройства): 0xd2 (ACK)
подтверждение того, что устройство приняло адрес token packet (от хоста): 0x69 0x00 0x10 handshake packet (от устройства): 0x5a (NACK)
то есть устройство говорит, что оно не приняло адрес (0x02).
Используется хост-контроллер USB1.1 OHCI. Может кто-нибудь сталкивался с подобной ситуацией? В чём может быть причина?
|