Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проектирование USB аудиокарты
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
Страницы: 1, 2, 3
Alex11
В нормальных условиях взяться им неоткуда. Мы много разных деталей делаем на USB - нет там ошибок, пока не работаешь на электроподстанции. Там - есть, когда земля импульсно на десяток наносекунд киловольта на 2 подскакивает. Но в этом случае все кончается, как правило, переподключением устройства, чтобы подвисшие драйвера освободить. Но это экзотика.
Средней пропускной способности хватит как в изохроне, так и в балке, но в последнем никто не гарантирует равномерность потока. Если буфер в устройстве большой - без проблем магабайт 25-30 в секунду качается. Есть еще одна проблема. Если падать на микрософтовские драйвера, а не делать свои, то по спецификации USB-audio они требуют изохрона. Еще одна проблема с драйверами - Vista. У мелкомягкого как всегда семь пятниц на неделе. Вместо того, чтобы вылизать имеющееся - сделали новую спецификацию на драйвера. По мне, так лучше немного помучиться с железом, но лечь в стандарт, а дальше пусть микрософт разбирается, что он там нагородил.
brag
Цитата
Если можно немного подробнее. Через какой ендпоинт гонится поток? Поток изохронный? Можете ли поделится дескриптором устройства? Формат и скорость жестко забиты или ими можно управлять с компа?
Частота кварца?
Очень большое пожалуста ответить.

Какая разница, через какой. через какой захотел,через такой и погнал. сейчас 2-OUT,4-IN. Сейчас Bulk. Причем сдесь скорость? или вы о частоте дискретизации? - тогда жестко. мне надо макс. разрешение.
Одного 24.000мгц. второго 24.576мгц. Тоже из серии - почитай даташит...
дескриптор:
Код
// Device Descriptor
{
    0x12,    // bLength
    USB_DESCRIPTOR_DEVICE,    // bDescriptorType
    USBW(0x0200),    // USB 2.0
    0xFF,   // bDeviceClass
    0x00,   // bDeviceSubclass
    0x00,   // bDeviceProtocol
    0x40,    // bMaxPacketSize0
    USBW(USB_VENDOR_BRAG),    // idVendor
    USBW(USB_PRODUCT_BRAG_DD2),    // idProduct
    USBW(0x0001),    // bcdDevice    :Device Release Number
    0x01,    // iManufacturer
    0x02,    // iProduct
    0x00,    // iSerialNumber
    0x01    // bNumConfigurations
},

// Configuration Descriptor
{
  // std configuration descriptor
    0x09,    // bLength
    USB_DESCRIPTOR_CONFIG,    // bDescriptorType
    USBW(USB_CFGDESCSIZE),    // wTotalLength
    0x01,    // bNumInterfaces
    0x01,    // bConfigurationValue
    0x00,    // iConfiguration
    0xC0,    // bmAttributes
    0x00,    // bMaxPower

  // Interface descriptor
    0x09,    // bLength
    USB_DESCRIPTOR_IFACE,    // bDescriptorType
    0x00,    // bInterfaceNumber
    0x00,    // bAlternateSetting
    0x03,    // bNumEndpoints
    0xFF,    // bInterfaceClass
    0x00,    // bInterfaceSubClass
    0x00,    // bInterfaceProtocol
    0x00,    // iInterface

  // Endpoint descriptor (OUT EP2)
    0x07,    // bLength
    USB_DESCRIPTOR_ENDPOINT,    // bDescriptorType
    0x02,    // bEndpointAddress    : D0..D3 - ep num; D7 - IN endpoint
    0x02,    // bmAttributes
    USBW(0x200),    // wMaxPacketSize
    0x01,    // bInterval

  // Endpoint descriptor (IN EP4)
    0x07,    // bLength
    USB_DESCRIPTOR_ENDPOINT,    // bDescriptorType
    0x84,    // bEndpointAddress    : D0..D3 - ep num; D7 - IN endpoint
    0x02,    // bmAttributes
    USBW(0x200),    // wMaxPacketSize
    0x01,    // bInterval

  // Endpoint descriptor (IN EP1)
    0x07,    // bLength
    USB_DESCRIPTOR_ENDPOINT,    // bDescriptorType
    0x81,    // bEndpointAddress    : D0..D3 - ep num; D7 - IN endpoint
    0x02,    // bmAttributes
    USBW(0x40),    // wMaxPacketSize
    0x80    // bInterval
},
#if USB_CFGDESCSIZE & 1
    0,
#endif

// LangID
    {USB_DESCRIPTOR_STRING_SIZE(1),USB_DESCRIPTOR_STRING,USB_LANG_EN_US},
