Author Topic: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)  (Read 21254 times)

0 Members and 2 Guests are viewing this topic.

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #75 on: March 18, 2019, 01:58:41 pm »
The small caps at the OPs are usually needed to prevent the regulator from oscillating. So they are not just for a smoother output, but really essential parts.  A main purpose of the simulations is to find the right values for the caps. This circuit is type is not that critical, but the cap value should still be about right.

How far one can go down depends on the OPs. The constant current load needs a negative supply to work - so some 0.6 V sound like a reasonable lower limit for the constant current load.

Any oscillating should be minimal if the load is fixed correct? I should have my cap assortment in 2 days. Next research project is going to be looking into negative supplies for the OpAmp.
 

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14898
  • Country: de
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #76 on: March 18, 2019, 05:09:14 pm »
For a correct linear regulator circuit there should be not oscillation for the steady state. For a good supply this should be true for any practical load, including the relatively difficult case of a large (up to a few 1000 µF) low ESR capacitor at the output.  One may not be able to avoid some ringing on transients for all load cases: so when the current is doing a step change, there can be a decaying oscillations, but this should be decaying reasonably fast. With an easy load like just a resistor there should be essentially no ringing  there could be still some odd wiggles when coming out of saturation, but ideally there should be no or only minimal overshoot.
 

Offline jaycee

  • Regular Contributor
  • *
  • Posts: 206
  • Country: gb
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #77 on: March 18, 2019, 05:45:26 pm »
With no error amps, it wont regulate at all

I dont understand how this circuit works, so I am trying to decompose it and test each "system" independently to learn about it. My current understanding is that I should get a constant voltage/current out of the transistor with what I have currently breadboarded up. (The 4mA current source and the TIP120 with 100 ohm to ground as a load). I understand that with varying loads and such I am going to get inconsistent results,


OK a fair question, so I'll try and explain it :) I will refer to my original circuit here.

Q3, Q4 and associated resistors form a constant current source. There's a few ways to do this, and I just happened to pick the two transistor version. Some will say the version with the transistor + LED as the voltage reference is lower noise. I dont think it matters much here. Anyway, this current source is then used to feed the Darlington output stage formed by Q1 and Q2. This allows those transistors to conduct power accordingly.

The regulation loop is set up by sinking away this current accordingly in order to maintain regulation. Lets look at the voltage control. U1 is set up as an error amplifier, and compares your set voltage with the output voltage. R18 + R8 and R19 form a potential divider so that only a small portion of the output voltage is sensed - this "scales" it down to the same range as the set voltage from the DAC. C6 and R7 act as a "speed up" compensation network to improve transient response. U4 simply acts as a buffer.

So, what happens is that U1 compares the set and output voltage, and due to opamp action it adjusts its output accordingly. The diode D1 is there so that the opamp can only "sink" current away from the output stage. This setup provides voltage regulation.

The current regulation works in a similar manner, this time opamp U3 and it's associated resistors form a differential amplifier which monitors the voltage drop across the shunt resistor. As you should know V=IR, and since we can measure V, and know R, we can work out the current. The amplifier is configured for gain because the voltage drop is very small. So what we end up with is a voltage that is proportional to the current flowing through the shunt resistor. This is then used to regulate the current flow via U2, which is set up as an error amp in the same way as U1 is. Again, diode D2 means that this error amp can only sink current.

The two diodes D1 and D2 effectively form an "OR" gate.. normally the voltage error amp is in control, and regulating the voltage at the output.. however if the current being drawn exceeds the set value, the current error amp takes over the regulation loop.

Q5 and Q6 form a constant current sink. This works exactly like the constant current source, except it sinks current instead of providing it. This works to provide the minimum load which helps keep the regulator stable.

(edit: added the schematic I am referring to for clarity)
« Last Edit: March 18, 2019, 05:49:54 pm by jaycee »
 
The following users thanked this post: KC0PPH

Online iMo

  • Super Contributor
  • ***
  • Posts: 5298
  • Country: ag
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #78 on: March 18, 2019, 06:00:42 pm »
The stability analysis with the above schematics, with 100ohm load.
40deg phase margin.
Readers discretion is advised..
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #79 on: March 20, 2019, 03:49:57 am »
With no error amps, it wont regulate at all

I dont understand how this circuit works, so I am trying to decompose it and test each "system" independently to learn about it. My current understanding is that I should get a constant voltage/current out of the transistor with what I have currently breadboarded up. (The 4mA current source and the TIP120 with 100 ohm to ground as a load). I understand that with varying loads and such I am going to get inconsistent results,


