Например TDA7294

Форум РадиоКот :: Просмотр темы - ATmega16a ШИМ и частота
Форум РадиоКот
https://radiokot.ru/forum/

ATmega16a ШИМ и частота
https://radiokot.ru/forum/viewtopic.php?f=20&t=75724
Страница 1 из 1

Автор:  sx386 [ Чт июл 19, 2012 19:01:00 ]
Заголовок сообщения:  ATmega16a ШИМ и частота

Значениями (0<<CS12)|(0<<CS11)|(1<<CS10) задаю минимально возможный делитель.
Как можно увеличить частоту импульсов в 10 раз ?

Код:
.macro eout

   ldi ram23, @1
   out @0,ram23

.endmacro


Код:
eout TCCR1B, 0x00;  //stop Timer

eout TCNT1H, 0xFC;  // 11111100 
eout TCNT1L, 0x01;  // 00000001 

/* значение в 16 битном регистре OCR1A определяет величину генерируемого ШИМ сигнала на ножке PD5

// Скважность 50%
eout OCR1AH , 0x01; 
eout OCR1AL , 0xff;

/* регистр OCR1A состоит из двух 8-ми битных регистров  OCR1AH и OCR1AL запись в них нужно проводить в указанной последовательности! */

eout OCR1BH , 0x03;
eout OCR1BL , 0xFF;

eout ICR1H , 0x03;
eout ICR1L , 0xFF;

eout TCCR1A , 0x83;  // 10000011 
eout TCCR1B , (1<<CTC1)|(0<<CS12)|(0<<CS11)|(1<<CS10);  // 00001001 - start Timer

Автор:  Engineer_Keen [ Чт июл 19, 2012 20:29:19 ]
Заголовок сообщения:  Re: ATmega16a ШИМ и частота

Взять кварц в 10 раз больше, иначе никак. Можно сделать программно-аппаратно, но за счет уменьшения разрядности.

Автор:  sx386 [ Чт июл 19, 2012 20:37:39 ]
Заголовок сообщения:  Re: ATmega16a ШИМ и частота

Engineer_Keen писал(а):
Можно сделать программно-аппаратно, но за счет уменьшения разрядности.

А как именно ?

Автор:  Engineer_Keen [ Чт июл 19, 2012 22:07:09 ]
Заголовок сообщения:  Re: ATmega16a ШИМ и частота

Задействовать режим CTC, тогда верхним пределом будет не 0xFFFF, а число в OCR1A, т.е. можно сделать в 2,4,8 и.т.д раз быстрее (на самом деле даже не обязательно в степень двойки, но так удобнее), в прерывании по совпадению с OCR1A ставить выход в 1. А регистр OCR1B использовать как величину ШИМ и в его прерывании обнулять выход.
Ну и еще в 16-й меге есть железные режимы FAST и PHASE CORRECT PWM с использованием 8,9 и 10 бит, но это намного быстрее чем в 10 раз.

Автор:  Леонид Иванович [ Чт июл 19, 2012 22:14:26 ]
Заголовок сообщения:  Re: ATmega16a ШИМ и частота

sx386 писал(а):
Как можно увеличить частоту импульсов в 10 раз ?


Если нужно сдвинуть спектр ШИМ-сигнала максимально вверх по частоте, но не хочется терять разрешение ШИМ, можно сделать программный "довесок" к ШИМ в виде сигма-дельта: viewtopic.php?p=1344737#p1344737

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/