// Manufacturer
{
    USB_DESCRIPTOR_STRING_SIZE(4),USB_DESCRIPTOR_STRING,
    'B',0,'r',0,'a',0,'g',0
},
// Product
{
     USB_DESCRIPTOR_STRING_SIZE(12),USB_DESCRIPTOR_STRING,
    'D',0,'i',0,'g',0,'i',0,'D',0,'e',0,'g',0,'a',0,'n',0,' ',0,'I',0,'I',0
}

Толку вам от него? Дескрипторов никогда не видели? wink.gif Где-то видел страницу - сборник дескрипторов популярных усб-устройств, типа для коллекции :D
Код
С изохрлоном ясно. А ошибки-то вот откуда возьмутся, если используем хороший экранированный USB кабель, и нормально разведена плата? Вы изохрон пользуете?

Ошибки дажа на шинах ATA,SATA,DDR,... есть, не даром есть такие вещи,как ECC, CRC итп..а вы тут о usb..
Читайте доку с usb.org

Ошибки - это не подвисание драйвера. Это просто ошибки и они всегда могут встретится.
usb_20.pdf say:
Цитата
isochronous transfers have the general implication of constant-rate, errortolerant
transfers. In the USB environment, requesting an isochronous transfer type provides the requester
with the following:
• Guaranteed access to USB bandwidth with bounded latency
• Guaranteed constant data rate through the pipe as long as data is provided to the pipe
• In the case of a delivery failure due to error, no retrying of the attempt to deliver the data

и еще
Цитата
USB Communication Flow
Transfer |Bandwidth |Error Detection |Retrying

Control |Not guaranteed |Yes |Automatic
Isochronous |Guaranteed |Yes |No
Interrupt |Not guaranteed |Yes |Yes
Bulk |Not guaranteed |Yes |Yes


USB-audio мягкий не по карману.глючный он сильно,особенно в win2000
В FreeBSD он и то более-менее работает
MegaElektronik
На счет аудиоданных я имел ввиду чтобы стандартный драйвер все понимал. Да хоть чтоб Winamp 05.gif играл!
Как определить левый правый канал?
khach
Цитата(brag @ Jan 24 2008, 14:11) *
Платку немного переделал.

За ссылки и дескриптор спасибо. Кому оно очевидно, а кое-кто и первый раз видит. К сожалению, как я понял, ваше устройство к аудиоклассу никаким боком не относится. Меня интересовали рабочие примеры дескриптора канала записи для устройств, совместимых с виндой. Доки конечно читал, но как-то криво оно работает.
По поводу платы. Я незря спрашивал про то, что дал Rightmark Audioanalyzer. Без него понять что и как шумит - невозможно. Я бы обязательно поставил между Альтерой и АЦП_ЦАП RC цепи по цифровым линиям. А возможно и предусмотрел место под гальваноразвязку. Запаять вместо нее перемычки никогда не поздно, а вот наоборот... Фильтр по питанию преобразователей как организован? Джиттер вы не меряли?
brag
Фильтр еще будем думать. О гальв.развязке..ее где-то ставят на более-менее крутых картах? сомневаюсь,что она нужна. тогда уж надо делать гальваническую развязку по 3.3в на питание цыфровой части smile.gif)
Да.даное устройство никаким боком к usb-audio class не относится.
Вот дескриптор для аудио класса.только ацп.
Код
const struct usbDevDesc UsbDevDesc={
    sizeof(struct usbDevDesc),
    USB_DESCRIPTOR_DEVICE,
    0x0200,    // USB 2.0
    0xEF,   // bDeviceClass
    0x02,   // bDeviceSubclass
    0x01,   // bDeviceProtocol
    USB_EP0_MAXSIZE,
    USB_VENDOR_BRAG,
    USB_BRAG_PRODUCT_DD,
    0x0001,        // Serial
    0x01,    // iManufacturer
    0x02,    // iProduct
    0x00,    // iSerialNumber
    0x01    //bNumConfigurations
};

