USB Powered Hubs
There are millions of devices that reliably use a PC’s USB port as a power source. Take a USB Keyboard for example. It uses the USB cord for communication, and it also uses it for power. But what happens when you add devices that need more power than a USB Keyboard? A powered USB hub should be a requirement for SITCore developers.
How Much Power?
By definition, USB provides 5V @ 500mA from the host (the PC), but this can be misleading. First of all, the voltage can vary a lot. Instead of 5V, it may be 4V or even lower. This is usually not a problem for 3.3V circuits with a voltage regulator — the regulator can accept a wide range of input voltages and still provide the necessary 3.3V to the device.
Things get more complicated when you add non-powered hubs. For digital data, a non-powered hub is great, but for power it’s a nightmare! Say a PC USB port is providing a perfect 5V with 500mA of current. Now, use this USB port as the power source for a USB hub with multiple devices. What if you’re using the same hub to power your board through a long USB cable? You may even have hubs connected to hubs. What’s the limit of each USB connection? It’s really unknown and not reliable at this point.
The Hidden Problem
If you are using a small USB device or charging a phone, you won’t have a problem. However, if you are using a device with higher power requirements, the device might be starved for power. Take the SITCore development boards for example. These boards have a lot of electronics and also backlit displays. You will probably add one or more networking interfaces (WiFi, mobile…etc).
Here is a scenario you don’t want to face: You blink an LED and all works as expected. You then add more code and all works. You then enable one more feature and things start behaving erratically. Or, maybe your device works fine today, but tomorrow it stops working. You can easily spend hours or even days looking for a non-existent bug in code or a hardware problem, when it’s actually a problem with your power supply. Fear not, the solution is simple… keep reading!
A powered hub is not only highly recommended, it should be a requirement! A powered hub does not rely on the power provided by the PC. Instead it uses a separate power source to feed the individual USB ports. This is also a good idea since, as a developer, you may be testing newly designed circuits that have unexpected power issues. Having a powered hub will protect your development machine. We even spend the extra few dollars and buy quality name brand powered hubs — it’s more than worth it to eliminate a potential problem.
So next time you are having one of those weird issues that do not make sense, start by making sure you have a reliable power source capable of providing adequate power.