short version: current sources connect things to Vcc, current sinks connect them to ground.
longer version:
The following is a practical explanation of current-sources/sinks as used in microcontrollers & TTL logic. For a more theoretical description, see the Wikipedia page on current source.
Some devices are very good at creating a connection to ground. (or whatever the lowest voltage is in the system, e.g. 0V) Other devices are very good at creating a connection to Vcc. (or whatever is the highest voltage in the system, e.g. +5V)
Those devices that are good connecting to ground are called current sinks; those good at connecting to Vcc are called current sources. Until recently (the last decade or so), it was unusual for integrated circuits to be good at being both. Most were good at being current sinks but were terrible at being current sources. So at lot of circuits were designed so all the chip had to do was connect to ground to make the circuit do its thing. Many chips still have an asymmetric current drive ability and function better switching to ground than switching to Vcc.
To me a good example of current source and current since are the standard "switch" configuration of a PNP and NPN transistor. A PNP is a good current source: you almost always connect its emitter to Vcc, and it switches it on/off. A NPN is a good current sink: its emitter is almost always connected to ground and it switches the ground connection on/off.
Why you choose one over the other often depends on the capabilities of the parts available to you. For instance, an RGB LED is often a "common-anode" type where the anode (positive lead) is connected on all three LED elements, so to turn on an element you need to connect its lead to ground. You can use three pins on a microcontroller to do this (or three NPN transistors) and they would be acting as current sinks.
I would also describe this as elegant, but would like to add the the problem, if you will forgive my intrusion.
I know there are very pricey software packages to work through situations like this, but at the company I work at we cannot afford the cost unless we are sure it does what we need.
Test Driven Development(TDD) is one of the better systems I have heard of for development, and I enjoy it, but the problems that take up my time are normally caused by complex interrupt and hardware events that many would call glitches. It seems like a minor thing to have a problem every 2 hours when the stars align, but if your phone just froze once a week,you would curse the engineers name. In our case, we have to trek into a feed lot when things really break, which, as you can imagine, I like to avoid.
I have seen very intelligent solutions for checking functionality of subsystems, which, if implemented properly, would probably save me 3 hours out of a 50 hour work week, but if there was an intelligent way to find glitch situations it would save me weeks of work looking for the "bug" that happens in the field occasionally under heavy load.
This post probably does not help a large amount, but I find bringing everything into the light makes everything easier to resolve. If there was a TDD method for finding glitch situations, I could get 10s of thousands allocated to pay for it.
-Max
Best Answer
The '238 have only one of eight outputs logic high, sourcing current, the rest of the pins will be logic low, sinking current. The '138 is precisely the opposite, one of eight pins can be low, sinking current, the rest will be high, sourcing current.
To "invert" the function of the '138, you could use eight PNP transistors with the bases each tied to an output of the '138 with a resistor, the emitters all connected to +5 and the collectors each connected to one of your servo connectors. Or use a bunch of inverters (74HCT04 or octal 74HCT240) to change the sense of the outputs.
Your choice of 1 of 8 decoders will limit what you can do with your servos, as your circuit can only activate one output at a time. Max speed of any one servo will be limited by the number of servos that you want active. If you wanted all 64 channels on, for example, they would all be running at at average of 1/64th speed.
The PCF8575C is very handy for expanding digital IO using serial I2C protocol from devices like Arduino. You could run 64 servos using 2 pins on the Arduino and 4 PCF8575Cs. This would give you more flexibility in setting your PWM duty cycles.