const struct usbAuCfgDesc UsbCfgDesc={
    {
        sizeof(struct usbStdCfgDesc),
        USB_DESCRIPTOR_CONFIG,
        sizeof(struct usbAuCfgDesc),
        1,    //interfaces
        1,    //bConfigurationValue
        0,    //iConfiguration
        0xC0,    //SelfPowered
        0    //bMaxPower
    },
   /* Audio Control Interface */
    {
        sizeof(struct usbStdIfDesc),
        USB_DESCRIPTOR_IFACE,
        0,    //bInterfaceNumber
        0,    //bAlternateSetting
        0,    //bNumEndpoints
        0x01,    //AUDIO
        0x01,    //AUDIOCONTROL
        0,    
        0    //iInterface
    },
    {
        sizeof(struct usbCsAcDesc),
        0x24,    //CS_INTERFACE
        0x01,    //HEADER
        0x0100,    //bcdADC
        sizeof(struct usbCsAcDesc)+sizeof(struct usbCsItDesc)+
            sizeof(struct usbCsOtDesc), //wTotalLength
        USB_AUDIO_IFS,
        1    //baInterfaceNr
    },
    {
        sizeof(struct usbCsItDesc),
        0x24,    //CS_INTERFACE
        0x02,    //INPUT_TERMINAL
        0x01,    //bTerminalID
        0x0200,    //Input Undefined term type
        0x00,    //bAssocTerminal
        2,    //bNrChannels
        0x00000003, //wChannelConfig
        0,    //iChannelNames
        0    //iTerminal
    },
    {
        sizeof(struct usbCsOtDesc),
        0x24,   //CS_INTERFACE
        0x03,    //OUTPUT_TERMINAL
        0x02,   //bTerminalID
        0x0101, //Usb Streaming
        0x00,    //bAssocTerminal
        0x01,    //bSourceID (from input terminal)
        0       //iTerminal
    },
   /* Zero Bandwidth (alt setting 0) */
    {
        sizeof(struct usbStdIfDesc),
        USB_DESCRIPTOR_IFACE,
        1,    //bInterfaceNumber
        0,    //bAlternateSetting
        0,    //bNumEndpoints
        0x01,    //AUDIO
        0x02,    //AUDIOSTREAMING
        0,
        0    //iInterface
    },
   /* Audio Streaming descriptor (alt setting 1) */
    {
        sizeof(struct usbStdIfDesc),
        USB_DESCRIPTOR_IFACE,
        1,    //bInterfaceNumber
        1,    //bAlternateSetting
        1,    //bNumEndpoints
        0x01,    //AUDIO
        0x02,    //AUDIOSTREAMING
        0,
        0    //iInterface
    },
    {
        sizeof(struct usbAuCsAsDesc),
        0x24,   //CS_INTERFACE
        0x01,    //AS_GENERAL
        0x02,    //bTerminalLink (Out Terminal)
        0x01,    //bDelay
        0x0001    //wFormatTag (PCM format)
    },
    {
        sizeof(struct usbAuCsFmt1Desc),
        0x24,    //CS_INTERFACE
        0x02,    //FORMAT_TYPE
        0x01,    //FORMAT_TYPE1
        0x02,    //bNrChannels
        0x03,    //3 bytes/frame
        24,    //24 bits/sample
        0x01,    //bSamFreqType - One frequency supported
        {B3VAL(96000)}    //tSamFreq
    },
   /* IN ISO Endpoint 1 */
    {
        {sizeof(struct usbAuStdAsIsoEpDesc),
        USB_DESCRIPTOR_ENDPOINT,
        0x81,    //IN endpoint 1
        0x01,    //Isochronous, No synchronous, Data endpoint
        64,    //wMaxPacketSize
        9},    //packets per frame
        0,0    //bRefresh, bSynchAddress
    },
    {
        sizeof(struct usbAuCsAsIsoEpDesc),
        0x25,    //CS_ENDPOINT
        0x01,    //EP_GENERAL
        0x00,    //bmAttributes
        0x00,    //bLockDelayUnits
        0x0000    //wLockDelay
    }
};

Также есть пару примеров в тех ссылках,что я давал. именно аудио.
Джиттер нечем мерять...
brag
Вот теперь такая платка wink.gif
MAXvaLL
brag и Alex 11, благодарю за помощь! smile.gif

Цитата(brag @ Jan 24 2008, 22:45) *
Вот теперь такая платка wink.gif

Вижу, вы все же прислушались к моему совету доработать разводку USB smile.gif
Эти изменения что-то дали?

Еще, как я вижу вы убрали X2. Я так понимаю вы через него программировали ЕЕПРОМ.
А теперь как?

Цитата(khach @ Jan 24 2008, 14:57) *
По поводу платы. Я незря спрашивал про то, что дал Rightmark Audioanalyzer. Без него понять что и как шумит - невозможно. Я бы обязательно поставил между Альтерой и АЦП_ЦАП RC цепи по цифровым линиям. А возможно и предусмотрел место под гальваноразвязку. Запаять вместо нее перемычки никогда не поздно, а вот наоборот... Фильтр по питанию преобразователей как организован? Джиттер вы не меряли?

Полгостью согласен! Я уже давно про это говорил... Но это если вы особо заботитесь о качестве.

Помехи и джиттер могут испоганить результат самых лучших преобразователей.
Возможно выложу нашу разработку, когда заработает smile.gif

Цитата(khach @ Jan 24 2008, 14:57) *
За ссылки и дескриптор спасибо. Кому оно очевидно, а кое-кто и первый раз видит. К сожалению, как я понял, ваше устройство к аудиоклассу никаким боком не относится. Меня интересовали рабочие примеры дескриптора канала записи для устройств, совместимых с виндой. Доки конечно читал, но как-то криво оно работает.
По поводу платы. Я незря спрашивал про то, что дал Rightmark Audioanalyzer. Без него понять что и как шумит - невозможно. Я бы обязательно поставил между Альтерой и АЦП_ЦАП RC цепи по цифровым линиям. А возможно и предусмотрел место под гальваноразвязку. Запаять вместо нее перемычки никогда не поздно, а вот наоборот... Фильтр по питанию преобразователей как организован? Джиттер вы не меряли?

