ШИМ АТМЕГА,изменение частоты.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
day177
Родился
Сообщения: 6
Зарегистрирован: Пн окт 23, 2006 09:13:29

Сообщение day177 »

YurkaM

Чувствую, что вопрос был с подъ..бкой, поэтому сразу отвечу


не было подъ..бки - я просто уже неделю бьюсь над вопросом программного "ТОЧНОГО" изменения частоты ШИМ

Например, в ATtiny2313 для таймера0 в режимах FastPWM(режим5) или PWM, FaseCorrect(режим7) это регистр OCR0A.


извините, но этот регистр отвечает за скважность, а не за частоту; при неинвертированном сигнале получим
OCR0A=0x40 //25% ШИМ
OCR0A=0x7f //50% ШИМ
OCR0A=0xC0 //75% ШИМ

применительно к практике - нужно создать маленький проектик ШИМ генератора со скважностью 50%, где была бы возможность изменения частоты без замены кварца в пределах 30-40 кГц
YurkaM
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн сен 01, 2008 14:49:03
Откуда: Казахстан

Сообщение YurkaM »

day177 писал(а):...извините, но этот регистр отвечает за скважность, а не за частоту; при неинвертированном сигнале получим
OCR0A=0x40 //25% ШИМ


Ну да. OCR0A - это скважность для канала А. А мы берём сигнал с канала В. Я же зацепил выше примерчик..
Есть ещё режимы, когда значение ТОР берётся из регистра ICRn. Но не во всех Мк. В 2313 такого нету. А, например в Мега16 этот режим есть для 16-битного таймера 1 (режимы 8, 10, 12, 14 по табличке 47 в даташите).
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Ничего себе вы тут накрутили. Даже незнаю вставлять дальше свой вопрос или нет. Пожалуй вставлю.

Вывел 3 ШИМ на Attiny2313 !!!! Ну надо же их кудато девать...:-)
В генераторе кода установил кристалл 4 Мгц, разделил его на 256
В настройках таймеров указал что использовать нужно полученный сигнал
без доп делений. Т.е. по идее я должен был получить на всех выходах частоту
15 Кгц, что мне как бы достаточно для управлением мотрчиками.
Но! В Протеусе 7.4 получилась такая картина. На выходах Таймера 1 есть 15 Кгц
А на выходе таймера 0 - 62 Кгц. Т.е на таймер 0 поступает тактовый сигнал СК/64.
Откуда?
Ведь генератор кода четко указал

// Crystal Oscillator division factor: 256
#pragma optsize-

CLKPR=0x80;
CLKPR=0x08;

#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

Хотя вот этот код мне не понятен.

CLKPR=0x80; //0b10000000 - тут, как я думаю мы разрешаем работу 10 бит делителя. Правильно?
CLKPR=0x08; - //0b00001000 - Тут все ясно, делим кварц на 256

Тогда почему сразу нельзя было загнать в этот регистр, сразу ?

CLKPR=0b10001000

Я пробовал так, но тогда мы получали просто тактирование СК.

Протеус уже на выходе Таймера 0 выдавал частоту 15 Мгц.

Непонятно, глючит он что-ли или модель МК кривая?
Кстати лекартво которое я скачал для версии 7.4 не лечит. Он все так же Демо и не может сохранить проект
Вложения
attiny2313.c
(2.71 КБ) 592 скачивания
YurkaM
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн сен 01, 2008 14:49:03
Откуда: Казахстан

Сообщение YurkaM »

tych писал(а):Еще сильней глаза протрите !

Успокойтесь, зоркий Вы наш!
Смотри на тему топика и первый пост. Где М16?? У Вас, батенька, галюцинации...

tych писал(а):Разговор шел о том что 2 ШИМ уже сделали на таймере 1 и проблема возникла с выводом ШИМ на КОНКРЕТНУЮ НОГУ OC2 !

