Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

AtTiny2313 ШИМ на два плеча

Непрочитано 08.04.2010, 09:59  
Classic001
Временная регистрация
 
Регистрация: 13.10.2009
Сообщений: 81
Сказал спасибо: 2
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Classic001 на пути к лучшему
По умолчанию AtTiny2313 ШИМ на два плеча

Доброго Вам времени суток уважаемые !

Есть надобность сделать ПН для питания ЛДС с регулированием яркости по 1-wire. Питание - 12 вольт. Не хотелось бы питать лампу постоянным напряжением. Поэтому решено было использовать в трансформаторе ПНа два плеча. Которые, как вы понимаете, не должны одновременно открываться. Покопавшись в даташите не совсем понял - не ужто запуск в режиме Phase Correct PWM не способен создать такой режим работы ? Или я не доглядел ? Приходит на ум схема с использованием триггера и пары логических элементов. Но добавлять к такой простой задаче еще пару корпусов - не совсем "прямое" решение. Может кто решал подобную задачу (я про два плеча на ШИМ)? Также не хотелось бы писать программный ШИМ, так как частота играет большую роль при намотке трансформатора, а его хотелось бы сделать поменьше.
Реклама:
Classic001 вне форума  
Непрочитано 08.04.2010, 10:09  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Я помню делал два шима. У одного диапазон скажем от 0..126,у другого 129..255
Deadtime = 129-126=3
Gnider вне форума  
Непрочитано 08.04.2010, 10:16  
Classic001
Временная регистрация
 
Регистрация: 13.10.2009
Сообщений: 81
Сказал спасибо: 2
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Classic001 на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Устраивает. А не подскажите - как делали ?
Classic001 вне форума  
Непрочитано 08.04.2010, 10:26  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Я же только что сказал как.
Gnider вне форума  
Непрочитано 08.04.2010, 13:14  
Classic001
Временная регистрация
 
Регистрация: 13.10.2009
Сообщений: 81
Сказал спасибо: 2
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Classic001 на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Тоесть Вы предлагаете использовать оба имеющихся таймера ? Не, так не пойдёт. Один из таймеров будет использован для реализации 1-wire на прерываниях. Еще варианты есть ? Можно на внешних элементах. Может это возможно реализовать на одном корпусе ?
Classic001 вне форума  
Непрочитано 08.04.2010, 13:28  
OneTech
Вид на жительство
 
Регистрация: 09.10.2009
Сообщений: 353
Сказал спасибо: 20
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
OneTech на пути к лучшему
По умолчанию AtTiny2313 ШИМ на два плеча.

Код:
/**************************************************  ***
Project : PWM half-bridge controller
Version : 
Date    : 27.05.2009
Author  : OneTech                  
Company : OneTech                         


Chip type           : ATtiny13
Clock frequency     : 9,600000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 16
**************************************************  ***/

#include ‹tiny13.h›
#include ‹delay.h›
#define ADC_VREF_TYPE 0x20

unsigned char c; 

interrupt [PCINT0] void pin_change_isr(void)
{
};

unsigned char read_adc(void)
{
ADMUX=ADC_VREF_TYPE|1;
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
};

void PWM_set(unsigned char PWM_data)
{   
    if (PWM_data›=122)
    {
        PWM_data=122;
    };
    OCR0A=PWM_data;
    OCR0B=PWM_data^255;
};

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out 
// State5=T State4=T State3=T State2=T State1=0 State0=0 
PORTB=0x00;
DDRB=0x03;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 9600,000 kHz
// Mode: Phase correct PWM top=FFh
// OC0A output: Non-Inverted PWM
// OC0B output: Inverted PWM
TCCR0A=0xB1;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0xFF;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: On
GIMSK=0x20;
MCUCR=0x00;
PCMSK=0x10;
GIFR=0x20;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// ADC initialization
// ADC Clock frequency: 600,000 kHz
// ADC Bandgap Voltage Reference: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
// Digital input buffers on ADC0: Off, ADC1: Off, ADC2: Off, ADC3: Off
DIDR0&=0x03;
DIDR0|=0x3C;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x84;

// Global enable interrupts
#asm("sei")

while (1)
{  
    c++;
    if (c›=122)
    {
        c=0;
    };
    delay_ms(10);    
    PWM_set(c);
    read_adc();
};
}
OneTech вне форума  
Сказали "Спасибо" OneTech
Classic001 (08.04.2010)
Непрочитано 08.04.2010, 13:48  
OneTech
Вид на жительство
 
Регистрация: 09.10.2009
Сообщений: 353
Сказал спасибо: 20
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
OneTech на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Пардон, забыл указать что это для ATtiny13 и Вам на С нужен код или на асм?
OneTech вне форума  
Непрочитано 08.04.2010, 14:29  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Сообщение от Classic001 Посмотреть сообщение
Тоесть Вы предлагаете использовать оба имеющихся таймера ? Не, так не пойдёт. Один из таймеров будет использован для реализации 1-wire на прерываниях. Еще варианты есть ? Можно на внешних элементах. Может это возможно реализовать на одном корпусе ?
На одном таймере
Gnider вне форума  
Непрочитано 08.04.2010, 14:48  
Classic001
Временная регистрация
 
Регистрация: 13.10.2009
Сообщений: 81
Сказал спасибо: 2
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Classic001 на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Сообщение от OneTech Посмотреть сообщение
Пардон, забыл указать что это для ATtiny13 и Вам на С нужен код или на асм?
Мне всё равно. Спасибо. Код заработал без изменений.
Classic001 вне форума  
Непрочитано 08.04.2010, 23:50  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: AtTiny2313 ШИМ на два плеча.

Сообщение от Classic001 Посмотреть сообщение
Можно на внешних элементах. Может это возможно реализовать на одном корпусе ?
PIC16F690 DIP20, имеет железный ШИМ полумостом и мостом + програмируемая пауза между верхним и нижним. + Аппаратная защита.
Это автоматическое выключение ШИМ выходов при срабатывании:
1 го из двух компараторов на борту
отдельной ножки.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
picavr вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересный вопрос - два усилителя к одной нагрузке eCAH Аудиотехника 45 14.10.2010 01:23
Посоветуйте ШИМ Easyrider83 Информация по радиокомпонентам 19 04.10.2010 14:13
переделка БП на ШИМ 2003 на одно напряжение artem_y Источники питания и свет 9 26.02.2010 23:35
Ищу ШИМ контроллер serb-radio Информация по радиокомпонентам 1 16.02.2010 21:10


Часовой пояс GMT +4, время: 13:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.