Страница 1 из 1

Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 25 май 2017, 07:02
nae
Добрый день.
Возник вопрос - как поменять коэффициент усиления АЦП sb9637 (в даташите это обзывается input range)? Опыта в этой области не много, в интернете как-то быстро не нашел...

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 25 май 2017, 08:05
ladik
1. С помощью меню Properties необходимого AI
VoltRangeM.PNG
2. С помощью FPGA I/O Propery Node
VoltRangeP.PNG

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 25 май 2017, 11:24
nae
Большое спасибо. Второй способ прям то что нужно!

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 26 май 2017, 06:51
nae
А если я попрошу данные сразу с двух каналов AI, то макисмальная частота опроса поделится пополам?
Можно ли как-то поменять формат данных для Analog output чтобы готовить для него не FXP +- 20.5 а например i16?

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 26 май 2017, 09:53
ladik
По первому вопросу гляньте USER MANUAL NI sbRIO-9637 Single-Board RIO OEM Devices, пункт "Best Practices for Scanning Multiple Channels", стр.31. До конца не понятно, но вероятно Вы правы.
По второму вопросу посмотрите IP Corner: The LabVIEW Fixed-Point Data Type Part 1 – Fixed-Point 101 1ю и 2ю части. В простейшем случае можно как на рисунке
1.PNG
1.PNG (21.83 КБ) 13086 просмотров

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 26 май 2017, 14:43
nae
Цап, включенный на ацп имеет достаточно малый импеданс и время установления мало. Но если смотреть на эту точку осциллографом, то при переключении каналов видны 300нс "зубы", видимо цапу переключение не очень нравится и надо использовать буферы.

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 26 май 2017, 20:03
zxc_pavel
А если я попрошу данные сразу с двух каналов AI, то макисмальная частота опроса поделится пополам?
У меня так было.
1 аналоговый вход - ticks = 200 (частота = 40МГц/200 = 200Кгц - как в мануале)
2 аналоговых входа - ticks = 668
4 аналоговых входа - ticks = 1336 (в 2 раза больше)
fpga26.png
Пересылаю очереди, тики и булевые индикаторы в host программу, с реальным осциллографом совпадает
Вот только по фазе не совсем точно, может кто посоветует, кстати, как фазу сбить? (case на входе тут - условие, если все очереди полные, то читаем и чистим)

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 29 май 2017, 07:36
nae
Как я понял АЦП все время работает с максимальной скоростью и при многоканальном обращении сам делает все микрооперации по переключениям.
Просто растянул AI на 4ре строчки и судя по осциллу он сам все делает, если задать в этом цикле длительность 200kHz/4.

Вот с фазой у меня тоже вопросы - пишу в одном месте плис в два разных буфера, а фаза не совпадает между ними при чтении. Этож я только через пару дней понял что не в коде ошибка, а фаза разная ). В итоге чтобы побороть фазу пакую були (и все остальные интересующие величины) в такую же переменную как и АЦП и пишу все в один буфер.

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 29 май 2017, 20:31
zxc_pavel
Как я понял АЦП все время работает с максимальной скоростью...при многоканальном обращении сам делает все микрооперации по переключениям

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

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 30 май 2017, 07:17
nae
Как-то так
Формирование отладочного буфера для вывода в хост всех сигналов синхронно
Формирование отладочного буфера для вывода в хост всех сигналов синхронно
2017-05-30_11-14-15.png (11.11 КБ) 12915 просмотров
Вместо булевых констант заведите свои переменные.
Насколько я понял длина FIFO типа FPGA->HOST накладывает требования на хост а не на FPGA - плис не хранит у себя этот объём. А т.к. на хосте памяти вагон, то и проблемы особо нет. Но это не точно, вдруг я просто не натолкнулся на какой-то подводный камень.

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 30 май 2017, 10:40
zxc_pavel
Насколько я понял длина FIFO типа FPGA->HOST накладывает требования на хост а не на FPGA - плис не хранит у себя этот объём.
это не так. Вот как раз и ограничение 2^15 элементов. Кстати, создавать 4 очереди по 2^15 не получается, не хватает памяти(2^14 максимум).
Хочется также как и Вам, понять оптимальное решение ) и не терять данные, а записывать по максимуму, для последующих анализов. Поэтому не хочу грузить все вместе

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 30 май 2017, 11:56
nae
Да... на sb9637 дают сделать fifo на 131000 32битных слов.
Может сейчас какой-нибудь гуру придет и скажет как бы синхронно обнулить фазу. Возможно их нужно очистить в один момент.

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 01 июн 2017, 14:35
nae
Для синхронизации можно дописывать в быстрый и медленный FIFO значения одного и того же счетчика и потом сводить их по этим значениям.

Re: Как поменять коэффициент усиления АЦП sb9637?

Добавлено: 02 июн 2017, 21:27
nae
Также отвечу на свой вопрос "как записать INT16 данные в цап sbRIO sb 9637":
Формат цапа FXP +- 20.5 полностью накрывет его диапазон и минимальный шаг цапа в этом формате равен 10 дискретам. В итоге для задания значения переменной типа INT16 надо воспользоваться функцией сдвига регистра с палитры numeric->fxp. (а ларчик просто открывался).
Для перевода значения АЦП в INT надо использовать обратную функцию и помнить что в диапазоне +-10В шаг АЦП равен 160 дискретам FXP +- 24.5, а при меньшем входном диапазоне он меньше, например при +-1В он равен 16 дискретам. Т.е. если Вы решили подкопить отсчеты АЦП в переменной этого типа, то на это следует обратить внимание.
Также эта функция полезна если Вам надо упаковать INT в FIFO типа FXP в котором целых битов не хватает для представления INT.