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


Пользовательская прошивка E14-140M+соединение с ПК

Вы не вошли.

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

Максим
09.10.2009 10:46:08
#26

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Тут заметил что правлю исходники прошивки для 140М версии 3.03, а можно ли получить версию 3.04, вроде как исправления там нужные мне. И вопрос который задал выше в силе)спасибо

09.10.2009 10:49:42
#27

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Пользовательская прошивка E14-140M+соединение с ПК

Структуры действительно не совпадают, потому что DLL преобразует структуры из "формата приложения" (где, например, частота дискретизации типа double) в "формат устройства". Исходный текст DLL открыт, он есть в архиве lusbapiXX на сайте (для понимания данного вопроса годится и версия 3.2).

Максим
12.10.2009 07:09:22
#28

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Ждем с нетерпением lusbapi3.3.

12.10.2009 13:23:12
#29

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Пользовательская прошивка E14-140M+соединение с ПК

Сегодня обещали выложить.
Кстати, Максим, даю совет: самый простой способ попробовать добавить свои команды в протокол обмена по USB - это функции низкого уровня GetArray/PutArray (берете любой свободный "адрес", это будет код команды). "Адрес" я пишу в кавычках, потому что, как видно из usbcmd.c/usbcmd.h, этот параметр трактуется достаточно произвольно.
Функции GetArray/PutArray экспортирует штатная DLL, т.е. ее можно не перекомпилировать.

12.10.2009 18:20:26
#30

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

Re: Пользовательская прошивка E14-140M+соединение с ПК

Lusbapi3.3 выложу завтра к 14-00.

Максим
13.10.2009 06:48:34
#31

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Сегодня обещали выложить.
Кстати, Максим, даю совет: самый простой способ попробовать добавить свои команды в протокол обмена по USB - это функции низкого уровня GetArray/PutArray (берете любой свободный /"адрес/", это будет код команды). /"Адрес/" я пишу в кавычках, потому что, как видно из usbcmd.c/usbcmd.h, этот параметр трактуется достаточно произвольно.
Функции GetArray/PutArray экспортирует штатная DLL, т.е. ее можно не перекомпилировать.

Спасибо за совет Александр,чесно говоря так и делаю.)

Максим
13.10.2009 13:46:24
#32

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Огромное спасибо!

Максим
14.10.2009 10:07:07
#33

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Добрый день! Вопрос следующий!Почему при вызове процедуры GET_ADC_PARS в билдере С++ 5.0 выскакивает ошибка, якобы на ноль делить нельзя!Пролистал исходники, действительно
this->AdcPars.AdcRate = (double)ClockRate/2000.0/(*(WORD*)(buf+128)),(buf + 128) = 0? такое ощущение что структруа АЦП получаемая по USB содержит все нулевые поля!При все при этом не все примеры работают корректно. Прошивку шью 3,04. Поясните пожалуйста!

14.10.2009 15:50:56
#34

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

Re: Пользовательская прошивка E14-140M+соединение с ПК

Да, такой глюк есть. Завтра будем аккуратненько рихтовать прошивку ARM.

15.10.2009 13:30:21
#35

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

Re: Пользовательская прошивка E14-140M+соединение с ПК

Действительно нули. Модулю это все равно, а DLL не нравилось.
Исправили, в библиотеке файлов прошивка 3.05 и исходники.
http://www.lcard.ru/download

Но на самом деле вызывать GET_ADC_PARS() раньше SET_ADC_PARS() не имеет большого смысла.

Максим
19.10.2009 13:13:41
#36

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Доброе время суток!Столкнулся с проблемой, не могу инициализить нулевой таймер(TC0, речь идет о плате 140М), как ене пытался, плата перегружается и все!Примерно намекните как создать еще одно прерывание, сидящее на TC0. Спасибо

19.10.2009 13:54:06
#37

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Пользовательская прошивка E14-140M+соединение с ПК

Надо смотреть код. Перезагружаться может по watchdog, если завесить программу или войти в длинный цикл (~1 сек), из которого не вызывается WDT_Restart().

Хотелось бы посмотреть пример кода. Наверное, это лучше сделать по email.

Максим
20.10.2009 07:56:01
#38

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

выслал на почту

20.10.2009 16:14:24
#39

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

Re: Пользовательская прошивка E14-140M+соединение с ПК

Ответили по почте.

Максим
21.10.2009 13:24:54
#40

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Еще один вопрос)))При работе с ЦАП возникает такой вопрос: почему разрядность ЦАП в потоковом режиме 16 бит, а в DAC_SAMPLE 12 бит?

22.10.2009 10:40:57
#41

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Пользовательская прошивка E14-140M+соединение с ПК

Очень просто - для совместимости с E14-140(-не-М), у которой 12-битный ЦАП.

Это, кстати, хорошо видно в функции cb_USB_DAC_Command() (файл USBCmd.c).

В терминах lusbapi.dll - функция DAC_SAMPLE() старая для совместимости, вывод на один канал с разрешением 12 бит, а DAC_SAMPLES() - новая, вывод на оба канала полных 16-битных отсчетов.
В программах, рассчитанных на E14-140-M, пользоваться 12-битной функцией не следует.