А вы умеете мерять джиттер? smile.gif
brag
Цитата
Вижу, вы все же прислушались к моему совету доработать разводку USB
Эти изменения что-то дали?

Да,немного разсунул,хотя там далеко нету тех параметров.зазор 0.7мм, расстояние до других макс 7мм.
Хз дало,не дало.плату еще не делал новую. пока дрова пишу.как все будет готово,в том числе и ламповая часть(вход,выход), тогда уже буду делать вторую плату, со всеми доработками...

Цитата
Еще, как я вижу вы убрали X2. Я так понимаю вы через него программировали ЕЕПРОМ.
А теперь как?

Та не,я его просто так воткнул smile.gif EEPROM самим же cypressom и шьется.

Гробик бы с удовольствием всунул,только нету таких гробиков. надо именно 24.576мгц
MAXvaLL
Цитата(brag @ Jan 25 2008, 01:28) *
...в том числе и ламповая часть(вход,выход)...

Та не,я его просто так воткнул smile.gif EEPROM самим же cypressom и шьется.

Ну, ты зверь! 07.gif Круто!!! a14.gif
Мы вот предвариловку на крутых опер.ах делаем crying.gif

Через USB?

Кстати, возник вопрос: а зачем serial<->parallel преобразователь надо было на ПЛИСине делать? Есть ведь готовенькие...

PS А за дескрипторы спасибо большое! Темный мы народ... smile.gif
brag
Цитата
Через USB?

Кстати, возник вопрос: а зачем serial<->parallel преобразователь надо было на ПЛИСине делать? Есть ведь готовенькие...

PS А за дескрипторы спасибо большое! Темный мы народ...

Ну типа того. загоняем в контроллер прошивку.а она сама себя всунет в ееп,если надо.
Он не просто сер/пар преобразователь. он еще и знает, что такое LRCK, еще и умеет их генерить,вместе с BCLK, еще и знает, что в нас там с буфферами USB. вдруг мы уже закончили принимать/и/или/передавать даные...если вам удастся пристроить готовый - хорошо wink.gif
Ага.и еще надо адрес эндпоинта выбирать. мы же одновременны пишем и воспроизводим звук, а шина то одна 8битная. Даные идут через однобайтовый буффер в шину/с шины.
Далее, может еще старший лишний байт будет откидать, зачем его бестолку в шину гнать..пока гонится,а там,мож откину.
Кароче это все дело заняло 81% площади кристалла плиса.

не за что,пол года на зад делал усб-аудио устройство стандартное, только ацп. работало,как и все - глючно в виндах.
MAXvaLL
Цитата(brag @ Jan 25 2008, 02:26) *
Ну типа того. загоняем в контроллер прошивку.а она сама себя всунет в ееп,если надо.
...
Ага.и еще надо адрес эндпоинта выбирать. мы же одновременны пишем и воспроизводим звук, а шина то одна 8битная. Даные идут через однобайтовый буффер в шину/с шины.

Понятно...

Это у вас 8бит в обе стороны?! 07.gif
Или все же 8бит в каждую?
brag
Читайте даташит на сайперс. шина даных 8бит, шина адресса 2 бит,шина флагов(подключено 3 флага,юзаю 2). ну и 3 провода RD,WR,OE
Вроде ничего не забыл ё)
MegaElektronik
braq, а какую ПЛИС вы посоветуете?
MAX2, MAX3000. Чем 3000 непонравилась?
brag
ПЛИС советую макс2,тк FPGA дорого...
Макс300 подходит только для подобного рода проектов. всего 64макроячейки,те макс 64 триггеа.маловато. а вобще надо делать на fpga

Платку еще переделал.. теперь добавился буффер переходной буффер на клок и другой генератор на компараторе smile.gif
MAXvaLL
Цитата(brag @ Jan 25 2008, 09:58) *
Читайте даташит на сайперс. шина даных 8бит, шина адресса 2 бит,шина флагов(подключено 3 флага,юзаю 2). ну и 3 провода RD,WR,OE
Вроде ничего не забыл ё)


Понял, ПЛИС у вас представляется как внешняя память? Верно? smile.gif
Поток идет через внутренний FIFO 4kB, или на шину а потом в RAM?
До USB всеравно программно прокидывать надо?
brag
нет, все происходит аппаратно. контроллер в обмене не участвует.
MAXvaLL
Цитата(brag @ Jan 25 2008, 09:58) *
Читайте даташит на сайперс. шина даных 8бит, шина адресса 2 бит,шина флагов(подключено 3 флага,юзаю 2). ну и 3 провода RD,WR,OE
Вроде ничего не забыл ё)

