0
\$\begingroup\$

I am planning a device that takes automatic backup of some instrumentation data from an SDHC card to a portable HDD (USB 3.0 / USB 2.0 removable hard-disk). The idea is to insert the SD card into the case, press a button and copy certain files on the FAT32 formatted SD card to the Hard-disk into a set of pre defined folders.

I am targeting a speed of 480 Mbps. I have only limited knowledge of the USB system. I know that I need a Host Controller (Something like a Vinculum) and a USB hub to create two USB ports.

My doubt is do I need one Host Controller or Two Host Controllers to make the transfer between the two connected USB Mass storage devices operate on High-Speed (i.e 480 Mbps) ?

\$\endgroup\$
  • 2
    \$\begingroup\$ Why do you need two USB hosts? You can read the SD card directly if you choose a suitable SoC to control the system. \$\endgroup\$ – pjc50 Mar 8 '16 at 13:26
  • \$\begingroup\$ I want to transfer data from the SD card to the External Hard-Disk. The micro-controller or SoC need not read the data, just control the system to transfer the data. Will one Host Controller (High Speed) be able to do the transfer at High Speed? \$\endgroup\$ – Raghavendra Kumar Mar 8 '16 at 13:33
  • 1
    \$\begingroup\$ Nope. Vinculum only supports Full speed, which is 12 MBit/sec. \$\endgroup\$ – Turbo J Mar 8 '16 at 14:10
  • 1
    \$\begingroup\$ All data has to pass through the host in USB \$\endgroup\$ – Peter Smith Mar 8 '16 at 14:18
  • \$\begingroup\$ @PeterSmith So, 1 Host controller is enough then? All data is routed through it in any case. Is that the case? \$\endgroup\$ – Raghavendra Kumar Mar 8 '16 at 14:33
1
\$\begingroup\$

SD Cards use their own protocol, not USB. You don't need a USB host controller to talk to them. You can either use SPI (though this won't get you much data throughput) or their parallel interface mode. There are plenty of micro controllers around that support both USB HS and have an SD Card parallel interface built in (look for ones with an SDHC).

What you are proposing is not actually that hard, but it is a high speed board that you will have to design, and you'll have to put together the glue software to do the copying, including a FAT32 driver that can interpret the raw data on each storage device. Unless your time is very very cheap, you would be better off buying a single board computer that has this capability built in, then you can do everything with a one line Linux shell script.

\$\endgroup\$
  • \$\begingroup\$ I do want to design a custom PCB as an SBC would be too costly for the price point we are targeting. That is the reason I am looking to design my own board. Wouldn't a Chip like TUSB7340 ( ti.com/product/TUSB7340 ) be enough to build such a system? \$\endgroup\$ – Raghavendra Kumar Mar 8 '16 at 15:01
  • \$\begingroup\$ That chip interfaces USB to PCIe. You'd need a processor with PCIe as well. \$\endgroup\$ – pjc50 Mar 8 '16 at 15:10
  • 1
    \$\begingroup\$ @RaghavendraKumar - have a look at the ARM cortex controllers from ST, NXP, Atmel etc. Look for ones with USB HS and an SDHC. If you use something from ST you can probably get most of the software from their vendor supplied libraries (probably the same for the others, I just have less experience with them), but you'll have to be pretty competent with embedded programming to bring it all together properly. \$\endgroup\$ – Jon Mar 8 '16 at 15:15
  • \$\begingroup\$ @jon I have seen them too. There is the LPC4350 ( nxp.com/products/microcontrollers-and-processors/arm-processors/… ) It has all the peripherals and more required for my project. But will this IC alone be enough to get 480 Mbps transfer rates between two peripherals? or is any buffer, as suggested above, required? \$\endgroup\$ – Raghavendra Kumar Mar 8 '16 at 15:18
  • 1
    \$\begingroup\$ Other way round: the best way to achieve that speed is going to be a single-chip solution which has USB on one side and SDIO on the other. The LPC4350 looks good for that, although a little low on RAM. \$\endgroup\$ – pjc50 Mar 8 '16 at 15:25
0
\$\begingroup\$

You mentioned the Vinculum; you could use it, since it has the capability to be a SPI Master (for the SD Card) and USB Host - check out the VNC2 devices.

\$\endgroup\$
  • \$\begingroup\$ It was already comprehensively explained two months ago why this would not meet their goal. Please make sure to read what has already been posted on a question before attempting to answer. \$\endgroup\$ – Chris Stratton May 23 '16 at 20:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.