atmega 16: можно получить любую частоту шим (pwm) или нет?
atmega 16: можно получить любую частоту шим (pwm) или нет?
вопрос вот в чем: информация, которую я находил про частоту шима на атмеге16 всегда была привязана к разрядности таймера, делителя (прескаллер) и частоты основного генератора - то есть достаточно ограниченный диапазон частот.это навсегда или я знаю не всё ?
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
Re: atmega 16: можно получить любую частоту шим (pwm) или не
Если всё-таки напрячься и понять принцип работы ШИМ, то подобные вопросы не должны возникнуть. 
Даже остановленные часы два раза в сутки показывают правильное время.
Re: atmega 16: можно получить любую частоту шим (pwm) или не
ну точно также можно напрячься и понять вопрос.
вот формулы расчета частоты шим. здесь только несколько комбинаций. сюда можно подставить кварц 1-4-8 мгц.
можно менять битность таймера, можно менять делитель и всё.
Quarz = 8 MHz ; Prescaler = 1 ; Timer = 8 Bit ergibt: (8000000Hz/1) / (256*2) = 15,625 kHz
Quarz = 8 MHz ; Prescaler = 8 ; Timer = 10 Bit ergibt: (8000000Hz/8) / (1024*2) = 244,14 Hz
вот формулы расчета частоты шим. здесь только несколько комбинаций. сюда можно подставить кварц 1-4-8 мгц.
можно менять битность таймера, можно менять делитель и всё.
Quarz = 8 MHz ; Prescaler = 1 ; Timer = 8 Bit ergibt: (8000000Hz/1) / (256*2) = 15,625 kHz
Quarz = 8 MHz ; Prescaler = 8 ; Timer = 10 Bit ergibt: (8000000Hz/8) / (1024*2) = 244,14 Hz
-
of_silence
- Открыл глаза
- Сообщения: 79
- Зарегистрирован: Сб май 08, 2010 09:33:42
Re: atmega 16: можно получить любую частоту шим (pwm) или не
А еще можно почитать про режим CTC (очистка таймера по совпадению с заданным числом). С помощью этой функции можно повысить частоту ШИМ с одновременным снижением точности 
Про "напрячься и понять вопрос" - это в корне не адекватное высказывание.
Во-первых, тот, кто делает проект по определению должен больше "напрягаться", чем тот, кто помогает.
Во-вторых, "помогать" давая готовые формулы - медвежья услуга. Так человек, требующей помощи не обретает никакого знания (а получает лишь частное следствие от требуемых знаний по вопросу), а также будет еще в большей степени обречен мучить своими вопросами более правильно образованных котов
Про "напрячься и понять вопрос" - это в корне не адекватное высказывание.
Во-первых, тот, кто делает проект по определению должен больше "напрягаться", чем тот, кто помогает.
Во-вторых, "помогать" давая готовые формулы - медвежья услуга. Так человек, требующей помощи не обретает никакого знания (а получает лишь частное следствие от требуемых знаний по вопросу), а также будет еще в большей степени обречен мучить своими вопросами более правильно образованных котов

