Страница 65 из 82 Первая ... 55636465666775 ... Последняя
Показано с 1,281 по 1,300 из 1632

Тема: ЦАП своими руками (четвертая ветка)

  1. #1 Показать/скрыть первое сообщение.
    Регистрация не подтверждена
    Автор темы
    Аватар для Kompros
    Регистрация
    11.03.2003
    Сообщений
    1,405

    По умолчанию ЦАП своими руками (четвертая ветка)

    И сново здравствуйте!

    Предистория:
    Первая ветка и ее окончание
    Вторая ветка и ее окончание
    Третья ветка и ее окончание

    Полезности:
    10.pdf - читать обязательно!
    Последний раз редактировалось Konkere; 19.02.2012 в 01:15. Причина: Ссылки поправил.

  2. #1281
    Новичок
    Регистрация
    29.03.2010
    Адрес
    Таганрог
    Возраст
    42
    Сообщений
    48

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Цитата Сообщение от Lexus Посмотреть сообщение
    В этом и заключается плюс дополнительного до двух кода, а также смещенного кода. Для математики это недопустимо, а для ЦАП это всего лишь смещает шкалу на 1 LSB, то есть приводит к смещению постоянного тока на выходе соответствующей величиной. Если это считаете важным, можно сделать дополнение до двух, но ресурсов ПЛИС это затребует очень немалых.
    Особенность этой ситуации в том, что используется моновключение AD1853 по следующей схеме с соответствующим запараллеливанием токовых выходов:
    Нажмите на изображение для увеличения. 