Кстати, еще одна деталь: калибровочные смещения ЦАП в дескрипторе модуля рассчитываются исходя из 12 бит (опять же для совместимости со старой E14-140). Но поскольку они с плавающей точкой и могут быть дробными, точность при этом не теряется - просто для работы с 16-битными данными Dac.OffsetCalibration[i] надо умножать на 16.0
(если вообще используете калибровочные коэффициенты)

Максим
09.11.2009 09:17:18
#42

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Доброе утро! Взял исходники для 140M SynchroInput, для Builder 6.0, добавил поток для ЦАПА, в итоге получаю что вместе работать они совершенно не хотят! Вместе работают только как в примере ReadWrite.cpp,но к сожалению графику туда не засунуть, решено было  по аналогии просто c SynchroInput прикрутить ЦАП и все что я генерю ЦАПом чиать на АЦП, но получается что поток просто заканчивает работу и по Terminated выходит!

Максим
09.11.2009 09:22:55
#43

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Поправка, буквально секнуду назад добился синхронной работы потоков АЦП и ЦАП,НО синусоида которую генерю получается прерывистой!

09.11.2009 11:19:45
#44

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Пользовательская прошивка E14-140M+соединение с ПК

Наиболее вероятно, что происходит опустошение буфера ЦАП. Не видя Вашего исходника, трудно разобрать причину, но не все ли там в одном потоке и не вставлено ли ожидание данных с АЦП между отправками данных в ЦАП?

Для устойчивой работы программа должна быть способна обеспечить подачу данных в ЦАП с заведомо большей скоростью, чем скорость вывода на ЦАП. Лучше всего, чтобы это был или отдельный thread на запись, который больше ничем не занимается, или чтобы всегда висел как минимум один незаконченный запрос в режиме overlapped.
Если Вы передаете принятое с АЦП, то стоит подумать о задержке как минимум в один буфер.

С момента, когда закончилась одна WriteData, а следующая не началась, у модуля есть 24 КБайт памяти (16К буфера чтения USB + 8K буфера вывода ЦАП). На скорости 200 кГц это 30 мс, на 25 кГц - почти четверть секунды. То есть непрерывность потока достаточно критична.

1. Можно проверить с помощью осциллографа, являются ли наблюдаемые Вами провалы последовательностями нулевых отсчетов в количестве, кратном 64 (размер блока DMA в приборе). Я уверен, что это именно так.

2. Для теста попробуйте снизить в 2 раза скорость ЦАП.

3. Проанализируйте алгоритм программы на предмет времени, в течение которого она может не отреагировать на завершение операции записи посылкой новых данных. Типичная проблема - когда, проводя аналогию с бассейном, диаметр струи "как бы равен" диаметру сливной трубы, и дно сухое: тогда пузыри воздуха неминуемы. Надо, чтобы в бассейне все время стояла вода.

Максим
24.11.2009 11:04:50
#45

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Доброе время суток!При работе с 140й случайно заметили что греются ЦАПы, градусов так 50-60, нормально ли это?

25.11.2009 14:40:53
#46

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

Re: Пользовательская прошивка E14-140M+соединение с ПК

Максим. Если речь идёт про E14-140-M, то это нормальный  рабочий режим ЦАП. Если у Вас E14-140, то это ненормально (там ЦАП-ы низкопотребляющие).

25.11.2009 22:29:37
#47

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

Re: Пользовательская прошивка E14-140M+соединение с ПК

Не стоит бояться перегрева ЦАП в E14-140-M. Дизайн прошёл испытания до +55 град. окружающей среды в предельно допустимых режимах, оговорённых в руководстве. Превышать +55 град. окружающей среды не рекомендуется.

Олег
02.12.2009 14:43:50
#48

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

Здравствуйте.
1)Заитересовала возможность написания совей прошивки но опыта подобного плана нет,
http://www.lcard.ru/download/e14_140_users_guide.pdf ,в разделе 6 говорится что есть возможность добавление собственых функций в основную програму работы платы.
собственно пример задачи будет более обобщающим
нужно чтобы плата принемая данные 1-3 аналогововых канала и 1-5 цифровых, полученые даные перещитывала по формуле и выдавала результат на каналы цапа ,также по возможности с  приемом даных на компьютере с последующей там их обработкой или отображением(скажем считал по каналу 1 вольт выдал на цап 0.5)все это нужно как можно сократить по времени так что принятие даных на компьютер пересчет их и выдача нужного сигнала неподходит из за времени приема передача.
где можно получить исходники с прошивкой и ее структурой или пример возможной ее модернизации.

Олег
02.12.2009 15:57:36
#49

Гость

Re: Пользовательская прошивка E14-140M+соединение с ПК

и еще на плате может быть установле только 2х канальный цап?

02.12.2009 16:21:49
#50

Сотрудник "Л Кард"
Здесь с 23.04.2014
Сообщений: 237

Re: Пользовательская прошивка E14-140M+соединение с ПК

да, ЦАП можно установить только двухканальный. если надо больше, следует посмотреть вот сюда: http://www.lcard.ru/products/ltr/ltr34