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


Работа с цифровыми линиями в Linux (E20-10)

Вы не вошли.

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

Василий
27.04.2012 08:08:45
#1

Гость

Работа с цифровыми линиями в Linux (E20-10)

Добрый день!
Есть устройство E20-10, есть синхроимпульс типа Pulse с частотой 250 Hz и минимальная скважность. Смысл в том, чтобы процесс Оцифровки данных с аналогового входа начинался тогда, когда приходит импульс (соответственно по спадающему фронту зондирующего импульса). Как я понял сигнал START служит только для синхронизации нескольких Е20-10 ? (т.е. надо держать всегда логическую единицу для записи данных в буфер). Т.к. при подаче на линию START зондирующего импульса и соответствующей настройке adcPar.t2.SynchroType = EXT_START_DOWN_REVB получаю старт АЦПирования в момент подачи сигнала и искажение записанного сигнала с аналоговой линии (если писать сигнал с настройкой adcPar.t2.SynchroType = INT_START всё пишется отлично). Возможно ли использование цифровых линий в данном случае? В документации подробного описания работы с линиями я не нашёл. Либо есть другая возможность решения проблемы?
ОС SalckWare 13, драйвера и по с сайта.

27.04.2012 08:44:02
#2

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

Re: Работа с цифровыми линиями в Linux (E20-10)

Василий.
1. "Синхроимпульс типа Pulse" соответствует по электрическим характеристикам TTL-cигналу?
2. Под "минимальной скважностью" конкретно какое значение скважности подразумеваете?
3. "Как я понял сигнал START служит только для синхронизации нескольких Е20-10?" - Это совсем не так. Например, при описании синхронизации "внешняя – ведомый по фронту сигнала START" (см.   http://www.lcard.ru/download/e20_10_users_guide.pdf , табл.5-2) подразумевается, что принципиально ведущим устройством может быть любой источник TTL-синхросигнала.
4. Если внешний START должен происходить периодично с минимальным временем, необходимым на перезапуск, то следует использовать аппаратное условие останова сбора данных "По количеству M записанных кадров" (табл.5-5), причём, время сбора данных в течение M кадров должно гарантированно укладываться в период следования синхроимпульсов 1/250Hz = 4 мс.  Если этот режим останова не использовать, то сбор данных придётся останавливать не аппаратно, а программно, но тогда из под Windows не будет гарантированной возможности останавливать в рамках времени 4 мс.

Василий
27.04.2012 10:09:33
#3

Гость

Re: Работа с цифровыми линиями в Linux (E20-10)

1. Соответствуют TTL сигналу (амплитуда 3.3v)
2. 0.048%
3-4. Документ читал, не совсем понятно как это реализовать программно используя "LComp руководство программиста"
Руководствуясь примером (test) я заполнил структуру следующими значениями
    adcPar.t2.s_Type = L_ADC_PARAM;
    adcPar.t2.AutoInit = 1;
    adcPar.t2.dRate = 10000.0; // частота опроса каналов АЦП
    adcPar.t2.dKadr = 0.;
    adcPar.t2.SynchroType = EXT_START_DOWN_REVB;
    adcPar.t2.SynchroSrc = 0x40; // источник тактовых импульсов для АЦП
    adcPar.t2.AdcIMask = SIG_0 | V30_0 ; // Задаёт режим ввода по каналам
    adcPar.t2.NCh = 4;
    adcPar.t2.Chn[0] = 0x0;
    adcPar.t2.Chn[1] = 0x0;
    adcPar.t2.Chn[2] = 0x0;
    adcPar.t2.Chn[3] = 0x0;
    adcPar.t2.FIFO = 32768;
    adcPar.t2.IrqStep = 32768;
    adcPar.t2.Pages = 8;
    adcPar.t2.IrqEna = 1;
    adcPar.t2.AdcEna = 1;

    // extra sync mode
    adcPar.t2.StartCnt = 0;
    adcPar.t2.StopCnt = 16000000;
    adcPar.t2.DM_Ena = 0;
    adcPar.t2.SynchroMode = 0;
    adcPar.t2.AdPorog = 0;

Аналоговый сигнал - синус с частотой 1,2Mhz Amp = 2v

С данной настройкой собираю только частички синуса

http://www.flickr.com/photos/77695807@N04/7117894251/ По этой ссылке можно посмотреть как выглядят сигналы (Синус и искажённый синус )

27.04.2012 11:33:38
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Работа с цифровыми линиями в Linux (E20-10)

adcPar.t2.SynchroSrc = 0x40; // источник тактовых импульсов для АЦП -  вот это по ИЛИ сюда adcPar.t2.SynchroType = EXT_START_DOWN_REVB; для начала. Это типа баг. Под Windows исправил под Linux еще нет.

Василий
27.04.2012 11:54:29
#5

Гость

Re: Работа с цифровыми линиями в Linux (E20-10)

Не совсем понял, но попробовал и:
adcPar.t2.SynchroType = EXT_START_DOWN_REVB | 0x40;
adcPar.t2.SynchroSrc = 0x40;

и так:
adcPar.t2.SynchroType = EXT_START_DOWN_REVB;
adcPar.t2.SynchroSrc = 0x40 | EXT_START_DOWN_REVB;

Ничего не изменилось.

27.04.2012 13:22:17
#6

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Работа с цифровыми линиями в Linux (E20-10)

StopCnt попробуйте задать адекватно расчитанный. И еще прошивку платы размером 40481 загружайте. В линукс она там может быть старой. Найти свежую можно или в виндовом lcoьp или на CD в папке
/USB/LUSBAPI/DLL/SOURCE/LUSBAPI/

Василий
28.04.2012 09:42:19
#7

Гость

Re: Работа с цифровыми линиями в Linux (E20-10)

Спасибо! С новой прошивкой всё работает!

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4

Многоканальный телефон:+7 (495) 785-95-25

Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск