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


e140 ошибка в устройстве.

Вы не вошли.

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

Андрей
23.06.2006 06:20:57
#1

Гость

e140 ошибка в устройстве.

В самом начале работы заметил, что когда снимаешь данные со всех каналов в режиме однократного отсчета и в режиме поточного съема данных, то эти данные отличаются. Тогда я решил что проблема в заглушке (для контроля работоспособности, мы используем заглушку которая на все аналоговые входы подает через резистивный делитель напряжение, которое увеличивается для каждого входа на фиксированное значение). Сегодня решил вплотную занятся этим вопросом и оказалось, что проблема в самом устройстве. В поточном съеме со всех 32 каналов, значения в посылке равномерно увеличиваются внутри каждого кадра, как и должно быть. При аналогичном однократном съеме со всех 32 каналов оказывается, что вместо того чтобы
соответствие номеров каналов и аналоговых входов на разъеме была такой:
1 канал - 37 пин
2 канал - 36 пин
3 канал - 35 пин
4 канал - 34 пин
и т д
получается схема другая:
1 канал - 37 пин
2 канал - 33 пин
3 канал - 29 пин
4 канал - 25 пин
и т д
причем 1,16,17,32 каналы измеряют сигнал с правильных пинов.
Порывшись в исходниках и сопоставив данными от потокового съема пришел к выводу, что управляющая программа для AVR в случае однократного съема имеет ошибку. Других объяснений у меня нет.

Андрей
23.06.2006 06:29:02
#2

Гость

Re: e140 ошибка в устройстве.

Судя по всему для младших 4 бит номера канала используется операция сдвиг влево на 2.
Непосредственно перед выдачей сигнала на аналоговый мультиплексор. Или может наоборот. Для потокового съема поставили, а для однократного нет.

Андрей
23.06.2006 06:31:58
#3

Гость

Re: e140 ошибка в устройстве.

Пардон, сдвинуть влево на 2 нужно для исправления ошибки(можно в драйвер прописать). Соответственно в устройстве используется сдвиг вправо.

Alexander
23.06.2006 09:48:05
#4

Гость

Re: e140 ошибка в устройстве.

1. Рекомендую скачать с сайта L-Card последнюю версию dll-библиотеки для модуля.

2. Приведите исходный код вашей программы.

Андрей
23.06.2006 10:10:45
#5

Гость

Re: e140 ошибка в устройстве.

Ну начнем с того что, я пишу под ЛИнукс поэтому никаких dll библиотек не использую. Использую драйвер lcdrv-1.0.26. , даже не его, а адаптированную версию по ядро 2.6.x, хотя и на ядре 2.4 e140 вела себя точно также.
Библиотеку ldsp так же не использую. Для работы использую вызовы ioctl().
Анализ драйвера (исходники есть на сайте), показал, что никаких преобразований с номером канал не далается. Если хотим снять отсчет с 1 канала. То пишем в ci.input = 1. А потом это значение без изменений записывается в соответствующие биты ci.log_channel (при помощи функции log_ch() ), а дальше передается в устройство. Причем функция log_ch() используется и для поточного съема. Но при поточном съеме все ровненько, а при одиночном, наблюдается выше указанный эффект.
Приводить программу не буду, так как для демонстрации эффекта она весьма примитивна.
Алгоритм такой:

channel inf ci;
int res;
for(int i=0;i<32;i++){
  ci.input = i;
  res = ioctl(dev,LDSP_SAMPLE_IN,&ci);
  printf("ch = %d , sample = %d/n",i,ci.sample);
}

Еще я посмотрел исходники драйвера для виндовс, там вообще нужно самому собирать log_channel.
В линуксовом драйвере, это делает функция log_ch(), как уже было сказанно.

Alexander
23.06.2006 14:57:07
#6

Гость

Re: e140 ошибка в устройстве.

Понятно. Посмотрим.

23.06.2006 15:43:27
#7

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

Re: e140 ошибка в устройстве.

Посмотрим эту проблему на следующей неделе.

Андрей
26.06.2006 11:28:43
#8

Гость

Re: e140 ошибка в устройстве.

Кстати, вообще как насчет поддержки пользователей вашей продукции? Я вот тут уже месяц бьюсь с драйверами, но реакции никакой. Вот с железкой непонятки. Ошибка конечно не критичная (2 строчки в драйвере и можно забыть про нее), но интересен сам подход.

DKorolkov
26.06.2006 13:02:31
#9

Гость

Re: e140 ошибка в устройстве.

Ошибка в драйвере найдена. В ближайшее время выложу  новую версию в библиотеку файлов на сайте. Если нужно срочно, напишите мне на e-mail, пришлю исправленный вариант (весь архив или один исходник).

Андрей
26.06.2006 13:09:34
#10

Гость

Re: e140 ошибка в устройстве.

А что за ошибка-то? А то ошибок в драйвере море.
Может прежде чем все высылать давайте все исправим, а потом выкладывайте.
Готов оказать посильную помощь в тестировании драйвера.

DKorolkov
26.06.2006 13:26:54
#11

Гость

Re: e140 ошибка в устройстве.

> А что за ошибка-то?

Там есть макрос LOG_CHAN_CODE, который меняет местами две младшие пары битов в номере канала. При потоковом вводе этот макрос применялся, а при одиночном - нет.

> Может прежде чем все высылать давайте все исправим, а потом выкладывайте.
Готов оказать посильную помощь в тестировании драйвера.

Вот я и хочу послать исправленный вариант, чтобы было что тестировать.

Андрей
26.06.2006 13:33:14
#12

Гость

Re: e140 ошибка в устройстве.

То есть так оно и должно быть (в железяке действительно номера каналов слегка не в порядке возрастания номеров). А как же тогда виндовс.
Там же пользователь сам собирает логический канал?
Он то об этом знает? Или все меряют первый канал, и дальше не лезут?

Если это единственное исправление драйвера, то этого явно недостаточно.
По электронной почте, я описывал другие эффекты и проблемы.

DKorolkov
26.06.2006 15:24:54
#13

Гость

Re: e140 ошибка в устройстве.

>  А как же тогда виндовс.

Под Виндовс эта коррекция присутствует, все каналы работают нормально.

> Если это единственное исправление драйвера, то этого явно недостаточно.
По электронной почте, я описывал другие эффекты и проблемы.

Постараюсь найти возможность разобраться.

Андрей
27.06.2006 08:49:08
#14

Гость

Re: e140 ошибка в устройстве.

Значит, оно (е140) действительно так устроено, а драйвер должен корректировать.
Ну в принципе тогда все нормально.