По идее разговор должен идти о том, что хотел топикстартер, а то, что дальше по ходу дела вообще отошли от темы, и стали обсуждать сколько где ШИМов и как их включить, - это всего лишь побочные проблемы на грани флуда. Причём упоминались всякие МК, от Tiny2313 до Мега128. Тем не менее, я со своей стороны, признаю, что рулить частотой 2-го таймера в Меге16 действительно можно только по-вашему. Но считаю, что если уж приспичело менять частоту, то надо или использовать 1-й таймер или другой МК.

А Вы, тыч, только и умеете "стрелки переводить", да дерзить... некрасиво однако!
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

YurkaM писал(а):
tych писал(а):Еще сильней глаза протрите !

Успокойтесь, зоркий Вы наш!
Смотри на тему топика и первый пост. Где М16 ??

А что мега16 это не мега ? и я не про ШИМ на меге писал ?

YurkaM писал(а): У Вас, батенька, галюцинации...

Дак это вы в треморе лепите про ТИНИ сами же напоминая что топик про МЕГУ ! Глючит дружок ? Бывает.

YurkaM писал(а):По идее разговор должен идти о том, что хотел топикстартер

Он хотел про ШИМ в Меге - я про это и пишу. вы ЛЕЗЕТЕ с ТИНИ ! супротив вашей же ИДЕИ.

YurkaM писал(а): признаю, что рулить частотой 2-го таймера в Меге16 действительно можно только по-вашему.

Ну и славненько !

YurkaM писал(а): А Вы, тыч, только и умеете "стрелки переводить", да дерзить...

Опять проглючило вас ? только что выше вы признали ято я дал человеку рабочий код, а теперь ришите ято я ТОЛЬКО стрелочник.

YurkaM писал(а): некрасиво однако!

Вы только пришли на форум и вы как раз и ведете себя не красиво ИМХО. За других не знаю.

Где вы в рунете или интернете видели форум чтоб весь многостраничный топик обсуждал то что написал автор топика ?
( топикстартер - это не для рускоязычного форума явно)

Это нормальное дело когда по ходу обсуждения разговор остается в теме топика но обсуждаются вопросы других участников заданые в топике.

А флуд - это как раз ваше выдумавыние бреда не сужествующего в даташите и обвинение по сути авторов компиляторов ICC CVAVR IAR в незнании МК под которые они создают программы.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
YurkaM
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн сен 01, 2008 14:49:03
Откуда: Казахстан

Сообщение YurkaM »

tych писал(а):Дак это вы в треморе лепите про ТИНИ сами же напоминая что топик про МЕГУ ! Глючит дружок ? Бывает.
tych писал(а):Он хотел про ШИМ в Меге - я про это и пишу. вы ЛЕЗЕТЕ с ТИНИ ! супротив вашей же ИДЕИ.
Тини взят для простоты написания и понимания. Переделать мой пример под мега не трудно.
Ну хорошо. ATmega48 это Мега надеюсь? Для таймера2 там есть режимы, которые можно использовать для изменения частоты (5 и 7 в таблице 16-8 даташита).

tych писал(а):Вы только пришли на форум и вы как раз и ведете себя не красиво ИМХО. За других не знаю.
Зато я не гордый и не страдаю манией величия, ошибки признаю. Грешен, терпелки не хватает, на грубости плохо реагирую..

tych писал(а): топикстартер - это не для рускоязычного форума явно
А Вы у нас образец русского языка: "Позырьте, зырте, ТочнА, адназначна, готовая библа, Ужас нах, в треморе..." - это Ваше, навскидку с одного лишь топика.

tych писал(а):Это нормальное дело когда по ходу обсуждения разговор остается в теме топика но обсуждаются вопросы других участников заданые в топике.
Тема была весьма конкретная, про изменение частоты ШИМ.

tych писал(а):Вы только пришли на форум и вы как раз и ведете себя не красиво ИМХО. За других не знаю.
Зато Вы много где засветились, и от этого у Вас, похоже, неадекватно возросла самооценка.
Подозреваю, что Вы вообще не знали о возможности менять значение TOP в ШИМах, т.к. не вспомнить про это при вопросе о частоте просто невозможно.
Короче, давайте закончим бодаться. (Можете вставить последнее слово, Вы ж не допустите, что бы оно было не Ваше?..)

