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.
А вы не ошибайтесь, вы же программист, а остальные - просто пользователи. Кстати, на практике редко когда моментально сгорает. Ток значительно ограничивается внутренней структурой выхода.
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Это правильно, мало ли к чему могут дотронутся кнопки во время отладки. Я бы понял, что не ставят резисторы в массовом производстве из за экономии, но для себя несколько центов погоды не сделают. Да и если надо поменять местами выводы, дорожки не придется резать.
Да ну. Это ж насколько нужно быть невнимательным и бестолковым погромистом, чтобы "случайно" входы (inputs) настроить как выходы (outputs). И даже если программист совсем дундук тупоголовый и наляпал такой хрени и запрогал железный МК, то кратковременное нажатие посаженной на выход кнопки обычно к сгоранию не приводит. А если и сгорит - то это урок для погромиста - будь внимателен, смотри че творишь. И тем более, отладка в Протеусе настолько безопасна, что даже в мониторе пиксели не сгорят от прямого кз в виртуальной схеме.
Что вы пристали к человеку с какими-то резисторами, хотите ставьте, хотите нет, что это изменит? Меня больше такой вопрос интересует: Шаг 1Гц в диапазоне 1Гц...1.6МГц ?
P.S. В связи с наличием дешевых ШИМ модулей на Али полезность моего проекта не высока, но если кому-то надо, он начнет не с нуля. Тот же DDS на ATMega16 тоже вещь так-себе.
Добавлено after 10 minutes 31 second: Dimon456. Забыл отправить
Ну раз уж так обсыкаться от возможности невозможного, тогда расскажите, почему не поставили конденсаторы параллельно кнопкам? По всем правилам они должны присутствовать для подавления случайных наводимых импульсов и для минимизации эффекта дребезга контактов кнопок. Чо уж там, делать так делать! ШИМ-дегенератор - настолько ответственный узел, что надо приложить максимум серьезности и перестраховочности.
Еще бы и схему питания с кучей защит привели. Или хотябы указали, что питать от USB компа. А то поди догадайся, чем кормить сию приблуду. Ну а надежность и сбоебезопасность кода проверяли на соответствие MISRA? Юнит-тесты проводили?
Последний раз редактировалось Up2805 Сб авг 27, 2022 20:35:29, всего редактировалось 1 раз.
Добавлено after 5 minutes 42 seconds: Up2805. Давайте закрывать уже тему с резисторами . Возможно не стоило их рисовать в протеусе. И ежу понятно, что это не полная схема. Все дальнейшие апгрейды и полную схему не обещаю.
Да забыли уже про резисторы. Расскажите теперь про питание схемы. От "Кроны" можна? А от Li-Ion акума? А от батарейки пальчиковой? Три или четыре их ставить? Или только в USB компа? А напрямую можна или надо чето там мутить еще?
Блин, вот схему питания нужно указывать полюбасу, это куда важднее чем ваши эти резисторы для перепутывания входов/выходов. Без схемы питания перепутать питание гораздо более вероятно, чем если вдруг в готовом скомпилированном коде перепутаются байтики и перенастроится порт.
Исправления: ATMega8_PWM_LCD Версия 0.8 - исправлено в conv_period_freq(): не было перерасчета T1_OCR (OCR1B) при F>F_CPU/100 Из-за этого коэффициент заполнения ШИМ сильно изменялся при изменении частоты и можно было получить даже 100 %. (а должен слабо менятся, с учетом ограничений дискретности)
Меня больше такой вопрос интересует: Шаг 1Гц в диапазоне 1Гц...1.6МГц ?
На сколько я понял, - короткие нажатия на копку меняют "единицы", длительное удержание кнопки- сначала меняются единицы, (до десятков), потом десятки (до сотен) и потом сотни..
Up2805 писал(а):
Блин, вот схему питания нужно указывать полюбасу, это куда важднее чем ваши эти резисторы для перепутывания входов/выходов. Без схемы питания перепутать питание гораздо более вероятно, чем если вдруг в готовом скомпилированном коде перепутаются байтики и перенастроится порт.
Питание каждый может сделать в силу своих знаний и возможности. Поскольку выход в данной схеме- прямо из порта МК, то размах колебаний будет от "почти нуля" до "почти напряжения питания".
зы.. "просто рассуждения"- Питание - 5 вольт, только учтите, что и индикатор должен быть на 5 вольт.. Простой вариант питания- трансформатор 2~4 ватта на 9 вольт, диодный мост, 7805, электролиты 1000 мкФ на входе и 470 мкф на выходе 7805, и пара керамики 0,1 мкФ параллельно электролитам.
АлександрЛ. Все верно. Стоит обратить внимание на расчеты в 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
Собрал схему в протеусе (ваша не подошла, у меня протеус старенький) Потыкал кнопочки..
Кстати, у вас прошивки только под кварц 16 МГц, или я чего-то не нашел?
И, как предложение- а у вас не было желания, хотя бы перестройку частоты сделать энкодером? Кнопочками, даже с учётом того, что, при длительном удержании увеличивается шаг перестройки- всё равно как-то долго, хотя, может это протеус так тормозит.. В некоторых случаях- такой генератор- полезная штука, у меня "функционально-подобная" конструкция есть, только там сам генератор на 555 таймере и частотомер-
Перекомпилировать под другую частоту не проблема. Меняем #define F_CPU 16000000UL. Если частота <=8 МГц можно CKOPT=1 иначе CKOPT=0. Протеус лучше работает, если частота F_CPU =1 Мгц. Частоту ШИМ лучше несколько кГц, при большей тоже тормозит: #define F_CPU 1000000UL #define FREQ_DEF 1000. До энкодера руки не дошли.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения