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

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
kvital
Сообщения: 20

Сообщение kvital » 31 мар 2015, 20:39

Привет! Хочу заменить микросхему КР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 таймера+ таймер синхтонизации. Можна ли тут так сделать?

Аватара пользователя
iEugene0x7CA
Адепт
Сообщения: 1570
Откуда: Киев

Сообщение iEugene0x7CA » 10 апр 2015, 19:23

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

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

kvital
Сообщения: 20

Сообщение kvital » 17 апр 2015, 08:53

>Воткнуть кварц 20 МГц? ;)
Не вариант. Максимальная частота на ATmega8 16 МГц.

Аватара пользователя
BSVi
Адепт
Сообщения: 3576
Откуда: Киев

Сообщение BSVi » 17 апр 2015, 09:10

Если мне не изменяет память, для генерирования сигнала с дедтаймом можно использовать режим up-down таймеров.

kvital
Сообщения: 20

Сообщение kvital » 26 апр 2015, 12:47

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

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей