Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

AC phase cut dimmer controller IC

Status
Not open for further replies.

bmandl

Full Member level 4
Full Member level 4
Joined
Feb 26, 2010
Messages
210
Helped
3
Reputation
6
Reaction score
3
Trophy points
1,298
Location
Slovenia
Activity points
3,006
Hello.
I am planning to build an 12 channel DMX dimmer. Right now I am figuring out the power part of the project. After some research, I decided that I will try to make trailing edge AC phase cut dimmer with an IGBTs. While googling for solutions, I came across this dedicated IC: FL5150. It seems, that it would be a quite convenient solution, with everything integrated in IC (avoiding zero-cross detection circuit, no MCU programming for off-delay timing -> just outputing an analog signal to this IC).
The problem is, I cannot find any distributors in Europe for this IC. Farnell has just 60Hz version of it, which I can not use, since we have 50Hz mains voltage. Does anyone know of any alternative, or where could I get this IC from Europe (we have quite expensive import taxes from USA).
Thank you for any help.
 

You will be able to use a 60 Hz unit in a 50 Hz mains.
Since the 50Hz period is 20% longer than the 60 Hz period, it will mean that the internal timer's maximum count will only time out earlier than the next zero crossing.
In other words, in a trailing edge controller, the maximum conduction period will be 5/6*180 = 150 electrical degrees.

Since the volt-time area from 150 to 180 degrees is quite small, the total RMS voltage lost during the last degrees will be perhaps a couple of percent from the full RMS value.... You won't notice the slight dimming.

Order a single one, and make some experiments.
 
  • Like
Reactions: bmandl

    bmandl

    Points: 2
    Helpful Answer Positive Rating
Hi,

Or program a PLD.
All 8 channels can be done within one IC.

Klaus
 
  • Like
Reactions: bmandl

    bmandl

    Points: 2
    Helpful Answer Positive Rating
You will be able to use a 60 Hz unit in a 50 Hz mains.
Since the 50Hz period is 20% longer than the 60 Hz period, it will mean that the internal timer's maximum count will only time out earlier than the next zero crossing.
In other words, in a trailing edge controller, the maximum conduction period will be 5/6*180 = 150 electrical degrees.

Since the volt-time area from 150 to 180 degrees is quite small, the total RMS voltage lost during the last degrees will be perhaps a couple of percent from the full RMS value.... You won't notice the slight dimming.

Order a single one, and make some experiments.

Thank you, I will try that.

KlausST said:
Hi,

Or program a PLD.
All 8 channels can be done within one IC.
Hm.. I can't exactly imagine in what way I would accede to this approach. I do know digital logic and I can do a circuit synthesis, but I can't imagine for this case.
 

Hi,

PLD:
what does the analog circuit do?
* Waiting for zero cross
* starting a sawtooth
* compare the sawtoot with the setpoint
* generate a firing signal

***
now in PLD:
* wating for zero cross
* start a counter
* compare counter value with digital setpoint
* generate firing signal

for 8 channels you need 8 setpoint values and 8 comparators.

Klaus
 
  • Like
Reactions: bmandl

    bmandl

    Points: 2
    Helpful Answer Positive Rating
Well, I think I will do it with MCU, it's the easyest way. Besides, I will add an LCD and some other functionalities, so using additional PLD would be a waiste of space and money.
 

@KlausST, after some research and thinking about my project, I decided to actually use CPLD. I will implement parallel communication with microcontroller, which will send 8 bit of data to CPLD (DMX value for one channel) - I will split this data in two with one bit to select high or low 4 bits. I will add additional 4 bits to select channel (1-12). Then I will write program for CPLD in Verilog, which will calculate firing time for each channel and open a IGBT on zerro crossing and close it once this time is expired. I will need 12 internal timers in CPLD. Am I going in the right direction?
 

Well possible, but a microcontroller can make all in a single package.
 

Hi,

* ONE counter.
* for each channel one register
* for each channel one comparator --> output to IGBT

for 12 channels: (8 bits phase resolution)
* you need a counter frequency of (less than) mains_frequency x 2 x 256. (I´d go to 200 only.. to make it fail safe)
* clear couter on zerocross
* increment counter with every clock
* if counter_value = 255: this usually should never happen --> don´t increment any more, switch all IGBTs OFF (all OFF on fail)
* each channel: compare the delay_register_Chx with the counter. If counter_value > delay_register_Chx then fire IGBT

For glitch-free outputs I´d run each through a DFF.

All in all calculate with at least 150 MCs.

Klaus
 
  • Like
Reactions: bmandl

    bmandl

    Points: 2
    Helpful Answer Positive Rating
Well possible, but a microcontroller can make all in a single package.
It could be done with microcontroller, but it would be very difficult to measure time for each channel separately. Microcontroller would need 12 timers. Of course, If you'd want to trigger every half period.
 

Recent microcontrollers like STM32 have sufficient PWM/output compare channels to generate the 12 trigger signals in hardware. But the required resolution for 100 Hz phase control isn't actually demanding, 5 or 10 µs can be well achieved by a single interrupt timer, processing a precalculated table of switch events. Means a small 8 or 16-bit µC with fairly fast clock can do the job.
 

Hi,

many years ago I did a 8 Ch PWM with one single timer.
The ISR was called 256 x PWMFrequency
Within the ISR (ASM) I just compared the 8 values and updated the outputs.

***

There are other approaches..
One is:
...to raise an ISR only when a channel needs to be fired. (max. 12 ISR calls for 12 channels within one half wave)
* calculate the compare values according delay for each channel in the main loop -> store in an array (12 items deep)
* calculate the channel output values for each compare_match. --> store in an array (12 items deep)

In timer ISR:
* update the new compare value (from array)
* update the port (from array)
* increment array pointer
RETI

In zeroCross ISR:
* timer =0
* array pointer = 0
* update compare value from array
RETI

--> Both ISRs are very short in time.
but the calculations for new phase angles is a bit complicated. In main loop...Only when you need to adjust phase angle.
Else it has plenty of processing power available for other jobs.

***

There are many ways.
If you are familiar with PLDs, then (my opinion) the PLD solution is the most "comfortable" solution.

Klaus
 

I will not drive IGBTs with PWM. That's the first thing we misunderstood each other. The second thing is, I want to drive 12 channels simultaneously, which is (in my opinion) impossible with a MCU. So, I will go for CPLD. And no, I am not familiar with CPLDs. This will be the first time, I will use one in my project. I was working with FPGAs a little in school, but that is negligible. I am up to the challenge anyways.
 

Hi,

I'm confused..
In post#1 you wrote:
I decided that I will try to make trailing edge AC phase cut dimmer with an IGBTs.

FvM and I explained, that it is possible with a microcontroller. Posts #8, #9, #11, #12. Why do you think it is impossible?
But for sure you are free to choose any other solution.

Klaus
 

I will not drive IGBTs with PWM. That's the first thing we misunderstood each other. The second thing is, I want to drive 12 channels simultaneously, which is (in my opinion) impossible with a MCU.
I believe I understood your requirements well, but you did apparently not read the suggestions. Saying you can use STM32 pwm/output compare channels doesn't mean you should generate PWM. May be programming modern 32 bit processors for phase angle control is over your head.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top