Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
АЦП, ЦАП и Буфер - L502Добрый вечер, уважаемая техподдержка Я подаю данные в кодах (которые получились в результате считывания файла) на 1 или 2 канал ЦАП ( или 32-битные слова на цифровой вход), предварительно запустив потоки, после этого отправляю их в сам буфер функцией L502_Send(), после чего отсанавливаю потоки, снова запускаю, и начинаю выводить данные через L502_Recv(), а после L502_ProcessData(), но в результате при прочтении (и восстановлении, например, из кодов исходного файла) вижу, что ничего не передалось (а точнее, "пустые" или видоизменённые байты). С чем это может быть связано? И вообще, правильно ли я делаю, если я хочу провести какие-то данные через всю карту, а конкретно - через ЦАП - АЦП? Заранее спасибо за ваши ответ |
|||
|
||||
|
Re: АЦП, ЦАП и Буфер - L502Здравствуйте. Правильно ли я понял, что у Вас выход ЦАП соединен со входом АЦП и вы хотите потоком выдавать данные на ЦАП и их же принять АЦП? На всякий случай модуль у вас с установленным ЦАП (так как ЦАП - опция)? Если так, то последовательность должна быть примерна такая: Когда все примите, что нужно только тогда и нужно остановить. Если Вы сперва сигнал вывели, затем остановили, а затем снова запустили и начали вводить то никакого сигнала на входе уже не будет.... он же был при первом запуске в момент второго его уже нет... |
|||
|
||||
|
Re: АЦП, ЦАП и Буфер - L502Алексей L Card пишет:
Да, ЦАП и АЦП на моей карте есть Спасибо за совет, теперь всё заработало, и стало понятно как организовать свою программу. Но сразу назревает ещё один вопрос насчёт функции L502_ProcessData и L502_PrepareData. В функции ProcessData есть возможность передать на dac1, dac2, и digout. Как я понял - dac1\dac2 принимают входные массивы отсчётов, а digout - значения цифровых выводов. Так же сказано, что только младшие 16 бит "зачитываются" за данные, старшие 16 - это флаги. Но тут встаёт вопрос - что именно подразумевается под массивом отсчётов?Просто коды? И если говорить про цифровые выводы - подойдут любые данные в виде uint32_t, с данными в младших 16 битах, или тут тоже своя особенная магия?И что лучше всего подойдёт для, например, считывания бинарно файла? Заранее спасибо за ваш ответ и потраченное время |
|||
|
||||
|
Re: АЦП, ЦАП и Буфер - L502На L502 есть 16 цифровых выходов (линии DO1..DO16 на соответствующем разъеме). Каждая линия в момент времени может быть либо в состоянии соответствующем логическому нулю или единице (ну еще либо Z-состоянии). Каждый отсчет соответствует состоянию этих 16 линий в определенный момент времени - каждый бит соответствует из 16 младших битов 32-битного отсчета соответствует состоянию определенной линии (младший соответствует DO1). Если работаете в синхронном режиме и записали массив отсчетов в буфер модуля, то эти отсчеты будут выводится последовательно с частотой вывода (1 МГц), т.е. сперва 1 мкс состояние выходов будут соответствовать первому отсчету массива, вторую мкс - второму и т.д. (если отсчеты закончатся - сохраняется последнее состояние), т.е. при желании Вы можете получить нужную временную диаграмму с изменением состояний линий в строго определенные моменты времени. Для ЦАП, то можно явно указывать значение в вольтах, которое должно быть выведено (если в L502_PrepareData указываете в качестве параметров flags L502_DAC_FLAGS_VOLT. Также через или обычно стоит указать L502_DAC_FLAGS_CALIBR для применения калибровочных коэффициентов), но можно и явно указывать коды ЦАП, если без L502_DAC_FLAGS_VOLT. Такая вот магия) Ну про файл, это смотря что Вам нужно сделать. |
Страницы 1