OK a fair question, so I'll try and explain it :) I will refer to my original circuit here.

Q3, Q4 and associated resistors form a constant current source. There's a few ways to do this, and I just happened to pick the two transistor version. Some will say the version with the transistor + LED as the voltage reference is lower noise. I dont think it matters much here. Anyway, this current source is then used to feed the Darlington output stage formed by Q1 and Q2. This allows those transistors to conduct power accordingly.

The regulation loop is set up by sinking away this current accordingly in order to maintain regulation. Lets look at the voltage control. U1 is set up as an error amplifier, and compares your set voltage with the output voltage. R18 + R8 and R19 form a potential divider so that only a small portion of the output voltage is sensed - this "scales" it down to the same range as the set voltage from the DAC. C6 and R7 act as a "speed up" compensation network to improve transient response. U4 simply acts as a buffer.

So, what happens is that U1 compares the set and output voltage, and due to opamp action it adjusts its output accordingly. The diode D1 is there so that the opamp can only "sink" current away from the output stage. This setup provides voltage regulation.

The current regulation works in a similar manner, this time opamp U3 and it's associated resistors form a differential amplifier which monitors the voltage drop across the shunt resistor. As you should know V=IR, and since we can measure V, and know R, we can work out the current. The amplifier is configured for gain because the voltage drop is very small. So what we end up with is a voltage that is proportional to the current flowing through the shunt resistor. This is then used to regulate the current flow via U2, which is set up as an error amp in the same way as U1 is. Again, diode D2 means that this error amp can only sink current.

The two diodes D1 and D2 effectively form an "OR" gate.. normally the voltage error amp is in control, and regulating the voltage at the output.. however if the current being drawn exceeds the set value, the current error amp takes over the regulation loop.

Q5 and Q6 form a constant current sink. This works exactly like the constant current source, except it sinks current instead of providing it. This works to provide the minimum load which helps keep the regulator stable.

(edit: added the schematic I am referring to for clarity)

Thank you for the explanation.

So if I am getting the theory right C6 begins to look like a "short" as the frequency goes up. Even though this is a DC circuit the transients are AC and thus this AC "noise" gets pushed right through C6 into the OA.

The thing I am confused about is why the feedback Resistors and Capacitors are required in a steady state system? I would think that oscillation would not happen with a fixed load, and without oscillation there would be no "AC" transients to go through the feedback loops.

I promise I am not trying to be arrogant here, I am trying to understand in depth what is going on.
 

Offline jaycee

  • Regular Contributor
  • *
  • Posts: 206
  • Country: gb
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #80 on: March 20, 2019, 04:14:04 am »
So if I am getting the theory right C6 begins to look like a "short" as the frequency goes up. Even though this is a DC circuit the transients are AC and thus this AC "noise" gets pushed right through C6 into the OA.

Correct.

The thing I am confused about is why the feedback Resistors and Capacitors are required in a steady state system? I would think that oscillation would not happen with a fixed load, and without oscillation there would be no "AC" transients to go through the feedback loops.

It's one of these cases where the real world is a drag... there isn't really any such thing as "pure DC" or a "steady state" - there is always noise and ripple.
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #81 on: March 20, 2019, 04:25:50 am »
Well I guess I can accept that lol.. Well I have the circuit all wired up excluding the current limit. I need to get re acquainted with my Analog Discovery and start to look at the waveforms. I added 2 diodes in the common to cheat a negative voltage for the OA.

Measuring from the DC Common to Output I get a Max of 9.58V and a low of 796mV
Measuring from my Diodes to Output I get a Max 8.888 of and a min of 130mV.

I am using 1N400. My guess Is i am not running enough current through them to drop the voltage enough.

All testing is being done with no additional load, just the 20mA CC load.
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #82 on: March 20, 2019, 05:09:48 am »
I am also not sure what the purpose of the .16 ohm resistor is (R15)
 

Offline jaycee

  • Regular Contributor
  • *
  • Posts: 206
  • Country: gb
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #83 on: March 20, 2019, 05:32:58 am »
Im assuming you are referring to CV_CC_PSU_2xLM358_TIP120_FASTCC_LOAD_TEST.PNG

The resistor is an emitter resistor which is acting as a local sense resistor. This is the voltage that Q5 is monitoring in order to provide the fast current limit. If you were to add extra pass transistors in parallel, this resistor would also act as a "ballast" resistor to ensure the transistors share the load equally.
 

