??? 11/24/04 03:31 Read: times |
#81796 - Thyristor problem Responding to: ???'s previous message |
How have you determined the problem is with the code as opposed to the hardware? Flickering I've found is caused by not turning your opto off before zero crossing - this is normally around 500uS. If you don't do this, there is enough energy to keep the thyristor fired into the next cycle - but only sometimes! Thus flickering as you get full half cycles sometimes and other times your expected chopped half cycle. This is all dependant on your firing circuit. The other issue is synchronising the timer with the zero crossing - because your time is 100uS, your variation on zero crossing is +/- 100uS and this will vary as the timer comes in sync, then drifts out of sync - thus causing flickering sometimes. I normally phase and frequency lock my timer to the zero crossing and use the capture feature of timer2. I filter the capture values to see that the input frequency is within bounds. I calc the time difference between the expected zero crossing and the actual zero crossing and add a correction to my expected zero crossing. I also filter the period of the zero crossing and use this value for my internal timer period - thus my code tracks the frequency and phase locks to the zero crossing input. I add offsets to correct for the phase of the zero crossing input. I use the timer compare to do the cycle timing and firing. This is a bit of work so it is done in assembler! Mind you I build light dimmers and my firing resolution is < 8uS. Hopefully this might give you something to look at. |