temich 0 January 14, 2016 Posted January 14, 2016 (edited) · Report post Здравствуйте! Необходимо на микроконтроллере Atmel AVR (имеется Atmega8, Atmega328P) реализовать 6-канальный генератор аналоговых сигналов. Просто "удерживать" 6 независимых аналоговых уровней от 0 до 10 вольт. Скорость смены значений не обязательно должна быть очень большой. Назначение - управление 6-канальным димером, который управляется 0-10 В. С микроконтроллерной частью все более менее понятно. Не понятно как реализовать цифро-аналоговое преобразование. Вот если один канал - тут все более менее ясно, существуют разные способы. А вот что делать если каналов 6? Edited January 14, 2016 by temich Quote Share this post Link to post Share on other sites More sharing options...
shooroop 0 January 14, 2016 Posted January 14, 2016 · Report post Обычно ЦАП можно выполнить с помощью ШИМ-сигнала и фильтра нижних частот. Quote Share this post Link to post Share on other sites More sharing options...
АлександрК 0 January 14, 2016 Posted January 14, 2016 · Report post По таймеру производится счет циклов, например, от 0 до 255 (8-разрядов для ШИМ). Далее, для каждого канала сравнивается текущее значение счетчика циклов с заданным для каждого канала. При совпадении устанавливается вывод порта в соответствующее состояние. При обнулении счетчика - установить выводы портов в исходное состояние. При тактовой частоте 8 МГц, например внутренний RC-генератор, частота прерываний 31250 Гц (для 8-разрядного таймера, f/1), частота импульсов на выводах портов 122 Гц. Если мало - поднять тактовую частоту. Quote Share this post Link to post Share on other sites More sharing options...
haker_fox 2 January 14, 2016 Posted January 14, 2016 · Report post А вот что делать если каналов 6? Вы не указали никаких технических характеристик сигналов, кроме амплитуды( Рекомендую найти генераторы DDS уважаемого Ридико Леонида Ивановича. У него около пяти замечательных конструкций. Очень прекрасные описания алгоритмов и схемотехники. Хотя, нет, понял, что вам требуется. Но статьи может быть всё равно окажутся полезными. Для вашего случая - ШИМ + усилитель (5 вольт от аврки к 10 вольтам) + ФНЧ. Quote Share this post Link to post Share on other sites More sharing options...
Onkel 0 January 14, 2016 Posted January 14, 2016 · Report post Здравствуйте! Необходимо на микроконтроллере Atmel AVR (имеется Atmega8, Atmega328P) реализовать 6-канальный генератор аналоговых сигналов. Просто "удерживать" 6 независимых аналоговых уровней от 0 до 10 вольт. Скорость смены значений не обязательно должна быть очень большой. Назначение - управление 6-канальным димером, который управляется 0-10 В. С микроконтроллерной частью все более менее понятно. Не понятно как реализовать цифро-аналоговое преобразование. Вот если один канал - тут все более менее ясно, существуют разные способы. А вот что делать если каналов 6? если диммер- то никаких проблем, делаем шим на 6 ногах по таймеру (диммеру вроде и 255 значений =0 должно хватить ), с частотой повторения герц этак 2-3к, с ног мк на 8канальный дарлингтон 2803 (если нужно быстрые есть 62083), выходы дарлингтонов через килоом на +10, потом фильтр второго порядка (хватает) и на диммер. Тут правда есть тонкость - нуль будет больше нуля. Чтобы был четко нуль, к ногам мк 6 мосфитов, работающих с ттл входными сигналами. Корпусов побольше но зато четко от 0 до 10 будет. После мосфитов опять же фильтр. Quote Share this post Link to post Share on other sites More sharing options...
Plain 6 January 15, 2016 Posted January 15, 2016 · Report post Atmega328P ... реализовать 6-канальный генератор аналоговых сигналов. Просто "удерживать" 6 независимых аналоговых уровней от 0 до 10 вольт. Уровни 6-ти выходов ШИМ трёх таймеров данного микроконтроллера преобразовать в 0...10 В одной CD4504, MC14504 и т.п., на выходах которой поставить 6 ФНЧ (RC-цепочек). Или мы должны были догадаться, что задача куда заковыристей, потому что доступных таймеров ноль? Quote Share this post Link to post Share on other sites More sharing options...
Сергей Борщ 5 January 15, 2016 Posted January 15, 2016 · Report post У меги 48/88/168/328 на борту 6 выходов ШИМ, можно использовать их. Если 8 бит разрядности недостаточно, разрядность можно увеличить програмно. У меги 8 только 3 выхода ШИМ, но поскольку требования к частоте невысокие - можно создать хоть двадцать независимых выходов, используя двоичную модуляцию и одно прерывание от таймера. Quote Share this post Link to post Share on other sites More sharing options...
DogPawlowa 0 January 15, 2016 Posted January 15, 2016 · Report post Если скорость установки вообще никакая, то интегратор, два входа управления + и -, разряжающие-заряжающие интегратор и к выходу интегратора подключить АЦП. Таймеры вообще не нужны. Quote Share this post Link to post Share on other sites More sharing options...
Plain 6 January 15, 2016 Posted January 15, 2016 · Report post Да, тоже вариант, но 6 ОУ — это в среднем 2 корпуса. И для управления интегратором достаточно одного выхода МК. Quote Share this post Link to post Share on other sites More sharing options...
DogPawlowa 0 January 16, 2016 Posted January 16, 2016 · Report post но 6 ОУ — это в среднем 2 корпуса. ОУ все равно нужны, на выходе 0-10В. Quote Share this post Link to post Share on other sites More sharing options...
temich 0 January 16, 2016 Posted January 16, 2016 (edited) · Report post Всем спасибо за ответы, будем прорабатывать. А может еще есть варианты микросхем, для которых на вход в цифровом виде подается "data", а на многоканальном выходе формируются аналоговые уровени? Edited January 16, 2016 by temich Quote Share this post Link to post Share on other sites More sharing options...
toweroff 0 January 16, 2016 Posted January 16, 2016 · Report post Всем спасибо за ответы, будем прорабатывать. А может еще есть варианты микросхем, для которых на вход в цифровом виде подается "data", а на многоканальном выходе формируются аналоговые уровени? этих-то как грязи вот, например https://www.maximintegrated.com/en/products...rs/MAX5715.html Quote Share this post Link to post Share on other sites More sharing options...
Plain 6 January 16, 2016 Posted January 16, 2016 · Report post ОУ все равно нужны, на выходе 0-10В. Нет, не нужны — как сказано выше, уровни МК преобразованы одним корпусом CD4504 и на 6-ти её выходах ровно 0 и 10 В, поскольку входное сопротивление диммируемых входов бесконечно, потому что не указано. Quote Share this post Link to post Share on other sites More sharing options...
Михась 0 January 17, 2016 Posted January 17, 2016 · Report post Всем спасибо за ответы, будем прорабатывать. А может еще есть варианты микросхем, для которых на вход в цифровом виде подается "data", а на многоканальном выходе формируются аналоговые уровени? Даже есть древняя http://www.nxp.com/documents/data_sheet/TDA8444.pdf Quote Share this post Link to post Share on other sites More sharing options...