Online iMo

  • Super Contributor
  • ***
  • Posts: 5298
  • Country: ag
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #84 on: March 20, 2019, 03:57:59 pm »
FYI- Mike_Mike has done an FastCC/SlowCC measurement with the "PSU Shorter" in his HW, it can work for PSU stability testing as well.
https://www.eevblog.com/forum/beginners/lm324-power-supply-with-variable-voltage-and-current/msg2283144/#msg2283144
« Last Edit: March 20, 2019, 04:01:13 pm by imo »
Readers discretion is advised..
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #85 on: March 24, 2019, 04:49:14 am »
Not having the best of luck with the breadboard, decided Ill go ahead and order some boards. Before I do Ill post all the info and see if anyone has any final comments. Ill be using JLCPCB and total cost is $8 including shipping for like 10 of these.

I determined i need a beefier diode in the GND return and also a heat sink on the pass element. A bit difficult to fit a 1n54xx in the board :) Since I dont have a pre-reg set up its all on that transistor.

So Ill be ordering the few items i dont have tonight and hopefully the boards tomorrow.

I am missing a few 3D models so that is not 100% accurate.


Thanks in advance.

 

Online iMo

  • Super Contributor
  • ***
  • Posts: 5298
  • Country: ag
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #86 on: March 24, 2019, 07:36:06 am »
Is the R22=0.1ohm something you inserted in with an intention to do some experiments?
Otherwise it is the capacitor's internal ESR.

Also your Vset and Iset trimmers are wired wrong, imho.

The trimmers, afaik, shall be wired such that their cold side is wired to GND, and their hot side to a STABLE REFERENCE VOLTAGE, for example +4.096V or +5V or +10V, etc.

PS: You may also use a single 78L05/06/08/09 to provide the Ref Voltage, decouple its output with a 10uF cap and do wire it to both Vset and Iset trimmers hot sides. The cold sides of the trimmers to the gnd.

You may use a spare opamp to buffer an external stable Ref Voltage, or, create the stable Ref Voltage from a zener and buffer it with an opamp -> see the PSU schematics in different threads.

Mind the relationship between the voltage on the trim's wipers and the Vout and SlowCC is given by the ratio of the resistors in the voltage divider for Vset (Vsense node) and ratio of resistors in the differential amplifier for Iset (Isense node) and the Rshunt value.. Therefore you have to adjust the values of those resistors based on max wiper voltage such you get the desired Vout and SlowCC range.

Also the opamps shall get a good decoupling close to their package (ie 10u tantalum/elyt in parallel w/ 100nF ceramic).
PS2: in harsh environments it helps to place a small resistor, ie 10ohm in the positive and negative opapm power rails - it creates, together with the 10u+100n decoupling a lowpass.
Better use a separate voltage regulator(s) to feed the opapms.
Mind in this schematics the max Vout depends on max opamp's output voltage.


I would connect the cold side of the constant load to your "-1V" voltage.

"-1V" source - that voltage will float a few hundreds mV up/dwn based on the Iout.

Mind the grounds and power tracks have to be beefy, short as possible and best in a "star" configuration.

Note: LTspice simulation neglects some obvious things which have to be provided in a real HW. LTSpice simulation is usually NOT a schematics directly applicable for a pcb design.

PS1: doublecheck your Voltage assignments in the schematics, ie. your main power voltage calls V-.. I would call it V+.

« Last Edit: March 24, 2019, 09:06:03 am by imo »
Readers discretion is advised..
 

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14898
  • Country: de
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #87 on: March 24, 2019, 10:11:26 am »
If only 2 OPs of the LM324 are needed, there is the LM358 as an equivalent dual OP.

Unused OPs should be wired differently, e.g. as a follower (connect out to the inverting in).  With the LM324 just leaving the inputs open may work, but is not good with others.

The 3rd OP of the LM324 could be used for an LED to indicate CC or CV mode - it may help to have 2 LEDs as one can better see short pulses of light than short dark periods.

I don't think an extra voltage regulation for the OPs is needed here, unless the voltage may come close to the maximum ratings.

For the voltage reference the 78L05 or similar are an option. Other cheap ones would be TL431 and if low noise is wanted an LM329.
 

Online iMo

  • Super Contributor
  • ***
  • Posts: 5298
  • Country: ag
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #88 on: March 24, 2019, 10:45:35 am »
Added hints from Kleinstein.
There are other ref diodes/ zeners you may use too.
You may wire any suitable zener in the feedback of a free opapm and multiply its voltage by ratio of the feedback resistors, as you may find in other PSU schematics recently posted.