Лучше вот подскажите day177, ему нужен меандр с изменяемой частотой 30-40кГц. А то я тут со своими асемблерами никому не понятен... То ли дело Си - пару кликов мышкой, и готово.
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

YurkaM писал(а):Ну хорошо. ATmega48 это Мега надеюсь? Для таймера2 там есть режимы, которые можно использовать для изменения частоты (5 и 7 в таблице 16-8 даташита).

А я писал что нет ? или кто-то другой оспаривал сей ФАКТ ???

Вопрошающий ПОМОЩИ пишет - "на Меге16 2 ШИМ УЖЕ работают, как мне запустить ШИМ на OC2"

Вы ему отвечаете: "выкинь мегу16 возьми мегу48"

Это нормально по-вашему ?

Или нормально сделать то что я сделал - пояснил как запустить 3-й шим на меге16.

YurkaM писал(а):
tych писал(а): топикстартер - это не для рускоязычного форума явно
А Вы у нас образец русского языка: "Позырьте, зырте, ТочнА, адназначна, готовая библа, Ужас нах, в треморе..." - это Ваше, навскидку с одного лишь топика..
и ЧЁ тут не русское ? Тремор мед. термин.

YurkaM писал(а): Тема Тема была весьма конкретная, про изменение частоты ШИМ.

а я не про нее писал ?

YurkaM писал(а): Подозреваю, что Вы вообще не знали о возможности менять значение TOP в ШИМах, т.к. не вспомнить про это при вопросе о частоте просто невозможно.

КОНЕЧНО НЕ ЗНАЛ !!! откель ? Я ж 6 задачу курса выдамал всю - а про мастер ICC ни сном ни духом !

Изображение

YurkaM писал(а): не вспомнить про это при вопросе о частоте просто невозможно.

Только нафига вспоминать ТО ЧЕГО НЕТУ в конкретном случае.
а конкретный случай я скриншотом большим на прошлой страниче подкрепил.

YurkaM писал(а): Лучше вот подскажите day177, ему нужен меандр с изменяемой частотой 30-40кГц. А то я тут со своими асемблерами никому не понятен... Толи дело в Си - пару кликов мышкой .

Ваша правда ! Си - рулез, АСМ супер.
http://docs.google.com/Presentation?id= ... _0gchcnrhh
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
MetEl
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Чт окт 18, 2007 16:45:30
Откуда: из Питера

Сообщение MetEl »

В режиме шим с фазовой корекцией.

Изображение
простое чмо, выдумщик
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

О как удобненько ! кнопочку "превьюв" нажал - и код посмотрел.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
MetEl
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Чт окт 18, 2007 16:45:30
Откуда: из Питера

Сообщение MetEl »

.
Вложения
Новая папка.rar
(19.39 КБ) 540 скачиваний
простое чмо, выдумщик
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Оформил проектик - настройка и применение ШИМ и АЦП в ATmega8
CVAVR и PROTEUS
Вложения
пример ШИМ и АЦП CVAVR ATmega8 PROTEUS.rar
(157.45 КБ) 1366 скачиваний
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

А вы демо версией ICC пользуетесь? или есть где то ломаная?
Image Craft седьмую версию предлагает, я так понял 42 дня полнофункционал, а дальше ограничение кода.
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Я только мастер его использую.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Ну с формированием ШИМ разобрались. Теперь хотелось бы узнать что с ним делать дальше. Как качать нагрузку постояным напряжением - это понятно. А вот по тому как это делать в сети с переменным напряжением не совсем ясно. Вобщем проблема такая - водяной насос при старте, нереально просаживает напругу в доме. Я переделал штатное защитное утройство для плавного пуска ламп, под более мощную нагрузку, но оно все равно потом сгорало, так как не предназначено для таких нагрузок, но проседаний не было.
Я понимаю что на выходе ШИМ должен стоять Триак который и будет коммутировать нагрузку. Но как правильно им управлять ШИМ?
Я так же знаю, что импульсы ШИМ нужно как-то синхронизировать с сетью 50 Гц. Но как это нужно делать? Ловить момент перехода через 0? Нужно ли использовать для этого АЦП? или просто формировать внешнее прерывание.
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Если мотор коллекторный то диммер нужен был помощней просто. И можно ШИМ не синхронизировать с сетью а просто подаать на ключ из 2 полевиков.