Re: atmega 16: можно получить любую частоту шим (pwm) или не
А на чем еще самообразовываться, если не на готовых формулах и примерах исходников? Вы, когда все это изучали, не пользовались чужими готовыми примерами, формулами с проставленными в них числами?
Я не прошу делать за меня проект! Я задал чисто теоретический вопрос и написал на чем он основывается, ответ на который "да"
или "нет". Тебя это сильно замучает? Вот, например, нужно получить произвольную частоту 1,3,6,13,26 кгц шим от внутреннего генератора 8 мгц.Это возможно? Я даже не спрашиваю КАК это делать.Вопрос в том, ВОЗМОЖНО ли это? Это теоретический вопрос.
Я не прошу делать за меня проект! Я задал чисто теоретический вопрос и написал на чем он основывается, ответ на который "да"
или "нет". Тебя это сильно замучает? Вот, например, нужно получить произвольную частоту 1,3,6,13,26 кгц шим от внутреннего генератора 8 мгц.Это возможно? Я даже не спрашиваю КАК это делать.Вопрос в том, ВОЗМОЖНО ли это? Это теоретический вопрос.
Re: atmega 16: можно получить любую частоту шим (pwm) или не
zybex писал(а):А на чем еще самообразовываться, если не на готовых формулах и примерах исходников? Вы, когда все это изучали, не пользовались чужими готовыми примерами, формулами с проставленными в них числами?
Есть ещё документация, в том числе даташиты.
zybex писал(а):Вот, например, нужно получить произвольную частоту 1,3,6,13,26 кгц шим от внутреннего генератора 8 мгц.Это возможно?
Если есть возможность настроить делитель так чтобы он получал эту частоту, то можно. А частота может сначала делиться на степень двойки(прескалер), причём не на каждую(смотри даташит), и затем на любое целое число в от 2 до 2^разрядность таймера.
Так что 1кГц из 8МГц получить можно, а 3,6,13 и 26 кГц - нельзя. Хотя можно взять близкую частоту.
zybex писал(а):от внутреннего генератора 8 мгц
Во-первых не забывай, что внутренний генерато не очень точный(без калибровки вполне может быть и +-10%). И во-вторых его частоту можно поменять, чтобы получить нужную частоту ШИМ.
Re: atmega 16: можно получить любую частоту шим (pwm) или не
Murav, спасибо! будем от этого отталкиваться!
-
of_silence
- Открыл глаза
- Сообщения: 79
- Зарегистрирован: Сб май 08, 2010 09:33:42
Re: atmega 16: можно получить любую частоту шим (pwm) или не
а 3,6,13 и 26 кГц - нельзя.
Немного расшифрую фразу. На самом деле можно получить очень близкие частоты. Делаем так.
делим частоту генератора на желаемую. Например, в килогерцах - 8000/26 = 307. Теперь мы знаем, что нужно делить на 307.
Разделить режимом CTC в 8-разрядном ШИМ мы на столько не можем (а если применяем 16-разрядный счетчик, то можем - тогда получаем вообще ровно 26 кГц). применяем Prescaler на 2. 307/2 = 153. Отлично!
Итак, при использовании предделителя на 2 и СТС по значению153, получаем частоту 8000/2/153=26.14 кГц. Для ШИМ о большей точности и мечтать нельзя!
Вы, когда все это изучали, не пользовались чужими готовыми примерами, формулами с проставленными в них числами?
как не странно, вообще не пользовался! Ни разу при освоении AVR я ни к кому не обратился за помощью, при том, что МК осваивал с нуля. Сейчас изучаю ARM, там без чужих библиотек просто нецелесообразно работать. Но вопросы я задаю только тогда, когда я изучил ВСЮ доступную литературу, которая по моему мнению связана с вопросом, и пришел к выводу,что на основании нее в принципе невозможно найти ответ на вопрос.
Re: atmega 16: можно получить любую частоту шим (pwm) или не
Но я хочу сказать, что не все так могут... А если еще нет знаний английского - так вообще даташит похож на китайских шифр...of_silence писал(а):как не странно, вообще не пользовался! Ни разу при освоении AVR я ни к кому не обратился за помощью, при том, что МК осваивал с нуля.
Не все такие умные
Который раз гуглом ищу вопрос, нахожу его на форуме... а отвечают догадайтесь что? Иди в гугл, читай даташит... И так бесконечно. Никакой новой информации, никакого движения вперед. Сами подумайте...
Не променяю медь на ржавую несгорайку!
-
of_silence
- Открыл глаза
- Сообщения: 79
- Зарегистрирован: Сб май 08, 2010 09:33:42
Re: atmega 16: можно получить любую частоту шим (pwm) или не
Читайте даташит, как работает ШИМ. Если проблемы с английским - есть товарищ, который занимается переводом даташитов и выдает их за книги по микроконтроллерам. К сожалению названия не могу привести, но найти думаю будет не сложно.
Я понимаю, что разобраться с нуля в чем-то бывает сложно, ибо надо одновременно изучать разные вещи. Но с ШИМ думаю все просто - в даташите есть описание того, как он работает, последовательно и достаточно понятно вроде "считает до указанной цифры,выставляет 1 на выходе, по переполнению выход обнуляется". Данное предложение - уже почти что полное описание работы ШИМ, надо только разобраться в деталях.
Про английский - мотивация понятна. Хочется сделать устройство, с минимумом затрат. Но стоит себя убедить, что цель не только устройство, но и повышение проф уровня - и все станет на свои места. Можно потихоньку, со словариком, переводить даташит. Это дольше, но если вытерпеть пару месяцев такого труда - потом все будет читаться само, ибо в даташитах инглиш - одно да потому. Москва не сразу строилась - мое знание Английского отнюдь не врожденное, к сожалению. Развивал также - сначала игры и винда нарочно установленные в английском варианте, потом даташиты и прочая литература.
Я понимаю, что разобраться с нуля в чем-то бывает сложно, ибо надо одновременно изучать разные вещи. Но с ШИМ думаю все просто - в даташите есть описание того, как он работает, последовательно и достаточно понятно вроде "считает до указанной цифры,выставляет 1 на выходе, по переполнению выход обнуляется". Данное предложение - уже почти что полное описание работы ШИМ, надо только разобраться в деталях.
Про английский - мотивация понятна. Хочется сделать устройство, с минимумом затрат. Но стоит себя убедить, что цель не только устройство, но и повышение проф уровня - и все станет на свои места. Можно потихоньку, со словариком, переводить даташит. Это дольше, но если вытерпеть пару месяцев такого труда - потом все будет читаться само, ибо в даташитах инглиш - одно да потому. Москва не сразу строилась - мое знание Английского отнюдь не врожденное, к сожалению. Развивал также - сначала игры и винда нарочно установленные в английском варианте, потом даташиты и прочая литература.
- VasaShmidt
- Родился
- Сообщения: 16
- Зарегистрирован: Ср май 26, 2010 13:48:40
Re: atmega 16: можно получить любую частоту шим (pwm) или не
Коротко, но достаточно понятно и с примерами, этот вопрос освещён в книге "Программирование на языке C для AVR и PIC микроконтроллеров" автор Ю.А. Шпак. Есть книжка "Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel" автор А.В. Евстифеев, всеми родинками похожая на собранные в кучу переводы даташитов. И книга "Микроконтроллеры семейства AVR фирмы Atmel" Гребнёв В.В. - сама не читала, но при беглом просмотре впечатление приятное осталось.
Вот в этих книгах можете посмотреть и почитать, если с английским туго
Сама только что решила проблему получения разных частот на выводах для Atmega329 и могу посоветовать для таких целей режим CTC - пару минут на подумать и посчитать, три строчки кода и вся работа выполняется аппаратно
Вот в этих книгах можете посмотреть и почитать, если с английским туго
Сама только что решила проблему получения разных частот на выводах для Atmega329 и могу посоветовать для таких целей режим CTC - пару минут на подумать и посчитать, три строчки кода и вся работа выполняется аппаратно
Re: atmega 16: можно получить любую частоту шим (pwm) или не
zybex писал(а): достаточно ограниченный диапазон частот. это навсегда или я знаю не всё ?
Да. Да.
Будете проходить мимо- проходите!
Re: atmega 16: можно получить любую частоту шим (pwm) или не
Upgrader писал(а):Который раз гуглом ищу вопрос, нахожу его на форуме... а отвечают догадайтесь что? Иди в гугл, читай даташит... И так бесконечно.
Пользуйтесь НОРМАЛЬНЫМ поисковиком и будете сразу получать ответ на ваш вопрос без кругов АДА
http://yandex.ru/yandsearch?text=%D1%82 ... 510&lr=213
Будете проходить мимо- проходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: atmega 16: можно получить любую частоту шим (pwm) или не
только вот скажите мне, в каком именно AVR имеется предделитель таймера, равный ДВУМ?of_silence писал(а):Итак, при использовании предделителя на 2 и СТС по значению153, получаем частоту 8000/2/153=26.14 кГц.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: atmega 16: можно получить любую частоту шим (pwm) или не
zybex писал(а): нужно получить произвольную частоту 1,3,6,13,26 кгц шим от внутреннего генератора 8 мгц. Это возможно?
Да.
Проще всего с помощью мастера настройки аппаратуры AVR в компиляторе ICC http://imagecraft.com
Моделировать в PROTEUS - http://www.google.ru/search?hl=ru&lr=&n ... =&gs_rfai=
Будете проходить мимо- проходите!