logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kontroler USB 2.0 High Speed, NXP, ISP1582, Enumeracja

dyna0 14 Cze 2008 23:05 1889 3
REKLAMA
  • #1 5247008
    dyna0
    Poziom 11  
    Witam.

    Może ktoś z was, szanownych użytkowników forum używał do transmisji USB kontrolera ISP1582 firmy NXP? Piszę firmware do tej kości w VHDL-u. Kontroler w moim przypadku jest starowany z układu FPGA. Problem polega na tym, że muszę przejść przez cały proces enumeracji urządzenia USB. Ale na razie jestem w stanie obsłużyć jedynie reset magistralowy wysyłany przez hosta. Dokumentacja jest bardzo uboga w potrzebne informacje.

    Bardzo proszę o pomoc w tym temacie.

    Pozdrawiam.
  • REKLAMA
  • #2 5449374
    lelekx
    Poziom 30  
    "Firmware Programming Guide" dla ISP1582: http://www.nxp.com/acrobat_download/applicationnotes/AN10039_4.pdf
    Dokumentacja jest stworzona raczej dla osób programujących w C, ale jeżeli znasz ten język i sprawnie posługujesz się VHDL, nie powinieneś mieć problemu.

    Co do samego procesu enumeracji, w dokumentacji protokołu jest bardzo ładny graf, na podstawie którego możesz zbudować automat stanów.

    Osobiście uruchamiałem ISP1362, ma pewne cechy wspólne z ISP1582. Opierając się na w/w dokumentacji i tak czeka Cię droga przez mękę. Po długich poszukiwaniach udało mi się znaleźć w sieci kompletne przykłady w C, których wyrywki są w dokumencie. Dopiero bazując na działającym kodzie byłem w stanie napisać coś konkretnego.

    Dodano po 2 [minuty]:

    Jeszcze jedno - sprzętowy analizator USB zaoszczędzi Ci wieele czasu podczas uruchamiania. Jeżeli robisz projekt komercyjny, pieniążki wydane na taki sprzęt raczej nie będą zmarnowane.
  • REKLAMA
  • #3 5450006
    dyna0
    Poziom 11  
    Zrobiłem maszynę stanów w VHDL-u i przy przy uruchamianiu układ pokazuje trzy przerwania jednocześnie. W tej chwili nie pamiętam już szczegółów, bo będąc ograniczony czasowo musiałem przejść na układ Cypress-a z 8051 na pokładzie. Ale jak tylko będę miał możliwość to zajrzę do kodu i napiszę więcej szczegółów na temat przerwań. Bo główny problem był z obsługą przerwań.
  • #4 5451121
    lelekx
    Poziom 30  
    Jeżeli dobrze pamiętam, to po odczytaniu rejestru stanu przerwań, jest on zerowany sprzętowo. Więc obsługa przerwania powinna obsłużyć wszystkie zgłoszone przerwania bez odczytywania rejestru w międzyczasie - lub - odczytując rejestr "cień".
    Też miałem kłopoty z obsługą przerwań, dlatego początkowo pracowałem z układem w trybie poolingu. Dostawałem tylko przerwania od EP0 (TX i RX), długo nie byłem w stanie zmusić go do obsługi pozostałych potoków.
REKLAMA