Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков. |
05.07.2013, 11:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,572
Сказал спасибо: 701
Сказали Спасибо 4,336 раз(а) в 1,987 сообщении(ях)
|
О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
То, что АЦП может быть реализован без специализированных узлов, известно давно. Это особенно важно для микроконтроллеров и FPGA не оснащенных оными. Ребята из Parallax достигли в этом небывалых успехов, умудрившись оцифровать подручными средствами NTSC видеосигнал.
http://www.parallaxsemiconductor.com/an008
http://forums.parallax.com/showthrea...highlight=NTSC
Также, в сети достаточно полутеоретической информации о реализации этого подхода на FPGA, например: http://www.colognechip.com/asic/ip-c...tion_socip.pdf или
http://www.eetimes.com/document.asp?doc_id=1278518
Упомянутый в последней ссылке Stellamar даже продает кит для этих дел.
Однако, ни одного описания доступной для повторения законченной конструкции АЦП на FPGA(типа как у Parallax'a), в сети нет.
Да, собсно, че там такого? Модулятор на триггере и фильтр с дециматором. Вот тут то и собака зарыта. Если с модулятором все более менее ясно, то с фильтрами и дециматорами все ох как запущено в глухую математическую мань.
Т.е. я не встретил простого и на пальцах объяснения, как из однобитного потока данных получается N-разрядный двоичный код.
Пришлось делать самому. Как всегда, сначала Протеус.
Схема 1. МоДем. Как видно все работает в точном соответствии с многочисленными теориями.
Примитив VSWITCH добавлен для удобства поиграть с пороговыми свойствами логического элемента, а так можно и прямо на вход триггера, только обратную связь переключить на -Q.
По сути дела сигнал преобразуется в 1-битный ШИМ и восстанавливается обратно ФНЧ. Осталось преобразовать его в N-разрядный.
Схема 2. Децимация.
Интересна история происхождения термина:
http://ru.wikipedia.org/wiki/%C4%E5%...E7%E0%ED%E8%E5)
Из того что написано про децимацию и фильтрацию, я ничего не понял, но руководствуясь здравым смыслом, нужно просто вычислить коэффициент заполнения 1-битного потока, т.е. его скважность.
Итак, Формирователь периода образует счетный интервал. По фронту счетного интервала обнуляется измеритель скважности, а по его спаду данные с выхода измерителя запоминаются в защелке. Сам измеритель работает просто:
*SCRIPT PROGRAM PWMeter
PIN Clk, Res, D, Q[0..7]
INT C1
INT C
IF (Clk = POSEDGE) OR (Res = POSEDGE)
IF Res = 1
Q = 0
C1 = 0
C = 0
ELSE
IF D C1 = C1 + 1
C = C + 1
Q = (256*C1)/C
ENDIF
ENDIF
*ENDSCRIPT
Т.е. С1 считает только во время единичного значения на D, а С считает весь период. Далее подгоняем под нашу в данном случае 8-битную шкалу.
В результате, имеем весьма предсказуемые значения: в середине диапазона 7Fh - половина шкалы. Динамический диапазон F9h-05h = 244d.
Продолжение следует...
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
Последний раз редактировалось Kabron; 06.07.2013 в 11:26.
|
|
|
|
06.07.2013, 10:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,572
Сказал спасибо: 701
Сказали Спасибо 4,336 раз(а) в 1,987 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
Продолжаем представленье...
От теории к практике.
Надо все это реализовать в ПЛИСе. Поскольку я большой поклонник проекта Marsohod(marsohod.ru), у меня под рукой оказалась марсоходоподобная платка: ( http://www.wvshare.com/column/ALTERA...htm#OpenEP3C16)
на ней и будет продолжение, хотя не вижу препятствий для любых других ПЛИС. По окончании сего многотруда попробую для MAX II и Cyclone IV.
Схема 3.
Не пугайтесь, она не такая сложная. Думал сначала выкладывать по частям, но как то не получается поделить.
Mypll2 плл-ный синтезатор частот из набора Мегафункций Квартуса. Честно выдран из проекта Марсоход. Настраивается интуитивно. На входе 50МГц(у марсохода 100), на выходе 5 - для АЦП, 50 для дециматора и пр. и 450 МГц - об этом позже.
Первый триггер - модулятор на его вход через резистор 20к подается сигнал. Выход через 20к соединен со входом. И со входа на землю 330pF. Второй триггер для поиграться с восстановлением оцифрованного сигнала. Те же 20к и 330пик на землю с прямого выхода. Третий триггер - формирователь измерительного интервала, в общем все как на схеме2. Выходной 8-битный код получается после защелки на шине number[7..0]. Дополнительные элементы:
sel4 - дешифратор 16-бит в 4х7 сегментов LED и LED[3..0]. Это из комплекта прибамбасов прилагаемых к киту. Чисто для цветомузыки и проверить диапазон преобразования. DAC8 дельта-сигма ЦАП единственная вразумительная Delta-Sigma конструкция, найденная в сети. Разработка Xilinx( http://www.xilinx.com/support/docume...es/xapp154.pdf) подогнанная под Альтеру. Вставлен для окончательной проверки чИстоты преобразования. На выход тоже цепочка из 20к и 330пик, можно и без пик, емкости осциллографа достаточно.
Последний тоже необязательный но на мой взгляд вкусный элемент DDS21.
Тут нужно лирически отстпупить. Изучая сайт марсохода, набрел на проект FM-передатчика на ПЛИС, переделанный из такого же проекта для Raspberry Pi. http://www.marsohod.org/index.php/pr...d2/246-fmradio
Идея понравилась, и захотелось прицепить к своему проекту. А вот реализация подверглась сильной внутренней критике:
1. Для меня слишком сложный и корявый способ реализации частотной модуляции с помощью переменного счетчика.
2. Способ подачи сигнала ИМХО сработал только у автора. Ибо, у каждого терминального эмулятора свой интервал между символами(не битами в байте), поэтому о стабильном потоке 230400 бод речи быть не может, что и подтвердилось на практике. Да и не понятно как автор смог использовать для этого TeraTerm, ведь у него нет такой скорости. Единственный инвариантный способ посылки такого потока данных ИМХО консольный copy file.wav COM1: Но проверять уже было лень.
Поэтому для FM-модулятора я использовал добрый и старый DDS своей конструкции. Почему своей? Потому что, кроме как у себя не встречал. То что есть в сети уж очень непонятно.
Мой DDS очень прост, судите сами:
Цитата:
|
module DDS21(
input wire clk,
input wire [7:0]Fin,
output wire C0
);
reg [20:0]T0;
always @(posedge clk)
T0 ‹= T0 + 419430 + Fin;
assign C0 = T0[20];
endmodule
|
но функционирует на все 100.
419430 это константа для частоты 90МГц, Fin ее увеличивает в пределах 50кГц. Не совсем комильфо, надо бы симметрично, но это кто захочет без проблем сделает.
Картинки:
Квартус,
Сигнал на выходе DAC8 - желтый,
Передаваемый сигнал синус синий, на выходе приемника - желтый
Тоже треугольник
Тоже пила
Тоже меандр
Как это выглядит
Вот собсно и все. Можно слать комменты.
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
Последний раз редактировалось Kabron; 06.07.2013 в 11:26.
|
|
|
|
06.07.2013, 11:30
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,996
Сказал спасибо: 2,556
Сказали Спасибо 11,872 раз(а) в 5,950 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
Kabron, Спасибо за интересную тему.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
06.07.2013, 19:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,978
Сказал спасибо: 3,005
Сказали Спасибо 3,182 раз(а) в 2,160 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
|
|
|
|
06.07.2013, 19:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,572
Сказал спасибо: 701
Сказали Спасибо 4,336 раз(а) в 1,987 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
Вот это как раз в подтверждение моих слов:
Сообщение от Kabron
|
Однако, ни одного описания доступной для повторения законченной конструкции АЦП на FPGA(типа как у Parallax'a), в сети нет.
|
Все это виделось и не раз.
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
|
|
|
|
07.07.2013, 02:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
А мне нравится 1107ПВ2...
__________________
оставил форум, защищая свою честь и достоинство.
|
|
|
|
07.07.2013, 08:59
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,996
Сказал спасибо: 2,556
Сказали Спасибо 11,872 раз(а) в 5,950 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
Сообщение от кустомер
|
А мне нравится 1107ПВ2...
|
Так это ж, кому - поп, кому - попадья, а мне - попова дочка...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
07.07.2013, 09:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
"Молодой ишшо!" (с)
А серьезно, - на 2 кГц таааак завалено? неее, видеосигнал этим не оцифруешь. Я думаю что это все-таки изврат... к чему, если существует куча чипов нормальных АЦП?
Хотя, с другой стороны, я и сам люблю поизвращаться)))) Чел достиг результата! И это уже само по себе - гуд!
__________________
оставил форум, защищая свою честь и достоинство.
Последний раз редактировалось кустомер; 07.07.2013 в 09:38.
|
|
|
|
07.07.2013, 10:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,572
Сказал спасибо: 701
Сказали Спасибо 4,336 раз(а) в 1,987 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
Сообщение от кустомер
|
"Молодой ишшо!" (с)
А серьезно, - на 2 кГц таааак завалено? неее, видеосигнал этим не оцифруешь. Я думаю что это все-таки изврат... к чему, если существует куча чипов нормальных АЦП?
Хотя, с другой стороны, я и сам люблю поизвращаться)))) Чел достиг результата! И это уже само по себе - гуд!
|
Я в своем примере не "выжимал" и не вылизывал. Завалено после всего тракта АЦП - передатчик - приемник. Видео (причем с цветом) цифруется на 80МГц. Ссылка дадена. Там тоже все с иллюстрациями.
ЗЫ. Я тоже пишу для тех кому не пох...
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
Последний раз редактировалось Kabron; 07.07.2013 в 10:05.
|
|
|
|
07.07.2013, 11:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
|
Re: О цифровой Delta-Sigma, FM-модуляторе на FPGA и пр.
Если я правильно понял, Вы на измерительном промежутке подсчитываете количество импульсов получившейся ШИМ?
А можно подсчитывать длительность каждого импульса. Тогда скорость преобразования повысится в 256 раз.
Но счетчик на такое нужен очень быстрый.
__________________
оставил форум, защищая свою честь и достоинство.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Sigma delta modulator
|
epp |
Электроника - это просто |
0 |
11.01.2005 12:45 |
Часовой пояс GMT +4, время: 18:17.
|
|