Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
|
ЦАП для E14-140MDпри запуске примера вылетает ошибка failed to get interface. что это может быть? |
|||
|
||||
|
|
Re: ЦАП для E14-140MDПри запуске какого именно примера? Поставлен ли драйвер? Подключено ли устройство, видно ли его в диспетчере устройств? Поставлена ли библиотека? |
|||
|
||||
|
|
Re: ЦАП для E14-140MDвсё, проблема решена. usb кабель отходил.
|
|||
|
||||
|
|
Re: ЦАП для E14-140MDКакой пример?
|
|||
|
||||
|
|
Re: ЦАП для E14-140MDпример L7XX.OSC. запустил .exe файл, вылезло окошко с линиями. всё, далее что-то изменяется чисто случайно. |
|||
|
||||
|
|
Re: ЦАП для E14-140MDО, это lcomp...
Еще можете взять файл http://www.lcard.ru/download/e140-console-test.zip с неофициальными консольными примерами под E14-140-M, но не через lcomp, а через библиотеку lusbapi. В чем-то она проще, хотя менее универсальная (для каждого типа прибора свои функции).
Осциллограф есть? Можете подключить осциллограф в режиме X-Y к выходам ЦАП - X = DAC1 (контакт 1 разъема ANALOG), Y = DAC2 (контакт 2), земля - AGND (контакт 3) и запустить dac_demo. Нарисует логотип L-Card на осциллографе. dac_demo rabbit нарисует зайчика |
|||
|
||||
|
|
Re: ЦАП для E14-140MDто есть вот эта картинка просто шумы на осциллографе, если я не подавал сигнал с выхода ЦАП на вход АЦП? правильно? осциллограф я подсоединял к выходу ЦАП, аж ничего он не показал. другие примеры сейчас буду пробовать |
|||
|
||||
|
|
Re: ЦАП для E14-140MDset_dac-работает, выдаёт постоянку на выходы ЦАП.
|
|||
|
||||
|
|
Re: ЦАП для E14-140MD>хотелось бы найти рабочий пример, который позволяет задавать форму сигнала аналитически Аналитически - то есть формулой, заданной в виде текстовой строки, при этом без перекомпиляции программы? Это была бы неплохая задачка для *примера* В принципе этот прибор все-таки ориентирован на разработку программ пользователем. Есть библиотека и подробное описание. (Кстати, в части ЦАП крайне рекомендую прочитать дополнение http://www.lcard.ru/download/e14_140m_addendum_dac.pdf ) А примером для написания программы может служить тот же dac_demo или bidir (только там еще и ввод с АЦП, который можно включать/выключать независимо от ЦАП - собственно, потому и "bidir", эта программа писалась как тест двунаправленной связи с прибором). То есть если все-таки написать (переделать из примера) свою программу на C/C++ Вы готовы, то я Вам с удовольствием подскажу, как это сделать. ОБНОВИЛ e140-console-test.zip, добавил туда программу dac-sine: генератор синуса на 2 канала с заданными амплитудами либо RMS и заданным сдвигом фаз. Это рабочая программа, которую мы сами используем при наладке другого прибора. (Консольные примеры компилировались под GCC/MinGW, но из можно без большого труда портировать под любой C++, например, MSVC. Только lusbapi.lib взять правильный.) Еще есть пример генератора под labview, если я не ошибаюсь. А вот что bidir вывалился в BSOD, это надо бы разобраться. Вывалился при нажатии "D" для запуска ЦАП? Драйвер свежий ставили? Из комплекта lcomp?
В общем, для синусов я Вам пример дал готовый.
|
|||
|
||||
|
|
Re: ЦАП для E14-140MDну у меня пока что украли АЦП на испытания. Так что проверить работоспособность примера я смогу чуть позже. PDF-ку сейчас поизучаю. Написать, по крайней мере попробовать переделать я готов) На тему BSOD, вывалился при нажатии клавиши "D". Драйвер ставил буквально недавно, но когда опять получу АЦП, переставлю ещё раз с сайта. На тему WAV я уже от отчаяния начал искать как подать сигнал заданной формы через звуковой выход+усилитель:) |
|||
|
||||
|
|
Re: ЦАП для E14-140MDНа тему WAV мне понравилась мысль, и я его как будто бы написал Только смотрите, чтобы аудиовход и ЦАП были электрически совместимы (10Vp-p, max. 10 мА). Наушники не подключать! Земля усилителя должна быть соединена с землей компьютера. Усилитель должен выдерживать амплитуду 5 В. Активные колонки можно попробовать, но аккуратно, не спалите ничего! |
|||
|
||||
|
|
Re: ЦАП для E14-140MDЭто только идея) до её реализации нужно ещё как-то смоделировать сигнал и запустить каким-то образом. В данный момент я читаю, что в мануале написано и жду АЦП к завтрашнему дню может быть) |
|||
|
||||
|
|
Re: ЦАП для E14-140MDНу, смоделировать нужный сигнал - это уже надо писать собственную программу. Хотя если цифровой сигнал записать в файл, то можно вот этим wav_player/'ом попробовать Я так понял сначала, что Вам надо просто проверить, как работает ЦАП, и посмотреть на программу, которая умеет выводить на него сигналы. Вот теперь их целых три: dac_set (однократный вывод), dac_sine - генератор двух синусов (циклический режим) и wav_player (потоковый режим). |
|||
|
||||
|
|
Re: ЦАП для E14-140MDмне необходимо для установки смоделировать напряжение похожее на включение трансформатора тока. И на уже имеющейся установке проверить inrush-фильтр, который как-то (мне не говорят как) нивелирует бросок при включении. |
|||
|
||||
|
|
Re: ЦАП для E14-140MDА проверить - это принять с АЦП отклик установки на поданный сигнал? Тогда нужно нечто по схеме bidir - в ЦАП пишется подготовленный (рассчитанный по каким-то формулам) цифровой сигнал, параллельно с АЦП снимаются параметры установки.
|
|||
|
||||
|
|
Re: ЦАП для E14-140MDхорошо, надеюсь запустится:) в самом файле bidir что необходимо поменять, чтобы загнать туда другое аналитическое выражение? просто поменять функцию в cpp файле и всё? |
|||
|
||||
|
|
Re: ЦАП для E14-140MDПервым делом определите, в каком режиме будете работать - циклическом (короткий периодический сигнал, повторяющийся по кругу, данные грузятся в ЦАП один ращ) или потоковом (произвольный сигнал, данные гонятся по USB во время воспроизведения). Какой длины будет сигнал? Какая нужна частота дискретизации? Если брать за основу bidir.cpp, то заменить надо кусок, где заполняется массив, выдаваемый на ЦАП. Там массив всего один (пишется каждый раз один и тот же буфер), возможно, надо сделать более длинный буфер и писать его целиком или по частям.
Значительная часть примера bidir - это связь между потоками и независимое управление пуском/стопом АЦП и ЦАП с клавиатуры. Вам это, наверное, будет не нужно. Если брать за основу dac_sine, то надо тоже заменить генерацию синусоид на свой сигнал.
Если брать за основу wav_player - то можно выкинуть загрузчик .wav и ресэмплер и заполнить массив данных своими отсчетами. |
|||
|
||||
|
|
Re: ЦАП для E14-140MDнужен будет потоковый, это я уже понял. нужно будет подать на вход установки переходной процесс включения ТТ. Это займёт максимум секунду и то вряд ли. из-за того, что рост очень быстрый, думаю частота дискредитации нужна будет максимально большой. прикинуть, сколько это в байтах я не знаю. |
|||
|
||||
|
|
Re: ЦАП для E14-140MDМаксимальная частота дискретизации у этого прибора 200 кГц. 1 с = 200000 осчетов = 800000 байт.
START_DAC
Можно взять за основу wav_player, как я советовал выше. Если в это время этим же модулем будет делаться ввод через АЦП, то можно сделать проще: запустить вывод на ЦАП в режиме синхронизации с АЦП, запустить запись данных (WriteFile), потом забыть про ЦАП и собрать нужное количество данных с АЦП. Этим определится время эксперимента. А после окончания ввода с АЦП просто остановить ЦАП, который в фоне свое отработал (GetOverlappedResult, STOP_DAC).
|
|||
|
||||
|
|
Re: ЦАП для E14-140MDfor (int i = 0; i < DAC_BUF_SAMPLES; i++)
|
|||
|
||||
|
|
Re: ЦАП для E14-140MDи насколько я понимаю, после этого нужно удалить часть с ожиданием следующего буфера. |
|||
|
||||
|
|
Re: ЦАП для E14-140MDНу да, заполнить массив своими значениями. buf[i][j] = i-й отсчет канала j, j = 0..1. Ожидание окончания надо сделать и для единственной записи (каждому WriteFile в режиме overlapped должен соответствовать GetOverlappedResult). WaitForSingleObject не обязателен, если у GetOverlappedResult параметр bWait == TRUE, но в этом случае нет таймаута (ожидание бесконечно до окончания записи или до ошибки). Размер записываемых данных ДОЛЖЕН быть кратен 256 байтам = 64 отсчетам (это особенность работы E14-140M). Если надо вывести меньшее число отсчетов, то можно заполнить dp.TotalSamples (использовать режим "автостоп ЦАП после вывода заданного количества отсчетов"), но размер записи все равно должен быть кратен 256 байт, просто лишние отсчеты не попадут на выход ЦАП. То есть если TotalSamples = 65, то WriteFile должен записать 128 отсчетов (512 байт): 65 реальных + 63 незначащих. Подробнее об этом и всем прочем в e14_140m_addendum_dac.pdf И еще - если надо дождаться окончания _фактического_ вывода на ЦАП (ведь после окончания записи данных в USB еще остается буфер в самом устройстве), то можно опрашивать флаги состояния устройства. Т.е. чтобы DAC_STOP не отрубил хвост. Пример использования - wav_player.
|
|||
Страницы 1
Тема закрыта
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон:+7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск