Свежие обсуждения
Измерения

DDS-генератор на AVR - нужна помощь

1 166 189

Tadas: Если в системе имеется несколько ведомых, то на каждый из них заводится отдельная линия выбора устройства от мастера. Это не обязательно. Первый байт пакета может быть адресом устройства. Или, как в Аркнете, или в GSM, каждому свой таймслот. А в зависимости от приоритета его размер может быть разным. Способов несколько...

 

Для explorer.

GM: Никакой меги16, две (или три, если кому надо) меги88, 12 кнопок для ввода параметров (факультативно), валкодер (факультативно), кварц 20МГц, стандартный дисплей, фильтр, усилитель, аттенюатор 0-60 дБ (шаг 0.1-0.5 дБ), что ещё забыл?

Я вижу, Вы уже почти все порты управляющего МК задействовали, а как быть с аттенюатором?
Или мы собираемся менять уровень от нуля до -60дБ с шагом 0.1-0.5дБ тумблерами да галетниками?..

 

DWD: Я вижу, Вы уже почти все порты управляющего МК задействовали, а как быть с аттенюатором?
Или мы собираемся "тумблерами-галетниками" менять уровень от нуля до -60дБ с шагом 0.1-0.5дБ?..

Я сам уже ничего не понимаю. Изложите Ваше видение обвязки мастера. Я же честно постов 50 назад написал, что во внутри процессорном фарше разбираюсь поверхностно. Мне трудно в голове все представить. Вот давайте Все и поможем мне советом. А уж я будьте уверены все в лучшем виде и отрисую.
Вот еще вариант вдогонку:

 

explorer, а я Вам ещё те же 50 постов назад говорил - не торопитесь рисовать схему на то, на что даже алгоритма не существует...
У Вас не существует. Но он есть у GM, так как именно он будет писать прогу. По этому он должен сначала для себя самого определиться, что и куда будет выводиться... блин, скоро стихами заговорю...

Подумайте сами. Ведь, нарисовав схему и "заставив" программиста ваять код, Вы загоняете его в довольно жёсткие рамки внутрипрограммных связей, заставляете писать код, оптимизированный не программно, а для разводки пп.

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

Хотя, судя по отсутствию комментариев GM на Ваши схемы, видимо он и не собирается привязываться к Вашей разводке.

 

explorer: и кинуть одну на SS 1-го ведомого, а вторую на SS 2-го, так что ли ???
Именно так. Vlad_Petr предложил вариант с логической адрессацией SPI ведомых, но в нашем случае ведомый сильно загружен основной задачей и распознавать адресса ему может оказаться в напряг. Тут товарищ 000 вынесет вердикт.

explorer: А разве по I2C выбор камня нельзя реализовать ???
В I2C это заложено изначально, но тут опять же слово за товарищем GM.
Это был бы самый экономичный вариант по связи ведущий-ведомый.
Хотя, еще можно изобрести вообще однопроводный интерфейс.

 

explorer: Вот еще вариант вдогонку:

Вижу, Вам больше нравится усилитель базовой версии?..
Я же считаю, нужно ставить вот этот.

Вопрос для всех по поводу аттенюатора.
На сколько я понимаю, он будет электронным?

В таком случае между выходами МК и входами ЦАП нужно поставить вот такую схему.

На её вход "Vref+" подаём напряжение с выхода любого дополнительно ЦАП (даже очень медленного). На вход "Vref-" подаём напряжение с этого же ЦАП, но через инвертор на ОУ.
Двоичный код этого дополнительного ЦАП однозначно будет определять амплитуду выходного напряжения генератора, а сигнал будет симметричным по отношению к нулю с максимальной амплитудой 5В.
Например, 8-ми разрядный ЦАП сможет регулировать уровень сигнала генератора с шагом 0.25дБ от нуля до -0.25*256=-64дБ.

Для сдвига уровня можно один из входов "Vref+" или "Vref-" соединить с корпусом, а на другом - регулировать напряжение дополнительным ЦАП. Получим возможность плавно сдвигать сигнал как полностью в плюс (0...+5В), так и полностью в минус (0...-5В).

Можно на каждый вход "Vref+" и "Vref-" подключить по отдельному дополнительному ЦАП и кодами, чисто программным путём плавно менять амплитуду и смещение как по отдельности, так и одновременно.

 

DWD: Например, 8-ми разрядный ЦАП сможет регулировать уровень сигнала генератора с шагом 0.25дБ от нуля до -0.25*256=-64дБ. Если ЦАПы имеют на выходе ОУ (преобр. тока в напр.), то при малых уровнях станут вылезать шумы этих ОУ. Уровень выхода не требуется, в большинстве случаев, менять быстро. ИМХО идеальным является применение миниатюрных релюшек в известной схеме ряда резистивных звеньев. Релюшками управлять от отдельного контроллера. Этому контроллеру, по последовательному каналу, задавать необходимый код уровня выхода..
Преимущества: независимость (в данном приложении) от частоты, начиная с долей герца и до нескольких мегагерц.

 

DWD: Хотя, судя по отсутствию комментариев GM на Ваши схемы, видимо он и не собирается привязываться к Вашей разводке.

DWD: Я же считаю, нужно ставить вот этот. Вопрос для всех по поводу аттенюатора. На сколько я понимаю, он будет электронным?
В таком случае между выходами МК и входами ЦАП нужно поставить вот такую схему.

1) Предложения Всех Участников обсуждения естественно будут мною приняты к сведению и реализации в схематике.

2)Нет Вы все неправильно поняли, я и не собирался GM (НАШЕГО кодоизобретателя) вгонять в какие-то рамки. Просто кажется (уже уже крещусь), что моя телега впереди лошади будет держать ВСЕХ в тонусе. И заметьте мы ведь не какие-то отвлеченные темы обсуждаем, а конкретные прикладные по нашей железяке, а это уже хорошо для сосредоточения внимания на теме. И я надеюсь маэстро GM видит НАШЕ рвение и кое-какие ходы примет к сведению и возможно реализации в своей версии. Ради этого все и делается.

 

DWD: Вопрос для всех по поводу аттенюатора.
Если поступиться народностью, то можно попробовать что нибудь из этого:
http://www.psemi.com/content/products/DSAs/dsa_50-ohm.html
Правда, нижнюю частоту они декларируют довольно высокую, но судя по структурной схеме оно должно работать и у нас.
Может с некоторым уменьшением точности и линейности.

 

2explorer Не забудьте поставить 3 защитных диода на клаву.

2everybody Почти всё расписал для мастера, закончу - покажу. В принципе должно остаться 7 ног под аттенюатор, не получится - поставим регистр на расширение ног.

Я не отвечаю пока, но внимательно читаю. Потерпите пару дней, покажу схему и, возможно, выкачу новый вариант генератора с учётом новейших реалий. К сожалению, у меня нет под рукой 88-й меги, так что проверить в железе не смогу.