Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

MAX3421 в режиме Peripheral (MAX3420) не отвечает хосту

Ср окт 27, 2021 12:39:18

Всем привет. Может кто работал с микросхемами MAX3421 и MAX3420?
Интересует конкретно работа с MAX3421 в режиме устройства.
Примеров кода нашел, написал. SPI завел. Вроде всё в порядке. Регистры писать и читать могу.
Но проблема в следующем.
При подключении устройства я ловлю Reset и первый Setup пакет:

SETUP: 0x: 80 06 00 01 00 00 40 00
То есть хост запрашивает Дескриптор устройства (GET_DEVICE_DESC , код 0x06) с длиной по умолчанию 64 байта.
Сам дескриптор имеет длину 18 байт. Обрабатываю запрос и отправляю транзакцию IN:

Код:
         
         sendlen = (reqlen <= desclen) ? reqlen : desclen; // send the smaller of requested and avaiable
        while (!(rreg(rEPIRQ) & bIN0BAVIRQ)) {};
        for(int i=0; i<18; i++)
        {
            wreg(rEP0FIFO,DD[i]);
        }
        wregAS(rEP0BC,sendlen);


sendlen как и положено устанавливается в 18 байт. Пробовал считать записанный буфер - всё четко.
После этого я ожидаю принять новый SETUP пакет типа SET_ADDRESS (код 0x05).
Но ничего не приходит.

По итогу хост присылает мне новый RESET и запрос дескриптора. И так 4 раза, после чего выводит уведомление
"USB device not recognized"
Видимо хост не распознает самый первый ответ на запрос дескриптора устройства ,или же MAX3421 вообще не отправляет ничего. Проверить не могу. Анализатора USB шины нету. Но подозреваю что молчит сам MAX3421. Проверил линии - всё хорошо. Хотя если ловит первый SETUP, то с линиями точно всё в порядке.

В чем может быть проблема?? Спасибо

Re: MAX3421 в режиме Peripheral (MAX3420) не отвечает хосту

Чт окт 28, 2021 13:55:56

В общем разобрался сам, в чем дело. Дело в том что микросхема при приходе SETUP пакета отвечает битым ACK, который генерируется автоматичести. Итого из за битого ответа хост не может его распознать и отправляет запросы вновь и вновь, пока не выведет - Устройство не определено.
Исправить это я никак не могу. Проблема видно в самой микросхеме. Замена кварца ничего не дала.
В общем не покупайте, если надумаете. Микросхема говно.
Ответить