Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
LTR-35 перевод кодов ЦАП в ВольтыПодскажите, как правильно выяснить, сколько Вольт получится выдаст на выходе LTR-35 в ответ на загрузку данного кода ЦАП. (Задача, для которой это понадобилось: ведётся управление развёртками мелкими шагами (1 шаг = единица младшего разряда кода ЦАП), но при этом есть ограничения по напряжению, которые нельзя превышать. Причём эти ограничения меняются со временем. Поэтому про каждый код ЦАП нужно выяснять, попадает ли он в безопасный диапазон по напряжению.) |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыВо первых в LTR35 по умолчанию используется калибровка на уровне ПЛИС (пункт 3.5 https://www.lcard.ru/download/ltr35api.pdf), если Вы управляете по кодам напрямую, то насколько я понимаю перед LTR35_Configure() Вы устанавливаете коэффициенты равные Scale = 1 и Offset = 0? Тогда для точного сопоставления Вольт и кодов Вам нужно использовать калибровку в обратную сторону, т.е. после Open прочитать значения Scale и Offset нужных выходов и сохранить их перед установкой в 1 и 0. Далее по обратной формуле вычислить какой некалиброванный код соответствует выставленному X = Y/Scale - Offset. Далее перевести этот код в Вольты, путем V = (X/CodeMax) * AmpMax, где CodeMax - код, который при калибровке соответствует верхней границе номинального диапазона - 0x600000 (константа LTR35_DAC_SCALE_CODE_MAX), а AmpMax - само верхнее значение диапазона - 10 или 1 В, в зависимости от того, какой выход используется (1:1 или 1:10) для LTR35-1 или 20 для LTR35-2 (ну или они же сохранены в соответствующих полях ModuleInfo.DacOutDescr). |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыВышеописанное верно для всего диапазона возможных кодов ЦАП? |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыЕсли речь идет о кодах, для которых соответствующее напряжение находится внутри номинального диапазона, то данная формула работает в пределах заявленной погрешности модуля, а для напряжений вне заявленного диапазона уже значение ошибки не нормируется |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыПодскажите, в каком порядке в структуре .Module.CbrCoef расположены структуры с калибровочными коэффициентами. Там их 8 пар, как я понимаю, по одной паре на канал вывода, соответственно для выходов 1:1 и 1:10. Но в Руководстве программиста не указано, какой элемент пары относится к 1:1, а какой к 1:10. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыСперва идут коэффициенты канала 1 для выхода 1:1, затем для выхода 1:10, и так далее для остальных 7. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыКулыгин Алексей пишет:
Мне остаётся добавить к сказанному выше Алексеем, что данный метод калибровки соответствия "код-напряжение" реализуется для условия нулевого тока нагрузки. В реальных рабочих условиях для пересчёта выходного напряжения (в диапазоне рабочих нагрузок) необходимо также учесть собственное выходное сопротивление ЦАП 50,0 ± 2,5 Ом и 389,0 ± 4,0 Ом (на диапазонах 1:1 и 1:10 соответственно) и величину сопротивления внешней нагрузки. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыВозник ещё вопрос. Возможно ли, зная настройки арифметического генератора, узнать точную последовательность кодов, которые будут выданы на ЦАП? Т. е. алгоритм, по которому LTR-35 эти коды вычисляет. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыЗдравствуйте, Алексей. Кулыгин Алексей пишет:
Возможно. Для этого необходимо воспользоваться режимом получения данных от эхо-канала LTR35 ( https://www.lcard.ru/download/ltr35api.pdf , п. 3.2.5). При этом, полученные эхо-данные будут соответствовать физическим кодам, отправленным в соответствующий канал микросхемы сигма-дельта ЦАП. Но эти коды арифметического генератора будут с коррекцией (в соответствии с калибровочными коэффициетами данного канала и после корректирующего ФВЧ, о котором я писал выше). В то же время, эти коды не будут отражать реальную физическую переходную характеристику микросхемы сигма-дельта ЦАП с внутренним фильтром высокого порядка. С другой стороны, если допустить, что в Вашей задаче упраление ЦАП происходит малыми приращениями сигнала, то переходными (динамическими) характеристиками системы (и реакцией фильтров на переходный процесс) можно пренебречь. В случае арифметического генератора SIN(a) и СOS(a), малые приращения сигнала соответствуют очень низкой частоте генерации и малому приращению угла a. Кулыгин Алексей пишет:
Вообще, предоставление пользователям алгорима арифметического генератора не планировалось... Но, я полагаю, что здесь достаточно знать, что это - алгоритм непосредственного вычисления SIN(a), и СOS(a), где угол а имеет целочисленное 32-битное двоичное представление с возможностью установки целочисленного приращения угла, с обычной 32-битной циклической логикой (число значений угла 2^32). Разрядность результата вычисления SIN, COS - 24 бита. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыИнженер пишет:
Речь идёт о физическом процессе (эксперименте), чувствительность которого превышает единицу младшего разряда кода ЦАП LTR-35 (а именно, речь идёт о сканировании электронной дифракционной картины, выдаваемые LTR-35 напряжения используются для генерации токов развёрток в отклоняющих катушках). В таких экспериментах возникает задача точно (с максимально возможной точностью) повторить форму сигнала и/или его фрагмента за какой-то промежуток времени. Это бывает нужно для верификации экспериментальных результатов или для работы по усовершенствованию формы сигнала под экспериментальную задачу или для подбора других параметров при неизменной форме сигнала с LTR-35. В частности, была бы полезна возможность точно повторить сигнал арифметического генератора с помощью режима циклического или потокового воспроизведения (и далее редактировать данные, используемые в этом режиме) - т. е. выдать вручную точно такую же последовательность кодов, которую генерирует арифметический генератор. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыЧтобы считанный из LTR35 эхо-сигнал арифметического генератора снова отправить в LTR35 c целью воспроизведения "цифровой копии" сигнала в потоковом режиме, необходимо считать этот эхо-сигнал в режиме LTR35 с предустановленными в начальные значения калибровочными коэффициентами (и коэффициентами фильтра ФВЧ). Но это - нештатный режим работы с LTR35 - необходима консультация с нашим программистом Алексеем на предмет возможности специального режима работы LTR35 с начальными значениями всех коэффициентов (но без изменения информации во flash-памяти LTR35). После получения эхо-сигнала в этом специальном режиме необходимо будет снова отправить этот сигнал в LTR35 в потоковом режиме, вернувшись к штатным калибровочным коэффициентам, повторяя все остальные условия эксперимента, включая условия начальной синхронизации старта LTR35. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыКулыгин Алексей пишет:
Применение циклического режима LTR35 для получения "цифровой копии" арифметического генератора вряд ли возможно, поскольку: |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыКулыгин Алексей пишет:
Алексей, арифметическая модель работы LTR35 - это нетривиальная задача и для Вас и для нас, поскольку: |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыС другой стороны, если работать в потоковом режиме со сброшенными коэффициентами в начальное состояние, то в FPGA LTR35 никакой арифметической обработки не будет и необходимую обработку можно делать и на верхнем уровне. Правда, и в этом случае применение режима "эхо канала" далеко не бессмысленно - он может выполнять важную контрольную функцию высылаемых кодов в микросхему ЦАП, правда только - по одному каналу. Как работать с LTR35 со сброшенными коэффициентами в начальное состояние без порчи заводской информации во flash-памяти LTR35 - об этом может рассказать наш Алексей. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыИнженер пишет:
Инженер пишет:
Да, такая возможность была бы очень полезной для наших экспериментов. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыДля отключения фильтра АЧХ достаточно установить флаг LTR35_CFG_FLAG_DISABLE_AFC_COR (поле Cfg.Flags) до вызова LTR35_Configure(), действительно для работы на уровне кодов это по хорошему нужно делать для любого режима. Про калибровочные коэффициенты уже в начале данной темы писалось, что соответствующие Sacale и Offset нужно установить в 1 и 0 также до LTR35_Configure(). |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыУстановка флага LTR35_CFG_FLAG_DISABLE_AFC_COR решила имевшиеся проблемы. Спасибо за подсказку. Но после этого (не знаем, вследствие ли этого) после нескольких часов работы с конфигурацией с установленным флагом модуль LTR-35 завис. После чего на всех выходах появились близкие к нулю, но не равные нулю точно, постоянные напряжения. Содержимое журнала (время записи об ошибке 20:42:24, 10.11.2022 совпадает с фактическим временем возникновения ошибки):
|
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыА каким образом крейт был подключен к ПК? Напрямую, через свич, еще каким-то способом? |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыПодключение через WiFi-роутер по проводам. В одно из гнёзд LAN роутера подключён компьютер, в другое - крейт с LTR-35. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыВ приведенном журнале есть строка:
Насколько я понимаю eno1 это и есть интерфейс связи ПК -> роутер (судя по его адресу и адресу LTR), к которому подключен LTR. Соответственно из-за отсутствия связи на участке ПК-роутер была разорвана связь ltrd -> крейт, из-за чего и была ошибка.
дает понять, что крейт исправно работал все это время, и у него осталось незвершенное старое содинение с ltrd для передачи данных (о том что оно разорвано со стороны ПК LTR не знает, сообщений о закрытии ему не приходило, т.к. не было связи), которое при новом подключении ltrd отключает соответствующем запросом, после чего устанавливает новое. Далее после установления нового соединения ltrd всегда сбрасывает все обнаруженные модули при инициализации (без этого не возможно даже определить состав модулей крейта), что и привело к сбросу выходов в начальное состояние соответствующее состояниям выходов ЦАП при его сбросе (т.к. это не откалиброванный нулевой код, то тут будет близкое к 0 значение, но не 0). В штатном режиме LTR это не автономное устройство, все управление полностью идет с ПК и сброс связи требует полной переинициализации устройства и работы c "чистого листа" (если не рассматривать написание специализированной прошивки крейта под конретную задачу с перносом часть функций внутрь). Но в общем в любом случае судя по журналу этот разрыв связи никак не связан с LTR крейтом или модулем LTR35. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыОпять столкнулись с проблемой самопроизвольного отключения LTR35. Лог LTR Manager:
|
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыС появлением самой по себе галочки "A" не совсем конечно понятно. У Вас в программе функции вроде LTR_SetIPCrateFlags или LTR_AddIPCrate не используются?
которая говорит, что в самой системе исчезал сетевой интерфейс, и с самим ПО LTR не связана. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыКулыгин Алексей пишет:
В изложенных выше данных я не вижу ни малейшей зацепки в пользу какой-либо версии, связанной с проблемой на уровне модуля LTR (в данном случае, модуля LTR35). Судя по всему, проблема находится на уровне сетевого соединения Ethernet, и дополнительную информацию здесь явно нужно искать в журналах ОС ПК и роутера на момент возникновения сбоя. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыФрагмент вывода dmesg -T за интервал времени, заведомо перекрывающий промежуток [19:29:00 до 19:29:19]:
С интерфейсом eno1, действительно, что-то происходило, но не в то время, которое указано в логе LTR Maneger (19:29:19), а на 2 минуты позже. Функции LTR_SetIPCrateFlags или LTR_AddIPCrate в программе не используются. Вопрос заключается в том, как в случае возникновения проблем (пропадания связи с LTR-35 по какой-либо причине) избежать возникновения дополнительных проблем, возникающих из-за действий ПО. В логике нашего эксперимента наиболее удачным решением было бы не перезагружать автоматически LTR-35 каждый раз в таком случае, а вывести сообщение об ошибке и ожидать реакции оператора. Как выяснилось, убрать галочки A и R для этого оказалось недостаточно. Перезагрузок роутера в указанное время не наблюдалось - судя по тому, что в этот момент роутер также был задействован для передачи других данных (не связанных с LTR-35) в рамках того же эксперимента, и с теми данными ничего не случилось. |
|||
|
||||
|
Re: LTR-35 перевод кодов ЦАП в ВольтыЯ попробую посмотреть внимательно по коду, как возможна установка флага A, но сходу мне у себя добиться самопроизвольного ее восстановления мне не удалось. Если у Вас получится это воспроизвести и понять последовательность действий, что на это влияет в какой последовательности, то было бы более понятно, куда смотреть. А только Вы работаете с LTR Manager за этим компом, не мог кто-то еще установить? |
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск