Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???и все же, есть ли в винде лимит какой-то? ну или не в винде то в железе компа. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???В любом случае, в USB скорость определяется самым медленным устройством. В случае E14-140 скорость будет full-speed для любой мат.платы. Это, собственно, и является лимитом физически возможной скорости в данном случае.
|
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???На сайте выложен специализированный дистрибутив для МСВС 3.0 с поддержкой модулей E20-10,E-4-140, E14-440, E-154 - http://www.lcard.ru/download/lcomp_linux_2.4.32.tgz |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Добрый день. Сегодня как раз потребовалось установить lcomp_linux_2.4.32.tgz под МСВС. Но при сборке каталога lcomp компилятор выдал:
Прочитал здесь: http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html
Вроде собралось, но вопрос уже больше к Вам - может где-то это имя структуры "_a" поглубже зашито и упадёт runtime (в Ваш код не лез)?... По ссылке там флаг компилятору указан, так чтобы не убирать имя вложенной структуры, но у меня с таким флагом не собиралось. Версия gcc:
Дальше каталог ./ldevusb_drv - собрался, объектник на выходе получил. Следующий каталог ./ldevice_drv:
Подцеплены только линуксовые хэдеры. Никакого `current' в указанных строках не вижу). Там только spin_lock() - она же file_list_lock() из ..../linux/fs.h. И spinlock_t - структура из одного int-а, объявленная в spinlock.h..... В чем причина - не знаю... В этом каталоге, ldevice_drv, при скачивании архива уже находились два собранных объектника от ldevice_drv и ldevusb_drv. Запустил скрипт start - создал ссылки, как я понимаю, только со второго раза:
После всех make-ов много варнингов - с переменными неиспользуемыми ладно, но встречаются и по делу. Пример из папки ./test - собрался, запустился, что-то выдал .) Вопросы по сборке каталогов остаются. В инструкции по инсталяции ничего не сказано, про то, что объектник из ldevusb_drv нужно перетащить в ldevice_drv - не просто ведь так он там оказался .) |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Я точно не помню уже что там было. С эти МСВС одни сложности. Я смог его установить только на очень древней машине и в конечном итоге это работало на ядре без smp. Кроме этого мне кажется что 3.3.6 это второй компилятор в системе, а основной чуть ли не 2.9.5. C заказчиком я помню были сложности как раз с тем что драйвера я собирал системным, а в Qt они работали с опциональным... |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???В системе нашел три версии gcc (2.9, 3.3, 4.1). На этот раз собирал версией 2.95.4:
Каталог ./lcomp с Вашим кодом собрался без изменения stubs.h. На счет ./ldevice_drv - ошибка по-прежнему осталась:
Что можете предложить? Пересобрать ядро без smp? Честно говоря, понятия не имею как это делается. Может man какой есть? Да и как это отразится на работе, скажем, других программ, установленных на машине? Как быть с теми двумя собранными Вами объектниками ldevice_drv и ldevusb_drv, которые уже находились в скаченном мной с Вашего сайта архиве? Ведь когда я позаимствовал оттуда ldevice.o, который у меня не собирается, то тестовый пример вроде как запустился. Этого недостаточно? Он был собран без smp и у меня, в конечном итоге, всё равно корректной работы не выйдет? p.s. Был закуплен E14-140М. Предполагается, что библиотека будет использоваться для него. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???У меня есть еще такой ldevice.c более поздний где включен #include <linux/smp_lock.h> #include <linux/config.h> #include <linux/smp_lock.h> #include <linux/kernel.h> может он соберется если добавить... |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Да, действительно, достаточно было добавить один заголовочник:
Все собралось, запустилось, тестовый пример устройство опрашивает. Будем разбираться в функциях самой библиотеки. Спасибо за помощь в установке. Но вопросы, скорее всего, еще появятся. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Добрый день. Возникло несколько вопросов. Когда я первый раз запускал тестовый пример, все, судя по всему, отработало нормально - плата опрашивалась. Тогда, с подключенным генератором(вроде бы была синусойда 50KHz), записался файл test.dat(4 Mb). Теперь же при подключении устройства и запуске примера работа обрывается, когда функция CreateInstance(atoi(argv[1])) возвращает нулевой указатель. Последний рабочий раз плату отсоединял уже после отключения компьютера. А когда подсоединял снова на генераторе было изначально выставлено 1 MHz, потом уже я изменил на 100 KHz, не помню вот только сигнал подавался сразу, или после изменения частоты - может в этом причина... Как-то это могло повлиять? Кстати, я так и не разобрался как мне прочитать записанный файл test.dat. Сама задача простая: необходимо входной аналоговый сигнал в реальном времени после оцифровки отображать на экране компьютера. Т.е, проще говоря, нужно как-то извлечь из этого файла набор точек (x, y). |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???я надеюсь при подсоединении устройства драйвер запустился? Можно под Windows проверить работоспособность установив lcomp и запуститв примеры... |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Работает. Причина: start.sh почему-то линки только со второго раза создает. Вопрос с прочтением записанных бинарных данных test.dat остался. В каком виде данные забираются из памяти платы? По примеру, там, как только половина буфера накапливается, происходит сброс данных. Но что там и в каких структурах хранится? |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???
|
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???отсчеты там лежат по кадрам 0 1 2 3 0 1 2 3.... |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Poul пишет:
А можно поподробнее, пожалуйста. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???куда уж подробней. лежат отсчеты с ацп если опрашивается 4 канала, то так и лежат signed short числами друг за другом. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Как эти числа в вольты преобразовать?... Что-то непонятное я получаю, поэтому и спрашиваю Вас поподробнее... 1) На аналоговый вход подается sin - 10KHz, +/-0,5V. Частота опроса каналов в кадре t1.dRate = 100.0 (КГц). Строю график, точки беру из двоичного файла, ставлю их с шагом 0, 00001(шаг по времени взятия отсчетов). В итоге в файле больше 2 000 000 точек и график для меня совсем непонятный: https://yadi.sk/i/pMLb3oIWZvoHp 2) Вход: sin - 10KHz, +/-0,5V; t1.dRate = 20.0; шаг по времени получается 0, 00005. График: https://yadi.sk/i/LI1ukl2AZvoHg 3) Вход: sin - 10KHz, от 0V до 1V; t1.dRate = 20.0; шаг - 0, 00005. График: https://yadi.sk/i/fGko-zdLZvoHP У меня используется один канал, синхронизация по нему же. И еще, t1.Chn[0] = 0x20; - это усиление по 0 каналу 0x20 ? Можно это пояснить? Попробовал разные значения - на выходе ничего не меняется, оставил - 0x1. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???0x20 это должно быть 1 усиление и однополюсный 0 канал. 0x1 это уже должене быть 1 канал в дифф режиме. Посмотрите в описании модуля про логический номер канала. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Павел___ пишет:
e14_140_programmers_guide.pdf параграф 3.2.1: нижняя граница диапазона соответствуют коду -8000, верхняя - +8000 (после коррекции калибровочными коэффициентами). На графиках масштаб не позволяет рассмотреть частоту полезного сигнала (при 10 кГц и частоте дискретизации 100 кГц период 10 точек, а на частоте дискретизации 20 кГц - 2 точки, это частота Найквиста, сигнал ровно на ней подавать не очень корректно). Вот эта "жирная линия" может быть искомой синусоидой. |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Прочитал про логические каналы и про границы диапазона отсчетов после использования калибровочных коэффициентов. Результаты по сути не изменились...
Я эти графики показываю, чтобы видно было, что в целом вся картина неверная, не говоря уже о том, чтобы высматривать маленькие периоды. Калибровка, на сколько я понимаю, - это смещение и масштаб, - стало быть вид самой характеристики то же не поменяется. Попробовал вот так (аналоговый вход - sin, 10KHz; rate = 100KHz): 1) t1.Chn[16] = 0x30 - сигнал подается на Х16, однофазный, без усиления: https://yadi.sk/i/fqs3PfC3a5mTZ 2) Тот же 16 канал в дифф. режиме без усиления: t1.Chn[16] = 0xF - https://yadi.sk/i/PfQSc7U3a5mTP С усилением, когда t1.Chn[16] = 0x4F, - картинка по форме такая же, но с максимумом не в ~-900, а в ~-600...
Весь файл с отсчетами, целиком(в текстовом виде). 1) Аналоговый вход - sin, 10KHz; rate = 100KHz; дифф. режим - https://yadi.sk/d/P5P7efyNa5mEa 2) Аналоговый вход - sin, 1KHz; rate = 50KHz; дифф. режим - https://yadi.sk/d/iw0qtETEa5mES |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???как под windows L-Graph показывает картинку? как работает все это под Linux с драйверами lcomp_linux.tgz не для мсвс? |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Poul пишет:
Хорошо, я посмотрю. Но мне всё же кажется, что я как-то неверно режим задаю... Я точно правильно задал управляющий байт АЦП?... Говорю, потому что когда я неправильный канал указывал в этом байте(до тех пор пока не посмотрел после Вашего комментария) картинка-то у меня всё равно такая же была!... С другой стороны, когда я задал усиление:
... отклик какой-то от системы был, а значит канал правильно задан(картинка же неверная потому что разбавляется со всех других не заземленных)... У меня сейчас фактически используется одна ножка - Х16, другие каналы не заземлены (хотя в руководстве написано надо бы), - может здесь причина?... Может синхронизацию нужно убрать с Х16 и как-то по-другому её задать?... |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Павел___ пишет:
- Хотя бы примеры подключения посмотрите: |
|||
|
||||
|
Re: Драйвер E20-10 для ядер Linux 2.4 ???Павел___ пишет:
Хотя бы AGND и GND32 подключены, как в руководстве написано? Можно для простоты написать макро для вычисления логического номера канала:
|