Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


генератор синуса на L502

Вы не вошли.

 Поиск | Регистрация | Вход 

Алексей1000
20.10.2017 12:20:50
#1

Гость

генератор синуса на L502

Доброго дня! где можно найти пример, как генерить "живой" синусоидальный сигнал
на плате L502. Т.е. амплитуда синуса должна медленно изменяться.

спасибо!

20.10.2017 19:50:53
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,326

Re: генератор синуса на L502

Добрый день. Для "живого" синуса (если сам изменяющийся синус изменяется не по периодическому закону) нужно использовать потоковый вывод на ЦАП, когда живой синус рассчитывается на лету и все время подгружаются новые точки. Готового примера на это нет, но в этот режим описан в документации программиста, а сама загрузка во многом похожа на циклический режим (который показан в примере http://www.lcard.ru/download/examples/l … le_out.zip, за исключением другой функции запуска и необходимости загрузки не одного периода, а постоянной загрузки сигнала.

Алексей1000
21.10.2017 13:25:18
#3

Гость

Re: генератор синуса на L502

спасибо, но ссылка на архив не открывается, открывается окно со списком проектов

21.10.2017 15:02:41
#4

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: генератор синуса на L502

Алексей1000 пишет:

спасибо, но ссылка на архив не открывается, открывается окно со списком проектов

Попробуйте снова, администратор подправил эту ссылку

Алексей1000
23.10.2017 07:45:39
#5

Гость

Re: генератор синуса на L502

спасибо, файл скачался!

Алексей1000
23.10.2017 14:46:03
#6

Гость

Re: генератор синуса на L502

Принципиально все работает.  Я в таймере вызываю функцию f_load_cycle_signal с новыми параметрами синусоиды. Мне не ясно почему более 10 раз в сек. нельзя обновлять сигнал, иначе программа сразу виснет и сигналы пропадают. Это какие-то настройки драйвера надо менять?

Алексей1000
23.10.2017 15:13:05
#7

Гость

Re: генератор синуса на L502

еще забыл спросить - для чего в проекте константа OUT_SIGNAL_SIZE, она нигде не используется?

23.10.2017 16:00:22
#8

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,326

Re: генератор синуса на L502

Да, OUT_SIGNAL_SIZE нигде не используется, его можно удалить, остался от старой версии примера (когда размер циклического сигнала брался не из таблицы, а был один, в потоковом он бы в любом случае не использовался).

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

Если с этим не связано, то нужно смотреть, где именно "подвисает" программа

Алексей1000
24.10.2017 09:09:38
#9

Гость

Re: генератор синуса на L502

Выставил обновление сигнала на 20 раз/с, отловил ошибку    L502_ERR_IOCTL_FAILD  -132  после которой сигналы пропадают. В хелпе написано "управляющий запрос к драйверу совершен с ошибкой".  А нельзя поподробнее про эту ошибку?

Алексей1000
24.10.2017 09:16:19
#10

Гость

Re: генератор синуса на L502

Забыл сказать, что после этой ошибки цапы повторно уже не запускаются. Только после сброса питания компа  запускаются.

Алексей1000
24.10.2017 09:34:45
#11

Гость

Re: генератор синуса на L502

Еще определил что ошибку -132 выдает функция L502_OutCycleLoadStart.

24.10.2017 12:46:42
#12

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,326

Re: генератор синуса на L502

Если вы работаете в потоковом режиме, то L502_OutCycleLoadStart вызывать не нужно, она относится только к циклическому выводу... Последовательность вызовов при потоковом выводе описана в разделе 3.2.2 руководства программиста (http://www.lcard.ru/download/x502api.pdf) и более подробное описание в разделе 3.7.2