реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Изучаю архитектуру процессора AVR, Вопросы чайника о принципах работы процессора.
Буратино
сообщение Mar 22 2010, 08:08
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Разбираюсь с ШИМ у Меги88. Настроил режим "Fast PWM" на таймере 0, по аналогии сделал и на таймере 2, но

на выводе "ОС2B" частота выше в два раза, чем на "ОС0B" и "ОС0A" sad.gif
На "ОС2A" совсем нет ШИМ, уж не знаю с чем это связано, возможно с тем что этот вывод (PB3) имеет альтернативную функцию "MOSI"?

Код
void Timer0_Init(void) {
    TCCR0A |= (1<<COM0B0)|(1<<COM0B1)|(1<<COM0A0)|(1<<COM0A1)|(1<<WGM01)|(1<<WGM00);    /*Инициализация таймера "0" в режим Fast PWM (non-inverting)*/
    TCCR0B &= (1<<WGM02);
    
    TCCR0B |= (1<<CS02);
    TCCR2B &= ~((1<<CS00)|(1<<CS01));
    
    TCNT0 = 0x00;        
    OCR0A = 0x20;
    OCR0B = 0x20;
}

void Timer2_Init(void) {
    TCCR2A |= (1<<COM2B0)|(1<<COM2B1)|(1<<COM2A0)|(1<<COM2A1)|(1<<WGM21)|(1<<WGM20);    /*Инициализация таймера "2" в режим Fast PWM (non-inverting)*/
    TCCR2B &= (1<<WGM22);

    TCCR2B |= (1<<CS22);
    TCCR2B &= ~((1<<CS20)|(1<<CS21));

    TCNT2 = 0x00;        
    OCR2A = 0x20;
    OCR2B = 0x20;
}



Посмотрите всевидящим оком, в чем может быть причина?

Еще я подметил что на 157й страничке даташита "ATmega48/88/168" ошибки в таблице 17-8 "Waveform Generation Mode Bit Description". Там, в шапке, биты странно названы, не так как в том месте где указывается их расположение в байте конфигурации. Ну или я что-то не так понял?

Спасибо!


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
ae_
сообщение Mar 22 2010, 09:01
Сообщение #2


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(Буратино @ Mar 22 2010, 16:08) *
Код
...
    TCCR0B |= (1<<CS02);
    TCCR[color="#FF0000"]2[/color]B &= ~((1<<CS00)|(1<<CS01));
...    
    TCCR2B |= (1<<CS22);
    TCCR2B &= ~((1<<CS20)|(1<<CS21));
...
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 22 2010, 09:33
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



ВСЕ, спасибо!
Вот я дуб..и правда по разному прескалеры конфигурируются, и у меня SPI аппаратный задействован ,поэтому и нет ШИМа на MOSI rolleyes.gif

Сообщение отредактировал Буратино - Mar 22 2010, 09:58


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 28 2010, 07:31
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Рисую схему устройства на базе микроконтроллера AVR ATMega88. На борту имеется три таймера:
два восьмибитных и один 16ти битный. Необходимо сформировать 4 аналоговых сигнала. Для этого я буду использовать канал А и В таймера 0, и канал А таймера 2 (0 и 2 восьмибитные). Четвертый сигнал сформирую на таймере 1. (тоже хочу использовать его аппаратный PWM, для 4го сигнала нужна высокая разрядность)
Вопрос: как можно использовать канал В таймера 2? Что он "умеет", если его прескалер (а он я так понял один на два канала в таймере) будет занят шимом для А канала?
Получается, что мне не хватает одного таймера для формирования временных "тиков" чтобы я мог управлять всем этим богатством.

Сообщение отредактировал Буратино - Mar 28 2010, 07:31


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
smk
сообщение Mar 28 2010, 07:40
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Скажите, а Вам удалось скачать и почитать книжки Евстифеева "Микроконтроллеры Mega..." ? Если нет, то почитайте, очень рекомендую.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 28 2010, 07:58
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Цитата(smk @ Mar 28 2010, 10:40) *
Скажите, а Вам удалось скачать и почитать книжки Евстифеева "Микроконтроллеры Mega..." ? Если нет, то почитайте, очень рекомендую.


Да, удалось. Даже распечатал.
Вопрос в другом, как теперь всем тем, что там написано воспользоваться!? smile.gif

Вот у меня сл. ситуация. Я хочу сделать частотный привод для шпинделя на Меге88. Там есть особенности в схемотехнике ну если не вдаваться в подробности то необходимо получить три синусоиды сдвинутые по фаза на 120гр. и один медленный сигнал (герцы) но с высокой разрядностью.
В книге Евстифеева решений таких проблем нет, именно поэтому я и советуюсь с знающими людьми.

---
Вот немного подумал и пришла в голову мысль о том, чтобы сделать 4й сигнал программным ШИМом (ен же медленный) ,а таймер 1 приспособить для формирования первых трех сигналов (в смысле загружать в регистры PWM новые значения) Остается только вопрос с формированием временных задержек для "Делеев", вот думаю можно аль нет использовать для этого прерывания переполнения 0,2 таймеров в ШИМ режиме?


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
smk
сообщение Mar 28 2010, 08:21
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Вшу звдвчу решать не приходилось, но есть примеры от Атмела, в которых управление двигателем точно есть. Посмотрите "Тамперт В. Измерение, управление и регулирование...". Возможно поможет.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 28 2010, 08:50
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Цитата(smk @ Mar 28 2010, 11:21) *
Вшу звдвчу решать не приходилось, но есть примеры от Атмела, в которых управление двигателем точно есть. Посмотрите "Тамперт В. Измерение, управление и регулирование...". Возможно поможет.


Да, спасибо! smile.gif


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 06:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016