Обсуждаем контроллеры компании Atmel.
Ответить

ШИМ-генератор ATMega8+LCD+кнопки

Пт авг 26, 2022 10:39:03

ШИМ-генератор с LCD и управлением кнопками

Изображение

Возможно кому-нибудь пригодится

LCD 8х2 WH0802A или 16х2 WH1602A
Кнопка Mode - вкл/выкл выхода.
Кнопки Freq-, Freq+ изменение частоты. Шаг 1 Гц (10, 100 Гц).
Кнопки Duty-, Duty+ изменение коэффициента заполнения ШИМ. Шаг 1% (5%).
Если долго держать кнопку, шаг увеличивается.

Частота и ШИМ сохраняются в EEPROM через 2 сек после изменения частоты или ШИМ (чтобы не записывать слишком часто)
На низкой частоте используется делитель /8, /64, /256

Версия с одним каналом PB2:
Частота: 1 Гц...1.6 МГц ((F_CPU/10)). Можно поднять до Fmax= F_CPU/4 по datasheet
Fast PWM Mode
Длительность импульса минимум 1 такт. ШИМ 1...99%

Версия с двумя каналами PB1, PB2:
Частота: 1 Гц...800 кГц ((F_CPU/20)). Fmax= F_CPU/8
Phase and Frequency Correct PWM Mode
Длительность импульса минимум 2 такта. ШИМ 1...50%

Частоту можно поднять до F_CPU/4
2-х канальный ШИМ сыроват и возможны глюки на высоких частотах
из-за особенностей ICR1.
Наверное лучше 1 канал ШИМ + схема деления на канала: 74AC74 + 74AC08.

Проекты в Atmel_Studio7:
Вложения
ATMega8_PWM_LCD_07_AS7.zip
(173.1 KiB) Скачиваний: 127
ATMega8_PWM_2CH_LCD_07_AS7.zip
(173.33 KiB) Скачиваний: 107
Последний раз редактировалось forregister84 Пт авг 26, 2022 11:59:25, всего редактировалось 1 раз.

Re: ШИМ-генератор ATMega8+LCD+кнопки

Пт авг 26, 2022 11:13:00

Молодец. А что делают резисторы на 300 Ом - R3, R4, R6?

Re: ШИМ-генератор ATMega8+LCD+кнопки

Пт авг 26, 2022 11:16:25

Это правило хорошего тона. Если по ошибке вход запрограммировать как выход и замкнуть кнопку...

Re: ШИМ-генератор ATMega8+LCD+кнопки

Пт авг 26, 2022 11:32:22

А вы не ошибайтесь, вы же программист, а остальные - просто пользователи.
Кстати, на практике редко когда моментально сгорает. Ток значительно ограничивается внутренней структурой выхода.

Re: ШИМ-генератор ATMega8+LCD+кнопки

Пт авг 26, 2022 13:21:36

forregister84 писал(а):Если по ошибке вход запрограммировать как выход и замкнуть кнопку...

то ничего страшного не будет))

каждый день замыкаю выводы ATmega8... ни разу ничего не сгорело))
ATmega8_AES_256.jpg
(121.31 KiB) Скачиваний: 91

главное чтоб не замкнуть выводы ATmega8 на +12 вольт... тогда выводы ATmega8 сгорают сразу...

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 00:48:16

Это правило хорошего тона.

Либо Вы что-то путаете в тонах, либо дайте ссылку на источник, где этим "тонам" учат.

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 09:16:13

Это просто перестраховщики. Типа, монашка и огурец.)
Ещё можно КС156 по питанию поставить.)

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 15:07:08

forregister84 писал(а):Это правило хорошего тона.

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

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 18:20:44

