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

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
Post Reply
kvital
Posts: 20
Joined: 02 Feb 2015, 17:48

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

Post by kvital »

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

Code: Select all


#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 таймера+ таймер синхтонизации. Можна ли тут так сделать?
User avatar
iEugene0x7CA
Адепт
Posts: 1571
Joined: 20 May 2012, 02:38
Location: Киев

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

Post by iEugene0x7CA »

kvital wrote:Максимальная частота модуляции при кварце 10МГц- 18кГц. Что маловато для импульсного транформатора. Есть ли возможность повысить частоту модуляции на етом микроконтроллере?
Воткнуть кварц 20 МГц? ;)
kvital
Posts: 20
Joined: 02 Feb 2015, 17:48

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

Post by kvital »

>Воткнуть кварц 20 МГц? ;)
Не вариант. Максимальная частота на ATmega8 16 МГц.
User avatar
BSVi
Адепт
Posts: 3577
Joined: 15 Mar 2011, 12:32
Location: Киев

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

Post by BSVi »

Если мне не изменяет память, для генерирования сигнала с дедтаймом можно использовать режим up-down таймеров.
kvital
Posts: 20
Joined: 02 Feb 2015, 17:48

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

Post by kvital »

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