Дык в 56 пиновой версии же нет RD,WR,OE 07.gif
SIA
Цитата(khach @ Jan 25 2008, 16:23) *
Неправильно. Добротность от моды колебаний зависит. Для изгибных балочных с подвеской в узлах волны как раз несколько миллионов и получалось- звенел минуты после выключения питания. Только надо учитывать, что измерительная схема сильно нагружает кварц и садит добротность. Поэтому для измерения амплитуды на "выбеге" мы к кварцу раз в 10 секунд подключались релюхой, меряли амплитуду и снова выключались. Мощность накачки надо смотреть экспериментально по спектру- как начал пик ползти по частоте или уширяться- стоп, хватит. Про паразиты - это не критерий, о них и отстроится можно LC цепью.
По поводу супердобротных кварцев- полусферические кварцевые "чашки" от твердотельных гироскопов имеют добротность от 10 до 50 миллионов, а из лейкосапфира- говорят и еще больше.

Кстати, я самодельной звуковой картой заинтересовался именно для целей спектрометрии- оказалось что профессиональное измерительное оборудование уступает по параметрам аудиофильским примочкам типа RMAA и совреманным звуковухам. Если бы они еще были калиброванными по амплитуде... Ну а писать аудиодрайвер для карты сбора данных чтобы подключит ее к RMAA - это извините бред.

Сорри за оффтоп, может откроем новую ветку по НЧ кварцам где-нибудь и низкошумным генераторам для них?


Вы говорите об экзотике, которая редко выходит за стены организаций типа РИРВ, НИИРТИ или ВНИИФТРИ.

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

Крупноформатный балочный кварц с относительно высокой добротностью более-менее распространен только на 8 кГц (на них работали задатчики для систем частотного уплотнения каналов связи). Размер у него немаленький (больше нарисованной тут платки) и явно не для данного применения.

По поводу того, что SNR/THD у хороших звуковух выше, чем у средних (серийных) приборов для анализа сигналов - факт. Разработчики приборов, которым нужно не "слепить плату", а освоить конструкцию в целом и сертифицировать ее, неизбежно отстают в применении современной элементной базы лет на 8-10. Промежуточное положение занимают платы для ПК (например, у ЗАО "Руднев-Шиляев" есть 8-канальная 24-разрядная плата 102.4 кГц/204.8 с автокалибровкой по постоянному току и нормальными дифференциальными входами, SNR и SFDR реально более 100 дБ).

Вопрос по мощности - тут Вы полностью правы, "формальные" критерии (столько-то мквт без учета размеров) здесь не работают, нужно либо общаться с разработчиком кварцевого резонатора, либо экспериментировать. Превысить лимит механической прочности кварца при разумных напряжениях и "толстом" кристалле невозможно, паразитные эффекты начнутся гораздо раньше (камертонные и крутильные критичнее балочных!).

p.s. У меня самого есть несколько экземпляров Морионовских балочников на частоты от 8 кГц, естественно, я их обмерял. Добротность балочного резонатора сильно зависит от качества подвеса и имеет разброс от 40E3 до 3E5 (8 кГц). Типовое значение - 1Е5, его я и привел. Способ измерения - по виду Z-кривой (точнее, по ФЧХ), снимаемой при помощи DDS генератора, тактовый сигнал которого имеет джиттер в субпикосекундном диапазоне (используется тактовый генератор, обеспечивший SNR 38 дБ при оцифровке сигнала с частотой 1,63 ГГц). Способ измерения по выбегу "звона" не использовался, т.к. результаты при двух скоростях изменения частоты (~0.02 и ~0.005 Гц/сек) практически не отличались.
MAXvaLL
Цитата(MAXvaLL @ Jan 25 2008, 21:19) *
Дык в 56 пиновой версии же нет RD,WR,OE 07.gif


Все - разобрался! smile.gif
Brag, а вы используете синхронную или асинхронную передачу?
brag
Цитата
Дык в 56 пиновой версии же нет RD,WR,OE

Я вижу, вам впадло даже на пинаут посмотреть. с такими темпами какая там разработка может получится....

Использую синхронную.
MAXvaLL
Цитата(brag @ Jan 26 2008, 03:38) *
Я вижу, вам впадло даже на пинаут посмотреть. с такими темпами какая там разработка может получится....

Использую синхронную.

Мне вовсе не впадлу посмотреть пинаут! Иначе как бы я узнал, что в SSOP56 НЕТ RD,WR,OE!
Но есть ноги SLRD, SLWR и SLOE. Поэтому и возник вопрос smile.gif
brag
RD,WR,OE - внешняя память(не даром они там выходы)
SLRD, SLWR и SLOE - внутренняя память(фифо) - входы
MegaElektronik
И все-же непонятно какой аудио-протокол в компьютере стандартный. Чтоб весь софт понимал. Кто знает???
MAXvaLL
Цитата(MegaElektronik @ Jan 29 2008, 09:18) *
И все-же непонятно какой аудио-протокол в компьютере стандартный. Чтоб весь софт понимал. Кто знает???