Если мотор б-коллектора, то луче наверно изобразить поавное наростание чатоты и напруги при пуске - это Н-мост - 2/3 частотного инвертора :lol:
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Вот я и хочу сделать диммер помощнее. Мой то сгорел. А какой там мотор - неизвестно. Глубоко в колодце и насмерть прикручено все.
Я вот это к чему. Если всетаки использовать Триак (старая схема так и работала), то как делать сонхронизацию (начало полож полуволны, переход через ноль или что-то еще)? В той схеме сигал через делитель поступал на некий вход МК, наверняка не зря. МК это PIC509. Ни прошивки не программы. Вот я и хочу сам сделать свой диммер и еще что нибудь М16-большой! :lol: Волнует только вот что если не запариваться по поводу синхронизации триака с сетевым напряжением - не пойдет ли он вразнос. Хотя на включениу режима ШИМ всего то нужно 3 сек.
YurkaM
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн сен 01, 2008 14:49:03
Откуда: Казахстан

Сообщение YurkaM »

AndyWorld писал(а):если не запариваться по поводу синхронизации триака с сетевым напряжением - не пойдет ли он вразнос.

Без синхронизации на триаке вряд-ли что-то получится. Тут только ключ на 2-х полевиках, как сказал tych или диодный мостик и 1 полевик.
А ноль сети выловить не трудно. Если не нужна гальваническая развязка (рискованый вариант если будут кнопки/ручки управления!), то можно тупо завести синус питания с любого провода вторички трансформатора через ограничительный резистор на вход INT. И не помешает подстраховаться стабилитроном на 4.7В. Для данного случая этого вполне достаточно, но если хочется более точно, то можно использовать встроенный компаратор, заведя сигнал с обоих концов вторички на его входы + и -. Через резисторы, естественно.
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Нет трансформатор тут не пойдет, схема питания без него. На схеме GP5 GP4 это OSC1-2, запараллеленые наверное для увеличения токовой способности выходов МК. Вход GP0-GP1 в ДШ не описан. Можно конечно скачать прошивку (исходников нет)и тупо наштамповать этих диммеров, но это не интересно. Интересно сделать аналогичную схеу на АВР, поиграться с ШИМ в деле, изменять время включения диммера и т.д.
Вложения
dimmer.jpg
(27.86 КБ) 792 скачивания
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Схема диммера на копараторе, таймере LM555, оптомимисторе MOC3022 и симисторе MAC9 (вам помощней наверно нужен) есть в апноуте AN8011-D на сайте http://onsemi.com

А старая провереная мной схемка на МК вот
Вложения
BT139 MAC9 pic12c508 Александр Протопопов.gif
(4.99 КБ) 808 скачиваний
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
YurkaM
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн сен 01, 2008 14:49:03
Откуда: Казахстан

Сообщение YurkaM »

tych, автор хочет сам чего-то сотворить, ему готовое неинтересно..
tych писал(а):А старая провереная мной схемка на МК вот
Прикольно, схема-то у обоих одна и та же. Ну можно её взять за образец и переделать на AVR. Только вот Мега16 тут как-то монстроидально будет смотреться..
AndyWorld писал(а):Нет трансформатор тут не пойдет
Ну и не надо. Заводи напрямую через 1М с сетевого провода на вход прерывания. Только если резистор 0.125, то лучше 2 по 500к последовательно, ибо они на такие напряжения не рассчитаны. Стабилитрон 4.7В между входом INT и землей тоже поставь (хоть внутри МК и есть ограничительные диоды, но страховка не помешает).
И не забывай, что получаешь гальваническую связь с сетью.
Закрыто

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