Current Limiting Diode (CLD)

Go To Last Post
14 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm having trouble finding a current limiting device that will run sufficient current. I have found many current limiting diodes that will run current in the mA range, but nothing in the 1, 2 or 3 A range. Maybe I just need to run lots of CLD's in parallel?

I am in the beginning stages of trying to put together a battery charger for a 36 V LiFePO4 battery pack.

As I understand it, the charger would need to run at a current-limited 3 A until the battery reaches a specific voltage and then the battery goes on a trickle charge.

I am basically wanting to take 110 VAC off the mains, run that through a bridge rectifier and then use an Atmega168 to drop the voltage down to the desired charging voltage. A current limiting device would be in-line after the microcontroller.

Any help would be great :)

Brian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

An LM317 can be used as a constant current source.

Leon

Leon Heller G1HSM

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm sorry, I should have mentioned that the max charge voltage is 42 V for the pack. This device only works up to 36 V. This may be a another good place to start looking though. Thanks for the link!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Gosh, that LM317 is really popular though isn't it... I wonder if I could get away with putting a couple of them in series to drop the voltage across them... hmmm...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You can build switch mode converters that current limit. Far better efficiency.

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I confess I'd never heard of current limiting diodes, but Google turned up this current booster:
http://www.centralsemi.com/PDFs/products/Boosting_the_CLD.pdf

Even so the excess power is inefficiently dissipated in a pass transistor. A buck converter is the way to go; rectify the mains and use the MCU to pulse-width-modulate an FET pass transistor to regulate the current as measured across a 10-100 milliohm shunt, while also clamping the voltage to a safe maximum. All the components can be salvaged from a laptop power brick. I use an ATTiny85.

There is no trickle charge for LiFePO4, the charger is always in current-limited "bulk" mode but should be turned off when the voltage on any cell exceeds ~3.65 volts. A battery management system (BMS) can shunt charging current around fully charged cells so the others can catch up or "balance".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

36V at 3A = 108W

This project certainly is not simple, the fact that you are suggesting using current limiting diodes (and from what I can gather a non-isolated approach) for this application suggests you should do some more research into this project.

Jim's suggestion is definitely the path you should do some reading on.

Using a 317 isn't really very viable. Low voltage range, high dropout voltage, high power dissipation.

Good luck with the research.

xrotaryguy - have you designed any battery chargers in the past? If so what?

oddbudman

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

dak664 wrote:
I confess I'd never heard of current limiting diodes, but Google turned up this current booster:
http://www.centralsemi.com/PDFs/products/Boosting_the_CLD.pdf

Even so the excess power is inefficiently dissipated in a pass transistor. A buck converter is the way to go; rectify the mains and use the MCU to pulse-width-modulate an FET pass transistor to regulate the current as measured across a 10-100 milliohm shunt, while also clamping the voltage to a safe maximum. All the components can be salvaged from a laptop power brick. I use an ATTiny85.

There is no trickle charge for LiFePO4, the charger is always in current-limited "bulk" mode but should be turned off when the voltage on any cell exceeds ~3.65 volts. A battery management system (BMS) can shunt charging current around fully charged cells so the others can catch up or "balance".

I had just about come to the same conclusion for building the current regulated circuit. I'm glad someone is on the same page as me. I'm not quite as slick as some folks at this stuff just yet.

Thank you for mentioning that the battery should not be trickle charged. I will look into that some more too. I am not sure how the bms works on these battery packs (yes, I am relying on a supplied bms) I assume that it has the ability to shunt current around fully-charged cells. It looks like it must work that way just by eyeballing it.

It's hard to tell though because it's from China and, as I'm sure many of you are aware, Chinese manufacturers often scratch all the part numbers off of their components. I guess they don't enforce patent laws very well over there. Who would have guessed :P

Thanks for all the comments guys.

Ok, off to study how to build a shunt resistor circuit...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

odbudman,

I have not built much. I made an led flash on and off one time ;)

I have participated in building a couple of VFDs. Both of which are at the point where we want to make sure the timing is correct so that we don't smoke any IGBTs.

When you talk about isolation, you're talking about protecting the user from shock? Like using an opto-isolator? If so, I'm not quite at that point in the design process. If you wouldn't mind elaborating though...

Yes, you're right. I don't have much experience. However, this is easier than building a VFD, so I think I should mess with this before I get back to working on that variable freq drive.

Another reason that I want to work on this project right now is that a business partner and I are working on an electric bicycle company. We are getting 36 V LiFePO4 batteries and chargers from a manufacturer in China (and at a sweet price I might add) The problem though is that the dang chargers keep failing. Out of I think 4 out of the 5 original chargers we bought are currently inoperative. There are other reasons why I don't want to use another off-the-shelf charger, but I won't get into those right now.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Which company are you using for the cells / charger?

I know a few people in the battery business, I might be able to put you onto a better charger.

oddbudman

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

oddbudman wrote:
36V at 3A = 108W

This project certainly is not simple, the fact that you are suggesting using current limiting diodes (and from what I can gather a non-isolated approach) for this application suggests you should do some more research into this project.

Using a 317 isn't really very viable. Low voltage range, high dropout voltage, high power dissipation.


The TI TL783 is a LM317 like devices that is good to 125 volts. Still will not get the kind of watage
you need.

http://focus.ti.com/docs/prod/folders/print/tl783.html

In reality what you are building is a bomb. Go buy a real charger before you hurt someone, or yourself.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm having a little trouble with the code for some reason. I'm using AVR Studio4. Here's what I've got:

//-----------------------------------------------------------------------------
//  ATmega168
//  Internal 8 MHz RC Osc.
//  (1/8M = 125 ns)
//-----------------------------------------------------------------------------

#include 


//-----------------------------------------------------------------------------
//  Main
//-----------------------------------------------------------------------------
int main()
{
    DDRD |= _BV(PD6);       // Set PD6(OC0A) Output
    TCCR0A = 0b10000011;    // Compare Match Low
                            // 8 bit High Speed PWM
							// Timer/Counter Control Register
    TCCR0B = 0b00000001;    // clkIO/8 125nsX1024=128us
    OCR0A = 250;            // Set Output Compare Register

// Set ADC presc- 125KHz sample rate @ 16MHz
ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

ADMUX =(1<<REFS1)|(1<<REFS0)|3; //set adc - channel 3
ADMUX |=(1<<ADLAR); //left adjust ADC-8 bit reading

//Auto Triggering of the ADC is enabled.
ADCSRA |= (1 << ADATE);

ADCSRA |= (1 << ADEN); //Bit 7 ADEN: ADC Enable
ADCSRA |= (1 << ADSC); // Start A2D Conversions 


    for (;;) 
	{
        OCR0A=ADCH;

    }

    return 0;
}

The error message I get is:
../168charger.c:42: fatal error: opening dependency file dep/168charger.o.d: No such file or directory

It's associated with the last line in the code, return 0; Is "return" included in another header file that I've neglected to use?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
It's associated with the last line in the code, return 0; Is "return" included in another header file that I've neglected to use?

That line is in main(). main() never returns, let alone returns a value, because it has no place to return to. That appears to be confusing the compiler.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That makes sense, and I had just removed that command before reading this post. However, the same error crops up on the last line of the program again. I think that the compiler just happens to be looking for dep/168charger.o.d at that point in the code. Maybe I need to include that file in the same directory as the project. I think that I would actually need to create that file though...