Протоколов стандартных много. PCM например smile.gif

А вы уже преуспели в аппаратной части? Поделитесь с народом своим решением! smile.gif
MAXvaLL
_
MegaElektronik
Пока решается вопрос схемотехнического характера.
Вроде определился с микросхемами:
АЦП PCM4220
ЦАП PCM1792
USB CY7C68013A
ПЛИС EPM570T100C5
Генератор - кварц & логика на 3,3В
ОУ AD797, NE5534A
Стабилизаторы ADP3333ARM-3.3, 78L05, 7805, 7905.
и т.д.....
Пока разбираюсь в Quartuse для ПЛИС, в схемотехнике и USB контроллере с протоколом.

Ели кто может, то предложите не сложную схему генератора на кварце с низким джиттером. Буду оч. признателен.
Uree
Безумно любопытно - а какой будет конструкция девайса(тупо двуслойка, без применения экранов и т.д. ни разу не позволит получить более-менее приличные параметры аналоговой части), ну и какими приборами будут измеряться параметры, когда оно заработает? Или наши главные приборы тестер и абсолютный слух?smile.gif
khach
Цитата(Uree @ Jan 30 2008, 18:06) *
Безумно любопытно - а какой будет конструкция девайса(тупо двуслойка, без применения экранов и т.д. ни разу не позволит получить более-менее приличные параметры аналоговой части), ну и какими приборами будут измеряться параметры, когда оно заработает? Или наши главные приборы тестер и абсолютный слух?smile.gif

А кто сказал, что АЦП не будет в экранированной коробочке? И что опторазвязка по цифровым линиям лишняя? И что источник питания АЦП не будет иметь двойной фильтрации с шунтированием шумовой составляющей тока в дополнение к пассивным фильтрам? Только все это пока не имеет отношения к проектированию цифровой части устройства. А данная плата- прекрасный макет, а может кого и устроит по качеству сигнала. smile.gif
Проверятть- сначала цифровой loop по I2S- проверяются грубые ошибки и джиттера. Потом- по референсной аудиокарте и источнику образцового сигнала на кварцах с низким фазовым шумом. По фурье преобразованию очень много глюков можно в разводке выделить. По крайней мере джиттер и шумы источника видны прекрасно.
Когда все зарабоатет- то можно пойти к знакомым на компаратор на SQUID и проверить линейность тракта с точностью битов в 26-28.
MAXvaLL
Цитата(Uree @ Jan 30 2008, 18:06) *
Безумно любопытно - а какой будет конструкция девайса(тупо двуслойка, без применения экранов и т.д. ни разу не позволит получить более-менее приличные параметры аналоговой части), ну и какими приборами будут измеряться параметры, когда оно заработает? Или наши главные приборы тестер и абсолютный слух?smile.gif

100 раз уже обсуждалось. Это будет не тупая двухслойка, а умная.
А если все ок будет. Закажем завоццкую 4х слойку smile.gif

А RMA на что?

Цитата(MegaElektronik @ Jan 30 2008, 14:47) *
Пока разбираюсь в Quartuse для ПЛИС, в схемотехнике и USB контроллере с протоколом.

Ели кто может, то предложите не сложную схему генератора на кварце с низким джиттером. Буду оч. признателен.

Если разберешся - поделись пожалуйста. Я пока с кипрусом вожусь...

Вот наш генератор (на данный момент). Там 2 кварца, для частот кратных 44.1 и 48.
Может он и не простой, но вдруг поможет smile.gif
И, да не убьет меня схемотехник... maniac.gif
SIA
Цитата(alex840 @ Jan 30 2008, 23:29) *

Причем работает без установки дополнительных драйверов. Этого добиться было непросто!
MAXvaLL
Цитата(SIA @ Jan 30 2008, 23:41) *
Причем работает без установки дополнительных драйверов. Этого добиться было непросто!

Вы пишите так, как будто этого вы добились smile.gif
Или так и есть biggrin.gif

И что в этом особенного? В чем отличие от всех остальных USB карт?
Кстати, раздельно - неудобно может быть...
SIA
Стандартные средства Win не особенно-то поддерживают 24/96. Попробуете сделать, особенно без установки своего драйвера, посмотрите API, поймете. Я был немного в курсе этого проекта - он делался в РФ smile.gif Что же касается собственно качества АЦП/электроники, то там оно хорошее коммерческое, не более того (больше заказчик не требовал).
MegaElektronik
Цитата(alex840 @ Jan 30 2008, 23:29) *


