Hello everyone
I am working on LPC2468 usb host with mass storage class . I am using NXP usb hostlite example as a base. I converted this source code for FAT32 system. It,s working fine for KIGNSTON 8 GB, SANDISK 4 GB pendrive. But when i used Hp 8 GB pendrive , it works fine sometime or sometime not.when I debug through the software the value of HOST_RhscIntr is not changing to 1. What,s the reason behind it.
So you need to look closer at why it is not changing to 1!
Look at your two examples that do work, and compare what's happening with the one that doesn't work.
"What,s the reason behind it"
There is a bug (or bugs) in your software that you just happen to get away with for the KIGNSTON 8 GB, SANDISK 4 GB pendrives, but your luck runs out with the the HP drive.
This is the big difference between just trying something a couple of times and saying, "it works" - and fully testing it to ensure that it complies with all conditions and requirements!
Either the thumb drives are differently formatted and that trig some issue.
Or there is a difference between they have different power requirements.
Or they may have different timing requirements.
Step 1 is to debug. And the lovely thing is that you have a situation where different memories gives different results - that is very good, because then you can compare. If none of the memories had worked, you would have had a way harder problem to fight.
CAN BE THE BUG IN THUMB DRIVE. LIKE LOTS OF SD CARDS HAVE BAD TIMINGS AND STUFF.
DON'T SHOUT!
Even if it is a bug in the HP drive, you said yourself that the PC accommodates it!
Far more likely a bug in your firmware.
www.catb.org/.../smart-questions.html
No, no, no no.
Lots of SD cards have not bad timings and stuff.
It is far more likely that lots of card reader software have bad timings and stuff.
Why else is almost all cards working when used in a PC, while lots of embedded equipment (MP3 players, cameras, data loggers etc) have issues with some cards?
If you think that maybe more time was invested in testing for the PC products, then you are close - real close - to the correct answer.
Too much embedded equipment gets released after having been tested with 3-4 different memory cards.
But when you buy memory cards, they are sold in many different speed classes. These speed classes obviously do affect how the card can be used...
Depending on flash type, and number of parallel flash memory chips, they will have different transfer rates. Different cards can also have different flash controllers. The standard do specify limits for timings of different signals - but normally only in one direction.
And there are also many different ways you can legally format a memory card - even two cards of same size. You can have one or two FAT tables. You can have different offset of root directory. You can have different number of root directory entries. You can have different sector size. Different cluster size. With partition table or without.
There are lots of parameters in the master boot record that can be optionally configured differently - and the reading firmware needs to learn to support these differences.
View all questions in Keil forum