Название:	mono_app_cir.PNG 
Просмотров:	260 
Размер:	20.8 Кб 
ID:	108626

    В итоге получаем что один канал со смещенной шкалой в 1LSB, а другой нет, насколько это критично, я пока проверить не могу, просто хотел обратить на это внимание. По ресурсам, у меня получилось всего 19 макроячеек на эту функцию и все разделение помещалось в 128.

  3. #1282
    Старый знакомый Аватар для Lexus
    Регистрация
    28.08.2005
    Адрес
    г. Апатиты Мурманская область
    Возраст
    44
    Сообщений
    759

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    19 макроячеек на дополнение до двух? А каким образом Вы прибавление единицы к сэмплу делаете?

  4. #1283
    Старый знакомый Аватар для eclipsevl
    Регистрация
    31.01.2009
    Адрес
    Гаага
    Возраст
    31
    Сообщений
    516

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    I{oT, Я реализовывал формирование потока данных для 1853 следующим образом: по перепаду WCK сдвиговый регистр (24 бит) начинает принимать данные с SDATA, по второму перепаду WCK данные из первого регистра записываются во второй с помощью параллельной загрузки, цикл повторяется. Одновременно с этим второй регистр(24 бит, каждый для своего канала) начинает отправлять принятые данные в 1853. Одновременно выезжающие биты из регистра записываются в него же, но уже инвертированные и снова отправляются в 1853. Если интересно, я могу восстановить проект в квартусе.

  5. #1284
    Завсегдатай Аватар для yan
    Регистрация
    21.12.2004
    Адрес
    Чебоксары
    Возраст
    47
    Сообщений
    1,266

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    eclipsevl, а каким образом организована обработка 16/24 битных данных? На одну микросхему идут 16 бит с младшими нулями, а на другую - с младшими единицами, то есть уже 24 бит?

  6. #1285
    Старый знакомый Аватар для eclipsevl
    Регистрация
    31.01.2009
    Адрес
    Гаага
    Возраст
    31
    Сообщений
    516

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Цитата Сообщение от yan Посмотреть сообщение
    На одну микросхему идут 16 бит с младшими нулями, а на другую - с младшими единицами, то есть уже 24 бит?
    В данном случае не на микросхемы, а на разные каналы в одной микросхеме. Да, и с точки зрения логики все верно, инвертировать необходимо все значащие биты.

  7. #1286
    Новичок
    Регистрация
    29.03.2010
    Адрес
    Таганрог
    Возраст
    42
    Сообщений
    48

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Цитата Сообщение от Lexus Посмотреть сообщение
    19 макроячеек на дополнение до двух? А каким образом Вы прибавление единицы к сэмплу делаете?
    Я взял за основу функции "tc", "inv", "incr_vec" отсюда http://www.vlsiip.com/intel/fun_pkg.vhdl. Переработал их под свои нужды, развернул все циклы, в итоге получился такой монстрик на 24битовый семпл:

    twos_comp.txt
    Последний раз редактировалось Aclii; 27.12.2010 в 17:35.

  8. #1287
    I{oT
    Гость

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    eclipsev, Было бы интересно взглянуть, kotov.irk@gmail.com

  9. #1288
    Старый знакомый Аватар для eclipsevl
    Регистрация
    31.01.2009
    Адрес
    Гаага
    Возраст
    31
    Сообщений
    516

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Как только восстановлю, отправлю.

  10. #1289
    Старый знакомый Аватар для Lexus
    Регистрация
    28.08.2005
    Адрес
    г. Апатиты Мурманская область
    Возраст
    44
    Сообщений
    759

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Цитата Сообщение от yan Посмотреть сообщение
    На одну микросхему идут 16 бит с младшими нулями, а на другую - с младшими единицами, то есть уже 24 бит?
    Так это безразлично. Ведь ИМС принимает данные, исходя из конкретного установленного формата. Если, например, она ждет I2S 16 Bit, то после перепада LRCK и последующего такта BCLK, ее интересуют только 16 бит данных, а остальное игнорируется.

    eclipsevl, а сюда можете проект выложить?

    Цитата Сообщение от Aclii Посмотреть сообщение
    в итоге получился такой монстрик на 24битовый семпл
    Спасибо! Посмотрю код. Только с VHDL у меня взаимное непонимание: я не понимаю, как на нем описывать конкретные логические функции, а VHDL не понимает, что мне от него нужно.

  11. #1290
    Старый знакомый Аватар для Lexus
    Регистрация
    28.08.2005
    Адрес
    г. Апатиты Мурманская область
    Возраст
    44
    Сообщений
    759

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Aclii, у Вас нет кода, где присоединена эта библиотека? Никак не получается ее использовать.

  12. #1291
    Новичок
    Регистрация
    29.03.2010
    Адрес
    Таганрог
    Возраст
    42
    Сообщений
    48

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Цитата Сообщение от Lexus Посмотреть сообщение
    Aclii, у Вас нет кода, где присоединена эта библиотека? Никак не получается ее использовать.
    Если вы по вложенный "twos_comp.txt", то попробуйте прописать в коде подключение заголовочных файлов, должно помочь.
    Код:
    library ieee;
    use ieee.std_logic_1164.all;
    use work.bitw.all;
    саму библиотеку http://www.vlsiip.com/intel/fun_pkg.vhdl я не использовал, так как не было необходимости.

  13. #1292
    Старый знакомый Аватар для Lexus
    Регистрация
    28.08.2005
    Адрес
    г. Апатиты Мурманская область
    Возраст
    44
    Сообщений
    759

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Теперь другая проблема. Quartus сообщает о несоответствии типа данных. В библиотеке возвращается тип UNSIGNED, а компоненту необходимо назначать STD_LOGIC_VECTOR. Но это, скорее, по причине моего незнания VHDL.
    На что я обратил внимание. У Вас же библиотечный модуль и принимает и возвращает данные в параллельном виде. То есть, их нужно перевести в последовательные. Как Вы умудряетесь здесь уложиться в 19 макроячеек? Хотя бы алгоритм. Просто я не вижу иного метода, как перезагрузка данных в отдельный регистр, либо мультиплексирование параллельной цепи по счетчику.

  14. #1293
    Старый знакомый
    Регистрация
    12.11.2007
    Адрес
    С-Петербург
    Возраст
    55
    Сообщений
    601

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Я в своем варианте по мотивам Lynx29 просто инвертировал данные для второго канала, без сумматора. ИМХО сдвиг на 1 единицу младшего разряда абсолютно несущественен. Делал сдвиговый регистр для входящих данных на 64 ячейки с параллельным переносом в два 32-битных, последовательный вход которых соединялся с собственным выходом через инвертор для получения данных второго канала 1853. По причине незнания VHDL просто рисовал схему. Если кому интересно, вот что получилось. ПЛИС EPM570 бралась с запасом. PS. У меня ПЛИС работает мастером, получая данные от SRC в слэйве (всегда 24 бит) и от процессора по SPI (выбор 16 или 24, при 16 младшие 8 обнуляются), отсюда лишние мультиплексоры, плюс расширитель ввода-вывода процессора, просто не обращайте внимания.
    f40m570.rar

  15. #1294
    Новичок
    Регистрация
    29.03.2010
    Адрес
    Таганрог
    Возраст
    42
    Сообщений
    48

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Lexus, вот кусочек кода, который использует вышеприведенные функции, по сути это часть моего текущего варианта реализации разделения I2S на 2 AD1853 (без дополнительных сервисных функций конфигурации), сразу скажу - в железе я его пока не проверял, будет возможность только после НГ, но в симуляторе все работает как надо. По ресурсам весь модуль занимает 143 макроячейки, помню что удавалось уместить все в 128, но потом просто перешел на EPM256 из-за добавляемого функционала.

    I2S.txt

    В общем, я тут немного почитал и решил отказаться от этого типа инверсии в пользу простого инвертирования - смещение в 1 LSB выглядит куда меньшим злом чем, попытки обойти инвертирование с дополнением до двухкода минимального значения шкалы(-FS), которое при этом дает само себя, этот пост меня окончательно убедил http://www.diyhifi.org/forums/viewto...p=22179#p22179.
    Последний раз редактировалось Aclii; 28.12.2010 в 17:39.

  16. #1295
    Старый знакомый Аватар для Lexus
    Регистрация
    28.08.2005
    Адрес
    г. Апатиты Мурманская область
    Возраст
    44
    Сообщений
    759

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Цитата Сообщение от Mic Dragon Посмотреть сообщение
    По причине незнания VHDL просто рисовал схему. Если кому интересно, вот что получилось.
    Я первый раз вижу в Quartus такую схему. Он ее открывал секунд 10. Это титанический труд!

    Offтопик:
    В свое время я отказался от составления схем, так как они становились все сложнее и сложнее. Отказался в пользу AHDL. Чего и Вам советую. Язык предельно прост, позволяя описывать триггеры, регистры, мультиплексоры, примитивы и т.д., сохраняя при этом возможность использования условных операторов. Синхронный счетчик описывается несколькими строчками, когда схема займет целую страницу даже для простого варианта. Как и Вы, VHDL я не знаю. Разве что, могу простые описания составить. VHDL является языком высокого уровня, а потому работать предстоит не с цифровой схемой, как в AHDL, но с языком. Например, если в схеме в конкретном месте необходимо выделить триггер, в AHDL просто добавляете его и описываете входы/выходы, а в VHDL, в зависимости от описания, компилятор сам либо выделит триггер, либо обойдется без него.


    Aclii, в любом случае смещение 1 LSB несущественно. Даже для 16-и разрядного потока это приведет к смещению постоянного напряжения на выходе ЦАП величиной в микровольты. Дополнение до двух, да, корректно в центре шкалы и некорректно при переносе с +FS в -FS, так как для -FS значений на единицу больше. Можно было бы использовать дополнение до двух, но проект неоправданно разрастается.

  17. #1296
    Старый знакомый Аватар для eclipsevl
    Регистрация
    31.01.2009
    Адрес
    Гаага
    Возраст
    31
    Сообщений
    516

    По умолчанию Re: ЦАП своими руками (четвертая ветка)


    Offтопик:
    Цитата Сообщение от Lexus Посмотреть сообщение
    Я первый раз вижу в Quartus такую схему. Он ее открывал секунд 10. Это титанический труд!
    Или не знание про наличие в квартусе мегафункций, таких как lpm_shiftreg.
    Не в обиду

  18. #1297
    Новичок
    Регистрация
    29.11.2005
    Адрес
    Москва, ВДНХ
    Возраст
    65
    Сообщений
    41

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Народ, а на каком чипе реализуется USB вход для цапа 24/192 ? Никак не могу найти.
    Хотя они точно есть.

  19. #1298
    Завсегдатай Аватар для Denisius
    Регистрация
    02.02.2007
    Адрес
    ПИТЕР
    Сообщений
    1,585

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Не на теноре ли?
    Касаюсь струн, держу суперсимметрию.

  20. #1299
    Частый гость
    Регистрация
    05.01.2005
    Возраст
    47
    Сообщений
    271

    По умолчанию Re: ЦАП своими руками (четвертая ветка)

    Почему до сих пор не снята с производства AD1856? 1860 и 1864 сняты.

  21. #1300
    Завсегдатай Аватар для Denisius
    Регистрация
    02.02.2007
    Адрес
    ПИТЕР
    Сообщений
    1,585

    По умолчанию Re: ЦАП своими руками (четвертая ветка)


    Offтопик:
    Kolbaskin, почитай статьи АДВ... Пиплу и 14 бит за глаза нынче.
    Последний раз редактировалось Denisius; 05.01.2011 в 01:16.
    Касаюсь струн, держу суперсимметрию.

Страница 65 из 82 Первая ... 55636465666775 ... Последняя

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •