Перейти к содержанию
    

Генерация аналоговых сигналов на AVR

Здравствуйте! Необходимо на микроконтроллере Atmel AVR (имеется Atmega8, Atmega328P) реализовать 6-канальный генератор аналоговых сигналов. Просто "удерживать" 6 независимых аналоговых уровней от 0 до 10 вольт. Скорость смены значений не обязательно должна быть очень большой. Назначение - управление 6-канальным димером, который управляется 0-10 В.

С микроконтроллерной частью все более менее понятно. Не понятно как реализовать цифро-аналоговое преобразование. Вот если один канал - тут все более менее ясно, существуют разные способы. А вот что делать если каналов 6?

Изменено пользователем temich

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обычно ЦАП можно выполнить с помощью ШИМ-сигнала и фильтра нижних частот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По таймеру производится счет циклов, например, от 0 до 255 (8-разрядов для ШИМ). Далее, для каждого канала сравнивается текущее значение счетчика циклов с заданным для каждого канала. При совпадении устанавливается вывод порта в соответствующее состояние. При обнулении счетчика - установить выводы портов в исходное состояние.

При тактовой частоте 8 МГц, например внутренний RC-генератор, частота прерываний 31250 Гц (для 8-разрядного таймера, f/1), частота импульсов на выводах портов 122 Гц. Если мало - поднять тактовую частоту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот что делать если каналов 6?

Вы не указали никаких технических характеристик сигналов, кроме амплитуды(

 

Рекомендую найти генераторы DDS уважаемого Ридико Леонида Ивановича. У него около пяти замечательных конструкций. Очень прекрасные описания алгоритмов и схемотехники.

 

Хотя, нет, понял, что вам требуется. Но статьи может быть всё равно окажутся полезными. Для вашего случая - ШИМ + усилитель (5 вольт от аврки к 10 вольтам) + ФНЧ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! Необходимо на микроконтроллере Atmel AVR (имеется Atmega8, Atmega328P) реализовать 6-канальный генератор аналоговых сигналов. Просто "удерживать" 6 независимых аналоговых уровней от 0 до 10 вольт. Скорость смены значений не обязательно должна быть очень большой. Назначение - управление 6-канальным димером, который управляется 0-10 В.

С микроконтроллерной частью все более менее понятно. Не понятно как реализовать цифро-аналоговое преобразование. Вот если один канал - тут все более менее ясно, существуют разные способы. А вот что делать если каналов 6?

если диммер- то никаких проблем, делаем шим на 6 ногах по таймеру (диммеру вроде и 255 значений =0 должно хватить ), с частотой повторения герц этак 2-3к, с ног мк на 8канальный дарлингтон 2803 (если нужно быстрые есть 62083), выходы дарлингтонов через килоом на +10, потом фильтр второго порядка (хватает) и на диммер. Тут правда есть тонкость - нуль будет больше нуля. Чтобы был четко нуль, к ногам мк 6 мосфитов, работающих с ттл входными сигналами. Корпусов побольше но зато четко от 0 до 10 будет. После мосфитов опять же фильтр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Atmega328P ... реализовать 6-канальный генератор аналоговых сигналов. Просто "удерживать" 6 независимых аналоговых уровней от 0 до 10 вольт.

Уровни 6-ти выходов ШИМ трёх таймеров данного микроконтроллера преобразовать в 0...10 В одной CD4504, MC14504 и т.п., на выходах которой поставить 6 ФНЧ (RC-цепочек).

 

Или мы должны были догадаться, что задача куда заковыристей, потому что доступных таймеров ноль?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меги 48/88/168/328 на борту 6 выходов ШИМ, можно использовать их. Если 8 бит разрядности недостаточно, разрядность можно увеличить програмно.

 

У меги 8 только 3 выхода ШИМ, но поскольку требования к частоте невысокие - можно создать хоть двадцать независимых выходов, используя двоичную модуляцию и одно прерывание от таймера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если скорость установки вообще никакая, то интегратор, два входа управления + и -, разряжающие-заряжающие интегратор и к выходу интегратора подключить АЦП.

Таймеры вообще не нужны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, тоже вариант, но 6 ОУ — это в среднем 2 корпуса. И для управления интегратором достаточно одного выхода МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо за ответы, будем прорабатывать.

А может еще есть варианты микросхем, для которых на вход в цифровом виде подается "data", а на многоканальном выходе формируются аналоговые уровени?

Изменено пользователем temich

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо за ответы, будем прорабатывать.

А может еще есть варианты микросхем, для которых на вход в цифровом виде подается "data", а на многоканальном выходе формируются аналоговые уровени?

этих-то как грязи

вот, например

https://www.maximintegrated.com/en/products...rs/MAX5715.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ОУ все равно нужны, на выходе 0-10В.

Нет, не нужны — как сказано выше, уровни МК преобразованы одним корпусом CD4504 и на 6-ти её выходах ровно 0 и 10 В, поскольку входное сопротивление диммируемых входов бесконечно, потому что не указано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем спасибо за ответы, будем прорабатывать.

А может еще есть варианты микросхем, для которых на вход в цифровом виде подается "data", а на многоканальном выходе формируются аналоговые уровени?

 

Даже есть древняя

http://www.nxp.com/documents/data_sheet/TDA8444.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...