Author Topic: MSD Enpoints, sequential or otherwise  (Read 5944 times)

rallysjd

  • Member
  • ***
  • Posts: 21
    • PiXCL Automation Technologies Inc
MSD Enpoints, sequential or otherwise
« on: December 07, 2013, 01:17:41 pm »
Jan,
I have "USB Mass Storage" and "USB Complete 4th ed" and am working on a MSD (uSD card on an ARM board). Sample code builds, loads and runs (in Win7) perfectly, using 0x81 IN and 0x02 OUT endpoints. As an exercise I want to change the EPs to something else, which seems to be allowable in the MSD spec.

So, when I change to 0x83 IN, 0x04 OUT (at multiple places in the sample code, got them all I think), it builds and loads on the board. Win7 correctly detects the device and reports the new EPs, Device Manager reports a MSD in the USB Controllers class as it should, but there's something wrong in the code (or my understating of MSD or both) that prevents the SD card appearing as a disk drive.

So my questions are these
1. Do EPs have to be sequential? e.g. EP0 (default), EP1 (0x81) IN and EP2 (0x02) OUT.
2. Is there any reason that EP0, EP3, EP4 (assuming correct code) will not work?
3. How about EP0, EP3 (0x83) IN, EP3 (0x03) OUT?

regards
SD



Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: MSD Enpoints, sequential or otherwise
« Reply #1 on: December 07, 2013, 01:48:42 pm »
1. no
2. no
3. yes

To force Windows to forget the previous descriptors, with the device attached, open Windows Device Manager and uninstall the device (under Driver). Then reattach.