LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Usb > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: noisehammer at onlinehome.de<noisehammer@o...>
    Date: Tue Apr 10 19:46:21 CEST 2007
    Subject: [usb] usb 1.1 core Enumeration Problem
    Top
    hello,

    im a student at the Fachhochschule Offenburg in Germay and im
    currently working on my diploma work.
    we have downloaded the free usb 1.1 IP core (from rudolf usselmann)
    for our project.

    im using the CYCLONE II FPGA EP2C8T144 from ALTERA.
    now im trying to implement the usb module to communicate with the host PC.

    The current problem is that the Enumeration Process does not work
    properly. After my Device has recieved the SETUP Paket, it tries to
    send the first Device Descriptor located in the ROM, but he sends the
    first byte twice, which results to an incorrect Device Descriptor.
    So the Host PC terminates the connection and the Enumeration Process
    fails.

    It is interesting to see that the Host PC accepts the paket with an
    ACK, so there cant be any data corruption on the Physical Layer.

    I have analyzed the communication with an USB protocol analyzer.
    the ROM content in HEX for the Device Descriptor is:
    12, 01, 10, 01, 00, 00, 00, 40, 34, 12, 78, 56, 10, 00, 01, 02, 00, 01

    the data content of the paket which the Device wants to send is:
    12, 12, 01, 10, 01, 00, 00, 00, 40, 34, 12, 78, 56, 10, 00, 01, 02, 00

    here the byte 12h has been send two times.
    i think that this is the reason for the enumeration failure.
    Maybe it could be an incorrect initialisation (reset) or an incorrect
    ROM or FIFO data transmission ?

    I would be glad someone can help me trying to find out what the
    problem is and what to do.

    ------------
    my tools:
    RTL Compilation and Synthesis: Mentor Precision Synthesis;
    Full Synthesis: Altera Quartus II 6.0

    implemented RAMS for FIFO and ROM: altera synchronous ram (altsyncram)

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.