PS: I would also add a large value resistors (ie 560k) from the pots wipers to GND (in case the wiper loses its contact the voltage/current jumps somewhere, the resistor should maintain a "zero").
Also add 100nF ceramics from the wipers to GND.

And you would certainly need to play with the setting's ranges - therefore I would add the Ris and Rvs resistors there - see below.

PS1: mind the pass transistor has to be an npn power darlington.
« Last Edit: March 24, 2019, 12:18:20 pm by imo »
Readers discretion is advised..
 

Offline jaycee

  • Regular Contributor
  • *
  • Posts: 206
  • Country: gb
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #89 on: March 24, 2019, 01:14:32 pm »
My comments on the PCB layout are:

Dont use tiny tracks if you dont have to, you can do this with 0.8128 I would guess
Use bigger thermal reliefs on the pads to ground
Stitch both top and bottom groundplanes together with plenty of via stitching. Ideally, keep one side as an unbroken ground plane.

Oh, and what others have said about the reference voltages too. A TL431 makes a good reference and you're bound to have at least one in a dead switchmode supply :)
 

Online iMo

  • Super Contributor
  • ***
  • Posts: 5298
  • Country: ag
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #90 on: March 24, 2019, 06:59:07 pm »
The current limit LED indication - the output of the CC opamp - the I_Sense - will drop from aprox +V to -1V during the limit.
You can wire an LED from opamp's I_sense output against the +V through a resistor, say 15k, and it will lit during the CC limit.
« Last Edit: March 24, 2019, 07:06:04 pm by imo »
Readers discretion is advised..
 

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14898
  • Country: de
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #91 on: March 24, 2019, 07:36:31 pm »
For current limit the OP for the current loop will no necessary go down all the way. With a resistive or similar load that is just a little high the voltage would only drop a little. The usual way to check is to compare the outputs of OP1A and OP1B, e.g. with another OP/comparator.
Just an LED to V+ may not light and could be rather dim if the voltage is still rather high.
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #92 on: March 25, 2019, 04:10:41 am »
Once again thanks for all the feedback.


I incorporated everything that was mentioned about the schematic.Sorry about the last version of the schematic. For some reason a lot of things did not render correctly like V+ showing as V-.

A few notes.
Q1 (Pass Element) is listed as a TIP41C but it will be a TIP120. I did not have a model for the TIP120 in a vertical position and did not want to make one.

For the Board layout - I will try a bit harder in my layout to keep traces short. I will also try and keep one side of the board as solid GND. I did do a fill on top/bottom with GND. I need to figure out how to add vias without traces but will stich them together.



I put in a 431 Reference as suggested and I have a few of those laying around. I added a 10uF bypass cap per the datasheet recommendation. Well it did not give a value so I picked 10uF. I will eventually be using 0-4.096 as my analog values coming from my microproc so for now I will scale everything to 0-5V. I set up an OA with Gain of 2 to accomplish this.

I think i most likely screwed everything up but here it goes:

The current sense resistor has changed to a single 1 ohm resistor. I still have the 2 standard 1/4W ones in the schematic, but I will just solder in a single 1Ohm 50W resistor.

From that decision I then calculated resistor values for the inverting input of IC1B (Current Sense Amp). I wanted to turn 0-15V into 0-5V and so I used a 51K and 25K resistor network.

For the inverting input I will have 14V with 1A Load. I believe someone said you want to keep your resistor values the same so I did. This means that in order to keep the OA happy I need to supply 0-1V on my ISET to get 0-1A. To accomplish this my Pot has changed from a 50K to 5K and there is a series resistor of 20K which should give me 0-1V.

For the voltage sense I kept the same resistor values to scale the 15V to 5V. Since my reference is 5V I am going to short out that resistor on the pot  (Listed as 0Ohm for now) The 50K pot should then give me 0-5V.

P.S. I know you guys are only trying to be helpful but on my calculations please dont correct them "when" you determine they are wrong. I would like to try and figure these out myself so when I go to the uC version Ill understand how to modify the circuit.
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #93 on: March 25, 2019, 04:11:36 am »
Ignore the OA Power pins....  |O
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #94 on: March 25, 2019, 04:51:10 am »
BTW Ill be ordering 10 of these boards so everyone who is helping out is more than welcome to one. Just give me a shipping address once I place the order and ill ship em out.
 

