Support and General Use > Hardware
H120 CF mod - enable UDMA on USB bridge
dobbley:
Hi,
I've just done the CF mod on an H120, but noticed that the read and write speeds, when attached as a mass storage device, were lower that the card was capable of (R-11MB/s W-5.5MB/s).
I investigated a little and found that the config for the USB ATA bridge had UDMA disabled. I changed config byte 0x0c from 0x20 to 0x3c using the vendor specific USB command, sent a USB reset command, and hey presto the speeds were more than double, and about what I had expected.
Great I thought, now I'll write this value to the I2C config EEPROM (via USB again). No such luck as it seems to be write protected. Does anyone know if there is some other way I can permanently change this value without resorting to a soldering iron, or is the H/W write protect hard wired?
If anyone using a UDMA capable CF wants to see if this speeds things up, the source code is attached. You need to have libusb installed (I was using libusb-win32 0.1.12.1).
Cheers,
dobbley
Edit: I have now added to the wiki on this topic:
http://www.rockbox.org/twiki/bin/view/Main/UDMAonUSB
The code on the wiki supports a wider range of DAPs, and there is a win32 exe for those who want to try this without having to compile. Please let me know if the mod works on your DAP, but its USB id is not included in the code on the wiki.
Chronon:
Nice result! I was going to tell you to put it on the tracker, then realized it's an application you run from your PC that reconfigures the USB-ATA bridge in the H1x0. Still, this seems better suited to the wiki than here in the forums where it's likely to get lost.
dobbley:
Will do, though first I would be keen to get feedback as to how well this works for others with different set-ups. Then I'll tidy up the code to include all the possibilities.
According to the datasheet wiki, as well as the h1x0, the h3x0, iaudio M5 and X5 all have this ATA USB bridge, so this could speed up CF access when connected to a PC for them too. It may well speed up hard disk read / write time as well when copying files if the drive supports UDMA.
On devices apart from the h120 / h140 you will need to change the idproduct check on line 43 to:0x3001 iHP-100, 0x3003 H320/H340, 0x3004 H340 (mtp).
For iaudio change the idvendor check to 0x0e21, and idproduct to: 0x0510 iAudio X5, 0x0513 iAudio X5, side USB port, 0x0520 iAudio M5.
It would be great if anyone trying this out could post how they get on and the initial read value for config byte 0xc (the code prints out all the config bytes).
dreamlayers:
The Archos recorders with USB 2 use a similar chip. However, in Vista with LibUSB-Win32 0.1.10.1, USB mass storage devices aren't seen, even if I install the LibUSB-Win32 driver for the device.
I'm guessing that UDMA is already enabled on my V2 recorder because disk access is very fast.
dobbley:
Thanks for the heads up on Vista, I have been using it on XP. Do you still get this problem with libusb-win32-filter-bin-0.1.12.1.exe if you right click and select “Run this program in compatibility mode for†using XP option before installing it?
As you say you are probably using UDMA already if you are seeing greater that PIO mode 4 speeds (16MB/s theoretical, 12MB/s real world).
Navigation
[0] Message Index
[#] Next page
Go to full version