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

Генератор синуса 4bit без ступенек на базе интегратора, Atmega32, 1Мгц RC, TDA2030, резисторы в пропорции R-3R-9R-27R. Выход около 300Гц, амплитуда около 0,8Вольт. Превращение инвертирующей схемы в интегратор: резистор обратной связи ОУ заменен кондером 4,7мкФ, с выхода ОУ на минус 0,47мкФ. Синус неправильный, при формировании длительностей не учтены длительности чтения+выполнения самих команд. Помеха на дне отрицательной полуволны искусственная, закодирована.

Мой интерес: проггер я никудышный, прошу помощи в написании кодов для этой схемы. В моей проге тупая запись в DDR и PORT.

Последние две фотки без кондера 4bit 81step ternary DAC (остальные весовые резисторы отключены)

post-41659-1272949399_thumb.jpg

post-41659-1272949427_thumb.jpg

post-41659-1272949479_thumb.jpg

sin4bit.zip

mega32_dac_5bit_243step_20mV_a.zip

post-41659-1272949860_thumb.jpg

post-41659-1272950505_thumb.jpg

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

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


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

Мой интерес: проггер я никудышный, прошу помощи в написании кодов для этой схемы. В моей проге тупая запись в DDR и PORT.

 

Достаточно только в PORT писать, а DDR настроить один раз при инициализации.

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


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

Так Вы Hi-Z состояние не получите и вернетесь к двоичке.

Использовать дискретные весовые резисторы и именно по схеме R-3R-9R-27R - это обязательное условие?

Почему бы не использовать ШИМ для генерации синуса? из схемы останется только интегратор или просто RC цепочка.

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


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

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

Хотелось попробовать Hi-Z состояние.

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


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

Одно важное замечание по сообщению #1. Простите, оплошал, поставил в обратку интегратора электролит. После замены на нормальный помехи в синусе должны уменьшиться, жалко, макетку раскидал, как соберу, перефоткаю.

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

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


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

Одно важное замечание по сообщению #1. Простите, оплошал, поставил в обратку интегратора электролит. После замены на нормальный помехи в синусе должны уменьшиться, жалко, макетку раскидал, как соберу, перефоткаю.

Огрехов кроме 82!=81 не вижу, но это мелочь... хотя не совсем, разница равна весу младшего разряда.

проверить без фильтрации высоких гармоник, может и тут эти искажения возникать.

проверить все резисторы, какая у них точность?

счет должен быть до 3^5=243

следит чтоб при бите DDR = 0 в PORT не записать 1 а то внутреннаяя подтяжка в AVR все исказит.

в фрагменте данных вроде все правильно. данные в DDR и PORT по таймеру, в прерывании?

ну и с электролитами разобраться. :)

Изменено пользователем e-serg

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


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

Без фильтации ОООчень страШШШШно. Настройка не то, что в R-2R матрице (впаял и забыл), повозиться придется (если нет возможности на kazus.ru ЦАП, DAC посмотреть скажите и я сюда выложу). У меня подстроечник в опорном, и на каждом разряде в макетке. Практически скорее придется после настройки подстроечниками набирать последовательный (параллельный) эквивалент из постоянных резисторов.

5 разрядный в подробностях я свом осциллом не вижу, хотя есть ступеньки которые не смог выровнять. Есть так же в планах несколько направлений дальнейших действий (попробовать использовать пины через один, посмотреть влияние периферии, при разных напругах питания, попробовать симметричную подтяжку из двух одинаковых резисторов в плюс и минус).

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

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


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

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

А самое веселое, если придется перепаивать после изменения температуры окружающей среды и температурного дрейфа сопротивлений открытых каналов.

Или у вас все в лаборатории при комнатной температуре будет стоять?

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


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

Согласен, мест тонких много.

82 не огрех, и 9,1 тоже, это кажется несбыточная мечта.

В моей проге таймер программный.

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

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


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

82 не огрех, и 9,1 тоже.

Младший разряд там где сопротивление выше. Старший разряд там где 1кОм.

Поэтому 82кОм это +1,2% пятого младшего разряда, а 9,1кОм это +1,1% для третьего разряда, но для пятиразрядного это уже 9* 1,1=9,9%.

Не забываем, токи весовых резисторов суммируются в точке с нулевым входным сопротивлением (инвертирующая схема ОУ)

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

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


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

Уважаемые форумчане, сложно разве?

Хотелось попробовать R-3R ЦАП ? - да, попробовали. Интересно ? - да, интересно, но с практической точки зрения:

- 8-бит (256 значений) ШИМ не хуже 5-бит троичного ЦАП (243 значения)

- нет весовых резисторов и нет необходимости их подбирать

- схема проще

- программа проще

- ресурсов МК расходуется меньше, т.к. ШИМ формируется таймером аппаратно

- легко можно поднять качество сигнала, перейдя на 10- или 16-бит ШИМ, т.к. выходная частота низкая - 300Гц.

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


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

- 16-бит ШИМ ЦАП хуже 1-бит интегрирующего троичного ЦАП на 1 резисторе и 1 кондере т.к. в первом всегда за увеличением напряжения следует уменьшение, от того и пульсации, во втором после любого изменения можно хранить напряжение Zом

post-41659-1274374257_thumb.jpg

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

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


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

- 16-бит ШИМ ЦАП хуже 1-бит интегрирующего троичного ЦАП на 1 резисторе и 1 кондере т.к. в первом всегда за увеличением напряжения следует уменьшение, от того и пульсации, во втором после любого изменения можно хранить напряжение Zом

"Матан" говорит что пульсации в обоих нарисованных случаях будут одинаковыми с точностью до константы 2 =). Повышая частоту ШИМа в 2 раза пульсации будут уже одинаковыми.

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


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

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

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

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

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

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

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

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

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

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