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

funascan

Участник
  • Постов

    5
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Происходит вот это, поэтому и ack-а нет. Если я правильно понимаю, то трансивер неправильно захватывает данные, а ошибка хотя бы в одном бите - это сразу же проблема с контрольной суммой.
  2. Энумерация то проходит, то не проходит. Если проходит, то данные не всегда передаются и конечная точка рано или поздно отключается по 3м ошибкам. На логическом анализаторе виден отправленный пакет(причем правильно отправленный) а ack пакета после него не следует. Иногда бывает, что при подключении трансивер уходит в Low power Mode. Я так понимаю, что это происходит, когда я пишу в function control, а трансивер что то не правильно принимает и пишет 0 в SuspendM.
  3. Тут я согласен, но я всегда перед записью в фифо проверяю, нет ли там чего. Да, это определенная потеря в производительности, но рассинхрона точно быть не может. Думал так сделать, но изначально была задумка сразу из памяти кидать данные в ulpi. Как оказалось, при этом задержка данных больше, поэтому вставил триггер после памяти. Ну и к тому же конечные точки уже под такой способ заточены, а их переписывать слишком уж муторно. А учитывая вышенаписанное может и не нужно.
  4. Доброго времени суток. Уже несколько недель тщетно пытаюсь побороть ULPI. Вроде бы с самим протоколом разобрался и, если я правильно понимаю, моя проблема кроется либо в описании временных ограничений(в этом я не очень силен), либо в колхозности платы(сделано все на макетке, фото приложу ниже). Проблема имеется только с отправкой данных, поэтому далее речь пойдет только о трансмиттере. Кратко опишу, как это работает. В модуле трансмиттера имеется 2 FIFO буфера. Один нужен для непосредственно данных(TXCMD в том числе), второй для количества передаваемых байт. Соответственно 1. Сначала детектируется то, что второй буфер не пуст 2. Считывается количество байт 3. Считывается первый байт 4. По сигналу NXT считываются следующие байты 5. По окончанию считывания генерируется STP 6. Из-за разности размера входной и выходной шины FIFO ненужные данные читаются в пустую FPGA использую EP4CE6E22C8(Intel), трансивер FUSB2805, пишу на SystemVerilog. Код модуля трансмиттера: Код временных ограничений: Фото платы трансивера: P.S. Вроде бы всё описал. Слёзно прошу помощи.
×
×
  • Создать...