Да ну. Это ж насколько нужно быть невнимательным и бестолковым погромистом, чтобы "случайно" входы (inputs) настроить как выходы (outputs). И даже если программист совсем дундук тупоголовый и наляпал такой хрени и запрогал железный МК, то кратковременное нажатие посаженной на выход кнопки обычно к сгоранию не приводит. А если и сгорит - то это урок для погромиста - будь внимателен, смотри че творишь.
И тем более, отладка в Протеусе настолько безопасна, что даже в мониторе пиксели не сгорят от прямого кз в виртуальной схеме.

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 19:47:42

Что вы пристали к человеку с какими-то резисторами, хотите ставьте, хотите нет, что это изменит?
Меня больше такой вопрос интересует: Шаг 1Гц в диапазоне 1Гц...1.6МГц ?

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 20:31:54

ДядяВован. Если делаешь на макетке для себя то можно лепить что угодно. С этим я не спорю. Если занимаешься чем то более серьёзным,
то вот почитать:
https://www.ivtechno.ru/articles-one?id=37
https://www.ivtechno.ru/articles-one?id=13
http://www.elart.narod.ru/articles/arti ... bility.pdf

P.S. В связи с наличием дешевых ШИМ модулей на Али полезность моего проекта не высока, но если кому-то надо, он начнет не с нуля.
Тот же DDS на ATMega16 тоже вещь так-себе.

Добавлено after 10 minutes 31 second:
Dimon456. Забыл отправить
Вложения
Частота ШИМ.zip
(14.79 KiB) Скачиваний: 89

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 20:33:50

Ну раз уж так обсыкаться от возможности невозможного, тогда расскажите, почему не поставили конденсаторы параллельно кнопкам? По всем правилам они должны присутствовать для подавления случайных наводимых импульсов и для минимизации эффекта дребезга контактов кнопок. Чо уж там, делать так делать! ШИМ-дегенератор - настолько ответственный узел, что надо приложить максимум серьезности и перестраховочности.

Еще бы и схему питания с кучей защит привели. Или хотябы указали, что питать от USB компа. А то поди догадайся, чем кормить сию приблуду.
Ну а надежность и сбоебезопасность кода проверяли на соответствие MISRA? Юнит-тесты проводили?
Последний раз редактировалось Up2805 Сб авг 27, 2022 20:35:29, всего редактировалось 1 раз.

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 20:39:52

Первое сообщение (шапку) уже не дополнить ?

Добавлено after 5 minutes 42 seconds:
Up2805. Давайте закрывать уже тему с резисторами :) . Возможно не стоило их рисовать в протеусе. И ежу понятно, что это не полная схема.
Все дальнейшие апгрейды и полную схему не обещаю.

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 20:44:27

Да забыли уже про резисторы. Расскажите теперь про питание схемы. От "Кроны" можна? А от Li-Ion акума? А от батарейки пальчиковой? Три или четыре их ставить? Или только в USB компа? А напрямую можна или надо чето там мутить еще?

Блин, вот схему питания нужно указывать полюбасу, это куда важднее чем ваши эти резисторы для перепутывания входов/выходов. Без схемы питания перепутать питание гораздо более вероятно, чем если вдруг в готовом скомпилированном коде перепутаются байтики и перенастроится порт.

Re: ШИМ-генератор ATMega8+LCD+кнопки

Сб авг 27, 2022 22:28:43

При чем тут ШИМ модули на Али, при чем тут DDS на ATMega16, я было подумал что вам удалось, но ...

Re: ШИМ-генератор ATMega8+LCD+кнопки

Пн авг 29, 2022 17:04:56

Исправления:
ATMega8_PWM_LCD
Версия 0.8 - исправлено в conv_period_freq(): не было перерасчета T1_OCR (OCR1B) при F>F_CPU/100
Из-за этого коэффициент заполнения ШИМ сильно изменялся при изменении частоты и можно было получить даже 100 %.
(а должен слабо менятся, с учетом ограничений дискретности)

ATMega8_PWM_2CH_LCD - аналогичные исправления
Вложения
ATMega8_PWM_LCD_08_AS7.zip
(173.38 KiB) Скачиваний: 89
ATMega8_PWM_2CH_LCD_08_AS7.zip
(175.21 KiB) Скачиваний: 89