Было сказано что высококачественное устройство, а это...... THD 0,01% т.е. -80дБ - фуфло!
надо -100 минимум, а то и -108!

Насчет схемы генератора мне кажется что очень сложно (в основном чем больше элементов, тем хуже работает).

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

Насчет приборов беспокоится нечево. На компутере звуковуху можно спектроанализатором саму-себя проверить. Также есть и другие приборы (всетаки в конструкторском бюро работаю!).

Питание от 220 через трансформатор (с 1 преобразуется на 4 обмотки), кучу стабилизаторов, фильтров.....

Корпус предполагается железный.

А частоты дискритизации предполагаются 48, 96, 192 kHz.
44,1 пользовать путем передискритизации на компьютере.
MAXvaLL
Цитата(MegaElektronik @ Jan 31 2008, 08:29) *
Было сказано что высококачественное устройство, а это...... THD 0,01% т.е. -80дБ - фуфло!
надо -100 минимум, а то и -108!

А частоты дискритизации предполагаются 48, 96, 192 kHz.
44,1 пользовать путем передискритизации на компьютере.

Эти 2 ваших утверждения не совместимы ИМХО sad.gif
Передескрктизация - это ЗЛО. Она весь звук убьет!

Глупо тогда уже заботится о джиттере, и прочем... ИМХО

Цитата
Насчет схемы генератора мне кажется что очень сложно (в основном чем больше элементов, тем хуже работает).

Ну да, выкиньте из вашего компутера половину деталей, может лучше заработает biggrin.gif
Хотя если вам так уж не нравится - дело ваше.
Но что точно могу сказать - это то, что генератор с малым джиттером надо делать на быстром компараторе.
Схем, я думаю не мало в инете.
Ozelot
Может не в тему. Где брать музыку в цифре на 24 разряда? wink.gif
MAXvaLL
Цитата(Ozelot @ Jan 31 2008, 11:47) *
Может не в тему. Где брать музыку в цифре на 24 разряда? wink.gif

С АЦП 24 разряда biggrin.gif
Ozelot
Цитата(MAXvaLL @ Jan 31 2008, 12:52) *
С АЦП 24 разряда biggrin.gif


Я серьезно.
Мне не совсем ясно зачем ребята затеяли этот проект. Скорее всего чтобы делать высококачественную запись, но если это делается для студии, то я не поверю чтобы кто-то повелся на использование такого "самопала".
MAXvaLL
Цитата(Ozelot @ Jan 31 2008, 12:03) *
Я серьезно.
Мне не совсем ясно зачем ребята затеяли этот проект. Скорее всего чтобы делать высококачественную запись, но если это делается для студии, то я не поверю чтобы кто-то повелся на использование такого "самопала".

Может я путаю, но DVD-A 192/24
А даже если и не так, то в ближайшее время наверняка кто-то из производителей извратиться smile.gif HD-DVD, BlueRay всякие...

Ну, в первую очередь для себя.
Тем более все зависит от того, какие показатели будут у самопала smile.gif
Факты (показатели) - весчщщщ упрямая.
brag
я сделал фикс. битрейт, уже дописываю дрова. а эта сцука(винда) все равно свой SRC в цепочку сует. а переходить на еще более ниский уровень геморно. тут с streamclass возня, неговоря уже о чистом KS, напрямую к wdmaud.sys

по поводу 7809,05,0э... не ставьте. ставьте LM1117 ну или ADP
EPM570 хватит за глаза,а вот epm3064 не хватает, рощелкал...надо было сразу макс2 ставить.
khach
Цитата(Ozelot @ Jan 31 2008, 12:03) *
Я серьезно.
Мне не совсем ясно зачем ребята затеяли этот проект. Скорее всего чтобы делать высококачественную запись, но если это делается для студии, то я не поверю чтобы кто-то повелся на использование такого "самопала".

Помните анекодот про аудиофила- технаря и аудиофила- нефтяного магната? Вот второй хочет себе аудиосистему с ЧЕСТНЫМИ 24/192. Первый предлагает систему с АЦП-ЦАП на SQUID. Технически вопрос за такие бабки вполне решаем. Но у технаря нехватает знаний слепить нормальный цифровой интерфейс (считаем, что заний про технологию сенсоров SQUID, криогенику, вакуумную технику итд достаточно). Вот в качестве проекта "на поучиться" и выбран проект обсуждаемого в этой теме аудиоустройства.

Ксатит, по поводу драйверов. Расковырял USBASIO. Список поодерживаемых аудиоустройств впечаталяет. Цепляю инф файл от драйвера. Кстати, убогая поделка Билли usbaudio.sys там вообще не используется. Обратите внимание на список VID/PID поддерживаемых устройств ( и на их цены).
alex840
Цитата(SIA @ Jan 31 2008, 02:58) *
Стандартные средства Win не особенно-то поддерживают 24/96. Попробуете сделать, особенно без установки своего драйвера, посмотрите API, поймете. Я был немного в курсе этого проекта - он делался в РФ smile.gif

