Двухтактный ШИМ на Atmega 16

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс мар 10, 2013 11:04:27

Сообщение Yklmn »

Как получить двухтактный ШИМ на Atmega 16.
Можно ли преобразовать однотактный в двухтактный если да то как это сделать.
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Может имелось в виду ШИМ с комплементарным выходом?
TIM1 настраиваем в режим PWM, канал OCR1A - прямой, OCR1B - инверсный(или наоборот). Кидаем в оба регистра одинаковое значение, наслаждаемся результатом. Минус - нельзя в этом камне делать dead time, что часто надо для управления силовыми ключами.

Есть еще спец микры типа IR2103. 1 вход, два выхода + встроенный dead time.
Реклама
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс мар 10, 2013 11:04:27

Сообщение Yklmn »

Если настроить таймер так как вы сказали то получается следующее. Возьмем к примеру скважность 10% на прямом канале, то на
инверсном будет 90%, а мне нужно чтобы скважность была одинаковой и между каналами сдвинута на пол периода.
Друг Кота
Аватара пользователя
Сообщения: 15749
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Программный низкочастотный (до 120 герц при 128 уровнях на 8 каналов гарантировано) - без особых проблем.
Двухканальный режим без сдвига - тоже не вопрос.
Иначе на двух таймерах с задержкой включения каждого из модулей на полпериода... но насколько стабильно будет держать разницу... :dont_know:
Или специальную МК с аппаратной схемкой для работы с шаговым двигателем.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Посмотрите здесь:
http://mcs.uwsuper.edu/sb/Electronics/HugeLED/
Там в конце есть линк на перевод на русский.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15749
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Остактся только точно подогнать точку запуска второго таймера. :)
Хотя для такой тихоходной конструкции как 4-х разрядный дисплей и программного ШИМ (BAM) достаточно будет. 8)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Это просто - перед запуском ШИМ следует обнулить счетчик одного таймера и загрузить код, соответствующий полупериоду в другой. Потом запустить их одновременно (или один сразу за другим) и сихронность гарантирована.
Друг Кота
Аватара пользователя
Сообщения: 15749
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

И к тому же не забыть про предделители... :cry:
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс мар 10, 2013 11:04:27

Сообщение Yklmn »

Спасибо всем кто откликнулся. Задача решена. Пройдя по ссылке которую предоставил Ser60 я увидел скриншет

Изображение это как раз то что было нужно. Реализовал на одном 16 битном

таймере. Выбрал ШИМ с фазовой корекцией, вершину счета задал в регистре ICR1 скважность регистрами OCR1A, OCR1B.
Вариан с запуском двух таймеров с разницей в пол периода тоже надо будет попробовать.
Ответить

Вернуться в «AVR»