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


Коррекция данных при Fраб >1 мгц

Вы не вошли.

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

Лекарь
12.12.2002 20:24:54
#1

Гость

Коррекция данных при Fраб >1 мгц

Работаем с L-783 на частотах свыше 1 мгц.Коррекцию
данных проводим за счет настройки коеффициента передачи внешнего предусилителя.Хотелось бы извлечь коэффициенты коррекции из ПЗУ платы и корректировать записанные данные после процесса записи, но как эти коэффициенты извлечь из ПЗУ платы - не понятно.Описание к плате не дает простого решения, как это сделать. Просим помочь,
а именно:написать пару команд, с помощью которых можно коэфф. коррекции извлечь и в некий массив положить.Спасибо.

15.12.2002 08:28:33
#2

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

Re: Коррекция данных при Fраб >1 мгц

Если под Windows то это ReadPlataDescr_PLX и коэффициенты лежат в массивах в структуре PLATA_DESCR.

Лекарь
17.12.2002 00:23:21
#3

Гость

Re: Коррекция данных при Fраб >1 мгц

Павел, спасибо за ответ. Но нельзя ли по подробнее,в каких именно массивах в структуре PLATA_DESCR лежат коэффициенты? Спасибо.

17.12.2002 09:42:24
#4

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

Re: Коррекция данных при Fраб >1 мгц

Структура описывает FLASH на PCI платах L-761/L-780/L-783.

Описание:

typedef struct __PLATA_DESCR

{

   WORD size;

   char SerNum[9];

   char BrdName[5];

   char Rev;

   char DspType[5];

   long Quartz;

   WORD IsDacPresent;

   WORD Reserv1[7];

   WORD KoefADC[8];

   WORD KoefDAC[4];

   WORD Custom[32];

} PLATA_DESCR , *PPLATA_DESCR;

Параметры:

   WORD size - размер структуры;

   char SerNum[9] - серийный номер платы;

   char BrdName[5] - название платы;

   char Rev - ревизия платы;

   char DspType[5] - тип DSP;

   long Quartz - частота кварца;

   WORD IsDacPresent - наличие ЦАПа;

   WORD Reserv1[7] - зарезервировано;

   WORD KoefADC[8] - калибровочные коэффициенты АЦП;

   WORD KoefDAC[4] - калибровочные коэффициенты ЦАП;

   WORD Custom[32] - пользовательское место;

Примечание:

Смотри еще:
   ReadPlataescr_PLX, WritePlataDescr_PLX, ReadFlashWord_PLX, WriteFlashWord_PLX, EnableFlashWrite_PLX

Лекарь
22.12.2002 15:01:00
#5

Гость

Re: Коррекция данных при Fраб >1 мгц

Павел,Спасибо.Разобрался.

Лекарь
23.12.2002 18:24:29
#6

Гость

Re: Коррекция данных при Fраб >1 мгц

Здравствуйте,Павел.Мне кажется,что все таки мы не поняли,
как извлечь корректирующие коэффициенты из ПЗУ.
Делаем так:(пишем на Delphi5)
var pd:PLATA_DESCR;
    K:Array[1..4] of word;// массив для 4-х коэф.корректировки масштаба
    C:Array[1..4] of smalint;//массив для 4-х коэф.смещ.нуля
begin
  ReadPlataDescr_PLX(@dev,@pd,0);
  C[1]:=pd.KoefADC[0];//подразумеваем,что это смещен. для усиления 1
  K[1]:=pd.KoefADC[4];//подразумеваем,что это коэф.корректировки масштаба для усиления 1
и т.д. и т.п.

В результате получаем полную чушь:
pd.KoefADC[0]=64404;  pd.KoefADC[4]=64300;
pd.KoefADC[1]=107;    pd.KoefADC[5]=107;
pd.KoefADC[2]=1;      pd.KoefADC[6]=2;
pd.KoefADC[3]=0;      pd.KoefADC[7]=0;
Павел,большая просьба просветить нас,в чем ошибка? Может мы чего не так поняли?

24.12.2002 08:37:38
#7

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

Re: Коррекция данных при Fраб >1 мгц

Интерпретируйте их как знаковые слова.

Лекарь
24.12.2002 20:08:17
#8

Гость

Re: Коррекция данных при Fраб >1 мгц

Павел,во первых вопрос:
Правильно ли мы разобрались что,
pd.KoefADC[0]-это корректировка смещения 0 усиления 1;
pd.KoefADC[1]]-это корректировка смещения 0
усиления 4;
pd.KoefADC[2]-это корректировка смещения 0
усиления 16;
pd.KoefADC[2]-это корректировка смещения 0
усиления 64, а
pd.KoefADC[5];pd.KoefADC[6];pd.KoefADC[7] и pd.KoefADC[4]-это корректировка масштаба усиления
с 1 по 64 соответственно?
Во-вторых мы нашли в конференции ответ, что
Смещение нуля может быть как больше,так и меньше нуля. Следовательно смещение это integer. Корректировка масштаба в принципе не может быть отрицательной. Значит масштаб это word. Например, для усиления 16 нужно сделать следующее: (U + (-2))* 32681/32768.0, а для усиления 1: (U + 3)* 33015/32768.0
Как быть?Спасибо.

25.12.2002 15:01:59
#9

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

Re: Коррекция данных при Fраб >1 мгц

Вы всё правильно поняли (с точностью до индексов в массиве pd.KoefADC). pd.KoefADC[4], pd.KoefADC[5], pd.KoefADC[6] и pd.KoefADC[7] - корректировка масштаба усиления с 1 по 64 соответственно. Только у Вас какие-то странные корректировочные коэффициенты получились. Типичный массив pd.KoefADC для этих коэффициентов должен выглядеть примерно так: {0, 0, 0, 65533, 32927, 32846, 32947, 33097}