хм. я тоже немного в курсе. наверное мы знакомы...
alex840
Цитата(SIA @ Jan 31 2008, 16:58) *
Леха Курнаев ?

ответил в РМ
MAXvaLL
Цитата(brag @ Jan 31 2008, 13:43) *
я сделал фикс. битрейт, уже дописываю дрова. а эта сцука(винда) все равно свой SRC в цепочку сует.

В аудио поток?

Цитата(khach @ Jan 31 2008, 13:46) *
Помните анекодот про аудиофила- технаря и аудиофила- нефтяного магната? Вот второй хочет себе аудиосистему с ЧЕСТНЫМИ 24/192. Первый предлагает систему с АЦП-ЦАП на SQUID. Технически вопрос за такие бабки вполне решаем. Но у технаря нехватает знаний слепить нормальный цифровой интерфейс (считаем, что заний про технологию сенсоров SQUID, криогенику, вакуумную технику итд достаточно). Вот в качестве проекта "на поучиться" и выбран проект обсуждаемого в этой теме аудиоустройства.

Ксатит, по поводу драйверов. Расковырял USBASIO. Список поодерживаемых аудиоустройств впечаталяет. Цепляю инф файл от драйвера. Кстати, убогая поделка Билли usbaudio.sys там вообще не используется. Обратите внимание на список VID/PID поддерживаемых устройств ( и на их цены).

Хммм, ну лампы-то понятно. Но SQUID, это же супер магнитные сенсоры. Как их применять в аудио?

А чтобы плата работала под ASIO, что надо? Заделаться под что-то что она поддерживает? Или есть что-то универсальное? (типа как win, но без лагов)
MegaElektronik
Цитата(MAXvaLL @ Jan 31 2008, 11:35) *
Эти 2 ваших утверждения не совместимы ИМХО sad.gif
Передескрктизация - это ЗЛО. Она весь звук убьет!

Глупо тогда уже заботится о джиттере, и прочем... ИМХО
Ну да, выкиньте из вашего компутера половину деталей, может лучше заработает biggrin.gif
Хотя если вам так уж не нравится - дело ваше.
Но что точно могу сказать - это то, что генератор с малым джиттером надо делать на быстром компараторе.
Схем, я думаю не мало в инете.


Если почитать тему про дескретизацию на iXBT-е, то она очень хорошо справляется! Джиттер при програмной дескритизации??? Откуда!

Может насчет "много деталей" это я сгоряча, извините! 05.gif Просто есть схемы где мало деталей и где много, а функция и параметры одинаковы, то вы выберите какую? А с генератором не хотельсь бы парится (есть множество других вопросов!), а взять готовый и проверенный кем-то.
MAXvaLL
Цитата(MegaElektronik @ Feb 1 2008, 08:47) *
Если почитать тему про дескретизацию на iXBT-е, то она очень хорошо справляется! Джиттер при програмной дескритизации??? Откуда!

Может насчет "много деталей" это я сгоряча, извините! 05.gif Просто есть схемы где мало деталей и где много, а функция и параметры одинаковы, то вы выберите какую? А с генератором не хотельсь бы парится (есть множество других вопросов!), а взять готовый и проверенный кем-то.

Я не говорю что джиттер появится! smile.gif
Я говорю, что нет смысла ТАК заботится о качестве аналога, если всеравно потом передескретизация.
Может я и не прав. Но ИМХО так...

А че парится? Кварц и компаратор + по мелочи.... Или готовый посмотрите.
MegaElektronik
Сейчас 44.1k не предпологается, т.к. вызывает трудности и в семотехническом и программном плане, возможно в дальнейшем будет.
MAXvaLL
Цитата(MegaElektronik @ Feb 1 2008, 16:49) *
Сейчас 44.1k не предпологается, т.к. вызывает трудности и в семотехническом и программном плане, возможно в дальнейшем будет.

Согласен! и у меня вызывает sad.gif
Но эташ CDDA. Нехорошо как-то биз него
brag
Так описано в моем драйвере
Нажмите для просмотра прикрепленного файла

А так оно уже после прохода через ...сами знаете что smile.gif
Нажмите для просмотра прикрепленного файла

Я еще не вкурсе, вносит ли оно в поток свои изменения или нет, драйвер пока полностью не готов, еще осталось SRB_OPEN_STREAM,SRB_CLOSE_STREAM реализовать. тогда и проверим
Но в ддк пишут, что вроде как бы, если запрошенный битрейт поддерживается девайсом, то он что-то типа "Bypass SRC"... оно приклеило мне свой миди софтовый и всякие SRC,supermix,3d,surround,volume и при чем не в разрыв(видно на картинках) а параллельно :D
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.