I had the same problem on a USB external hard drive. There are lots of answers for this one. It could be drivers, USB interconnects or OS patches. If you've checked the obvious it may be time for a new drive.
In my case, I check everything and had to buy a new drive. It was only 10 months old.