Offline not1xor1

  • Frequent Contributor
  • **
  • Posts: 716
  • Country: it
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #95 on: March 25, 2019, 07:43:07 am »
For current limit the OP for the current loop will no necessary go down all the way. With a resistive or similar load that is just a little high the voltage would only drop a little. The usual way to check is to compare the outputs of OP1A and OP1B, e.g. with another OP/comparator.
Just an LED to V+ may not light and could be rather dim if the voltage is still rather high.

To get CC/CV mode display by LED one may take advantage of the fact that one of the two opamps is always saturated.
So just connect the output of each opamp to the anode of a diode (1N4148) and a LED in series, then connect the cathodes of the LEDs to each other and via a resistor to the ground.
The led connected to the voltage control opamp would be ON when in CC mode and vice versa for the other opamp.
 

Online iMo

  • Super Contributor
  • ***
  • Posts: 5298
  • Country: ag
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #96 on: March 25, 2019, 08:16:21 am »
As this is not related to your values calculation:

The IC1C opamp for the LED blinking - I would not wire inputs of 2 opamps in parallel - I would put 10k resistors in series with IC1C's inv and noninv inputs. That also gives more flexibility with different wiring then.

The shunt resistor of 1Watt would be ok (1Vx1A). I still would recommend to make two 1Watt resistor positions in parallel on the pcb available.

The T2 - the power loss could be >0.3W with 20mA load, so either you change it to a more beefy type (ie BD139), or, decrease the constant current load to 10mA or less.

« Last Edit: March 25, 2019, 08:31:22 am by imo »
Readers discretion is advised..
 

Offline jaycee

  • Regular Contributor
  • *
  • Posts: 206
  • Country: gb
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #97 on: March 25, 2019, 11:24:42 am »
You want the shunt resistor to heat as little as possible, as that will affect its value, so I recommend sticking with 2x1 ohm resistors.
EAGLE's transistor libraries are a mess - I ended up making my own!

If you want 5V from the TL431, there is no need for an external opamp.  The adjust pin is exactly what that is for. Use e.g two 1K resistors as shown to get 5V. You could tweak one a bit and get 4.096 if you wanted.

edit: AS others have said about the current limit LED, you can simply connect the cathode of the LED to I_SENSE and use a suitable limiting resistor. When the current limit is not in operation, the output of the opamp will be close to the +V rail, and the LED wont light. When it is operating, it will be somewhere near the -V rail and thus the led will light.
« Last Edit: March 25, 2019, 11:53:56 am by jaycee »
 

Offline KC0PPHTopic starter

  • Supporter
  • ****
  • Posts: 117
  • Country: us
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #98 on: March 25, 2019, 02:27:56 pm »
As this is not related to your values calculation:

The IC1C opamp for the LED blinking - I would not wire inputs of 2 opamps in parallel - I would put 10k resistors in series with IC1C's inv and noninv inputs. That also gives more flexibility with different wiring then.

I will add 10K resistors

The shunt resistor of 1Watt would be ok (1Vx1A). I still would recommend to make two 1Watt resistor positions in parallel on the pcb available.
The Resistors on the board are really just for the holes. I plan on putting 1 50W 1 Ohm resistor on the bottom of the board.

The T2 - the power loss could be >0.3W with 20mA load, so either you change it to a more beefy type (ie BD139), or, decrease the constant current load to 10mA or less.

I can change that out to something in a TO-220 Package possibly. On the breadboard it did not get too warm, although I am only playing with around 5V for my regulator output currently.




If you want 5V from the TL431, there is no need for an external opamp.  The adjust pin is exactly what that is for. Use e.g two 1K resistors as shown to get 5V. You could tweak one a bit and get 4.096 if you wanted.

I most likely need to buffer the output of the Regulator no matter what, not sure if it matters where the gain is placed. In final design I will be using a high end reference which is the correct output so gain will not be required in the OA.

 

Offline jaycee

  • Regular Contributor
  • *
  • Posts: 206
  • Country: gb
Re: Bench CC/CV PSU Based on Daves uSupply (Not Anymore)
« Reply #99 on: March 25, 2019, 03:08:53 pm »
I most likely need to buffer the output of the Regulator no matter what, not sure if it matters where the gain is placed. In final design I will be using a high end reference which is the correct output so gain will not be required in the OA.

Nope, the TL431 will be fine driving the setting pots without buffering. My 18V 1A bench supply uses that arrangement. The only place I had to add a buffer was on the output of the pots, and that was only because I needed to adjust the range being sent to the ADC for display.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf