Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++

USB 1.1 Host

Altera_Forum
Honored Contributor II
1,339 Views

Hello, 

I've implement usb 1.1 host/slave IP core in NiosII processor and use it as Host to communicate with USB Mass Storage Class devices. I can read information from the flash drive disk but I can't write data to it. Does anyone have successfull experience or just any ideas? 

Thanks, Yuriy.
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
619 Views

Hi, 

I got your point. I already developed Mass Storage system but for the HOST i am using my Own Windows Xp PC. 

1) My first question for you is that did you use any stack for your HOSt or not??? 

2) Did you aware of mass Storage Class structure. your HOST must have to send a data in that formate and at the device side you have to decode it and i think for that you are using ready made mass storage drive. right?so for that u have to no worry. but HOST point of you you have to send CBW-command block wrapper ,CSW - command status wraper and data phase for mass storage class. 

In short at the HOSt side you have that mechanism which follows mass storage class specification. 

 

Best Regards, 

slsnios
0 Kudos
Altera_Forum
Honored Contributor II
619 Views

Hi slsnios, 

thanks for reply. 

I haven't quite catch your first question, my host controller is usbhostslave IP core, it has some registers, etc. ADDRESS, ENDPOINT, PID and FIFO buffer, so I should fill all appropriate registers and set flag to start transmission. 

According to the second you're right, as I'm developing host I should worry just about transmit path. Read operation is fully successfull: I'm sending CBW, it is acknowledged by the function, I'm sending request for data and I 

receive them, I'm sending request for CSW and I receive it. But another case 

with write operation: I send CBW and it is acknowledged then I send Data 

and they are acknowledged too, then I send request for CSW but I don't 

receive it. When I read the same sector after this I can see no changes in 

data structure. 

Regards,Yuriy.
0 Kudos
Altera_Forum
Honored Contributor II
619 Views

Hi 

so you are aware of Mass Storage class and thts good.Now i think in write operation and that means in "2a" command you are not able to write anything on your device. 

 

and one thing you are pass all the request from the host for your device enumeration like  

1) inquairy 

2) read_capacity 

3) mode_sense 

etc..... 

 

 

I suggest you one thing and that is if you have sniffer(USB Debugger) then just connect your drive to PC and catch the HOST protocol data in sniffer and mimic same thing in your HOST(embedded host.IP base). Then definately you will get the idea. 

 

And the IP you used is from "opencore" or what??? 

Anyway if you have any doubts then you can ask me... 

 

Best Regards, 

slsnios
0 Kudos
Altera_Forum
Honored Contributor II
619 Views

Yuriy 

 

could you post you ip ,so many people may be help you
0 Kudos
Reply