Re: ШИМ-генератор ATMega8+LCD+кнопки

Вт авг 30, 2022 04:20:05

Dimon456 писал(а):Меня больше такой вопрос интересует: Шаг 1Гц в диапазоне 1Гц...1.6МГц ?

На сколько я понял, - короткие нажатия на копку меняют "единицы", длительное удержание кнопки- сначала меняются единицы, (до десятков), потом десятки (до сотен) и потом сотни..
Up2805 писал(а):Блин, вот схему питания нужно указывать полюбасу, это куда важднее чем ваши эти резисторы для перепутывания входов/выходов. Без схемы питания перепутать питание гораздо более вероятно, чем если вдруг в готовом скомпилированном коде перепутаются байтики и перенастроится порт.

Питание каждый может сделать в силу своих знаний и возможности.
Поскольку выход в данной схеме- прямо из порта МК, то размах колебаний будет от "почти нуля" до "почти напряжения питания".

зы.. "просто рассуждения"-
Питание - 5 вольт, только учтите, что и индикатор должен быть на 5 вольт..
Простой вариант питания- трансформатор 2~4 ватта на 9 вольт, диодный мост, 7805, электролиты 1000 мкФ на входе и 470 мкф на выходе 7805, и пара керамики 0,1 мкФ параллельно электролитам.

Ещё более простой вариант: Купить на алишке маленький импульсный БП на 5 вольт, типа такого:
https://aliexpress.ru/item/4000922346849.html
https://aliexpress.ru/item/1005003399424110.html
https://aliexpress.ru/item/1005003536784001.html
https://aliexpress.ru/item/4000032354562.html

Re: ШИМ-генератор ATMega8+LCD+кнопки

Вт авг 30, 2022 08:42:50

АлександрЛ. Все верно. Стоит обратить внимание на расчеты в Excel. Дискретность 1 Гц возможна на частоте F<=sqrt(F_CPU)
Т.е. С кварцем 16 МГц дискретность 1 Гц до частоты 4кГц.
С кварцем 1 МГц дискретность 1 Гц до частоты 1кГц.

Также обратите внимание на зависимость максимальной частоты от напряжения питания (datasheet ATmega8A)
Figure 26-1. Maximum Frequency vs. Vcc
11.2.3 Brown-out Detection (сброс при понижении питания)
26.5 System and Reset Characteristics

Т.е. С кварцем 16 МГц минимум 4,5 В и с кварцем 8 МГц минимум 2,7 В.
Поэтому фъюз BODEN=0, BODLEVEL=0

Re: ШИМ-генератор ATMega8+LCD+кнопки

Вт авг 30, 2022 13:10:47

Собрал схему в протеусе (ваша не подошла, у меня протеус старенький)
Потыкал кнопочки..

Кстати, у вас прошивки только под кварц 16 МГц, или я чего-то не нашел?

И, как предложение- а у вас не было желания, хотя бы перестройку частоты сделать энкодером?
Кнопочками, даже с учётом того, что, при длительном удержании увеличивается шаг перестройки- всё равно как-то долго, хотя, может это протеус так тормозит.. :dont_know:
В некоторых случаях- такой генератор- полезная штука, у меня "функционально-подобная" конструкция есть, только там сам генератор на 555 таймере и частотомер-
Изображение

Re: ШИМ-генератор ATMega8+LCD+кнопки

Вт авг 30, 2022 21:13:13

Перекомпилировать под другую частоту не проблема.
Меняем #define F_CPU 16000000UL. Если частота <=8 МГц можно CKOPT=1 иначе CKOPT=0.
Протеус лучше работает, если частота F_CPU =1 Мгц. Частоту ШИМ лучше несколько кГц, при большей тоже тормозит:
#define F_CPU 1000000UL
#define FREQ_DEF 1000.
До энкодера руки не дошли.
Ответить