Is there any real difference between high- and low-side switching?
- Switching is for on/off control of an object (My case RPi)
- Base/Gate can be driven to Vcc and GND
The only real differences are the ground level and maximum current available:
Of course there is a difference, else there wouldn't be two different methods with different names.
If the load is floating, like a motor or solenoid for example, then high or low side switching makes no difference to the load. That is because, by definition of floating, the node only "sees" the differential voltage accross it and doesn't react to the common mode voltage.
Even with a floating load, the differences to the driving circuit for high versus low side switching can be significant. By convention, we usually consider ground the negative side of the power supply driving the control circuitry, with power then being positive. Since ground is the negative side, and other signals we may need to interact with that connect to the rest of the world will be referenced to this ground, the control circuitry is then also ground-referenced. For example, even if you're driving a 24 V solenoid, the microcontroller producing the PWM pulses will be powered by a 3.3 V rail and ground.
Since the control circuitry is sitting on the low side of the power (the ground), driving low side switches is usually easier than driving high side switches. Therefore, with a floating load that doesn't care whether we switch the low or high side, we usually switch the low side.
Another reason for using a low side switch is when one side of the load is already connected to the positive supply beyond our control. The only choice we have is to leave the low side of the load floating to turn off the load, or connect it to ground to turn it on. It can be convenient for some loads to be pre-connected to power on one side to simplify overall system wiring.
In some cases the load does care. If the load has other ground-referenced signals it has to connect to, then you usually need to keep its ground node connected to ground. In that case, you have to switch the positive power to the load whether you like it or not. Again, this is usually more complicated than driving a low side switch, but not overly so that it requires great lengths to avoid.
When switching the low side with low side control circuitry, it's pretty obvious you want to use a NPN transistor or N channel FET. However, with a high side switch you have to consider more options. N channel FETs generally have better characteristics as switches, but using one presents two problems: The gate has to slew over the switching range plus the gate on/off range, and it needs a voltage above the power rail when on. There are driver chips that can take of these things most of the time, but there are still issues.
A P channel FET is easier to switch as the gate voltage only has to range from the power voltage to around 10 V less for most FETs. PNP transistors can be even easier since you only have to draw some current out of the base to turn them on. However, turning them off quickly can be a challenge.
So, as usual, there is no universal answer, and the tradeoffs have to be considered separately for each application.
For an isolated circuit, no there is no great difference between high and low-side switching. For higher load currents, low side semiconductor switches (for example NPN transistors and N-channel MOSFETs) are often less lossy than their high-side equivalents, and so are preferred.
However, if the circuit is connected to external devices with their own power connections, this becomes blurred. If these external devices provide a connection to the same ground reference as the power supply to the circuit and you switch this in and out then the external devices will provide an alternate route to ground, your switching will be ineffective and you may end up damaging something not rated for the appropriate current along the way.
Similarly, if the external devices provide a V+ supply which is referenced to the same ground as the supply that you are switching, you can end up back-powering the positive voltage rail via the externally powered devices, again with undesirable results.
There are numerous reasons to choose one type of switching over the other.
If your circuit / load can tolerate the ground currents created when switching the load.. generally low side switching is easier and cheaper.
If your circuit can not tolerate this (too much disturbance in the ground plane of the more sensitive / lower voltage processor/logic) .. it is better to switch the load using high side methods, this allows the return current of the load to be managed separately (often higher power loads require a higher voltage power rail.. still sharing a common "ground" potential with separate return paths).
The other common reason for high side switching (mentioned by Olin) .. .the most readily available return current path for the load is the negative power rail. Example: automotive chassis used as a "ground" (DC return path) for a relay/ etc.. (this example has numerous additional advantages and risks).