Страница 1 из 1

Генерация импульсов для блока питания на AVR

Добавлено: 31 мар 2015, 20:39
kvital
Привет! Хочу заменить микросхему КР1211 (генератор двух импульсов для пуш-пулл схеми) на микроконтроллер AVR(mega8). По сути код уже готов. Вот он кстати:

Код: Выделить всё


#include <mega8.h>
const unsigned char SineWave1[16] = {1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0};
const unsigned char SineWave2[16] ={0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0};
unsigned char Index=0;

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
Index = (Index+1)&0x0F;
PORTB.1=SineWave1[Index];
PORTB.0=SineWave2[Index];
//  PORTB.1=~ PORTB.1; 
TCNT1=0;
}

void main(void)
{
PORTB=0x00;
DDRB=0x03;

TCCR1B=0x01;
OCR1AH=0x00;
OCR1AL=0x08;
TIMSK=0x10;

#asm("sei")
while (1);
}



Фьюзы выставил от внешнего кварца. Но вот незадача. Максимальная частота модуляции при кварце 10МГц- 18кГц. Что маловато для импульсного транформатора. Есть ли возможность повысить частоту модуляции на етом микроконтроллере? На STMe я просто использовал 2 таймера+ таймер синхтонизации. Можна ли тут так сделать?

Re: Генерация импульсов для блока питания на AVR

Добавлено: 10 апр 2015, 19:23
iEugene0x7CA
kvital писал(а):Максимальная частота модуляции при кварце 10МГц- 18кГц. Что маловато для импульсного транформатора. Есть ли возможность повысить частоту модуляции на етом микроконтроллере?

Воткнуть кварц 20 МГц? ;)

Re: Генерация импульсов для блока питания на AVR

Добавлено: 17 апр 2015, 08:53
kvital
>Воткнуть кварц 20 МГц? ;)
Не вариант. Максимальная частота на ATmega8 16 МГц.

Re: Генерация импульсов для блока питания на AVR

Добавлено: 17 апр 2015, 09:10
BSVi
Если мне не изменяет память, для генерирования сигнала с дедтаймом можно использовать режим up-down таймеров.

Re: Генерация импульсов для блока питания на AVR

Добавлено: 26 апр 2015, 12:47
kvital
В точку! Спасибо! Если кому то еще будет нужно, то в даташыте это можна найти как Phase Correct PWM Mode. Там уровни выставляются чуть больше половины і чуть меньше половины (+ инвертация). На выходе прекрасный двухтактный сигнал с мертвым временем.