|
Работа с AD5933 при заземленной нагрузке |
|
|
|
Nov 15 2014, 16:54
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
За исходный вариант взял AN-847 (Measuring a Grounded Impedance Profile Using the AD5933 by Sean Brennan). По его повествованию сваял схему. Вместо инструментального ОУ применил 4 ОУ в одном корпусе общего применения (работают они не хуже). На странице 6 указанного документа приведен рисунок Figure 5, на котором приведено условие "REQUIRED OUTPUT SIGNAL" равное 1Vp-p. Собственно условие это у меня выполняется. НО! Тыкаю я осциллом в точку соединения двух 100кОмных сопротивлений и вижу фигу, т.е. отсутствие какого-либо синуса в этой точке (эти два сопротивления можно наблюдать на рисунках Figure 2 и Figure 3). Думается мне, что в этой точке должно быть ну хоть что-то, не так ли? У кого есть опыт пользования AD5933 прошу помощи/подсказок! Ссылка на упомянутый документ: http://www.analog.com/static/imported-file...otes/AN-847.pdf
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Nov 17 2014, 23:03
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Да, действительно. Все меряет, все работает как надо. Раз уж создал тему про AD5933, то спрошу еще кое чего.. Задача моя измерить комплексное сопротивление, вычесть из него активное сопротивление (резистивное) и получить в итоге реактивную (мнимую) составляющую этого самого сопротивления. К сожалению я слишком поздно понял, что данная ИМС не совсем то, что мне надо, она решает только часть задачи. Сразу не предусмотрел доп.схему измерения сопротивления по постоянке и теперь вот озадачился.. А пробовал ли кто-нибудь работать с этой ИМС на минимально возможных частотах (10 Гц, к примеру, или вообще 1 Гц, чем ближе к постоянке, тем лучше). В ДШ вроде как указана минимальная частота на выходе 1кГц, но есть размытая пометка с указанием на подбор источника тактирования, да и при 16МГц у меня получается вывести синус в 10Гц. Другое дело, что встроенный АЦП вроде бы 1024 выборки делает за раз, стало быть для нормальной работы на 10Гц тактирование должно происходить от 10кГц?
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Nov 18 2014, 13:33
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(vazz @ Nov 15 2014, 20:54)  У кого есть опыт пользования AD5933 До применения не дошло, ограничились покупкой демоборды. Да и она в конце концов сгорела. Больно уж специфическая штуковина. Спецзаточенная под конкретный проект (что-то там с кровью) Без автокалибратора и переключателя диапазонов (примерно 1:10) точность при удалении от точки калибровки катастрофически падает.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Nov 19 2014, 08:40
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Цитата(MrYuran @ Nov 18 2014, 17:33)  точность при удалении от точки калибровки катастрофически падает. Мое устройство к крови не имеет никакого отношения. И точность вполне устраивает (по крайней мере с внешней обвязкой - умощнен выходной каскад, применена схема смещения выходного сигнала для загона в нужный диапазон и пр.). AD5933 - штука реально хорошая, боялся разочарования, но его не случилось. Реактивную составляющую меряю с помощью вычисления угла фазового сдвига. Я не эксперт в области измерения СЧ переменных сигналов, поэтому такое интегральное решение, где все на блюдечке с голубой каемочкой - для меня. Сегодня получил первые результаты, похожие на правду. Подскажите, может ли быть фазовый сдвиг в 120 градусов относительно начального сдвига (начальный сдвиг меряю без реактивной составляющей в нагрузке в 200 кОм, сдвиг в 120 градусов получается при подключении максимальной возможной емкости 0,01мкф параллельно нагрузке в 20кОм). Обманул с вопросом, не так все. Фазовый сдвиг, принимаемый за точку отсчета получается при нагрузке в цепи: [выход] -> [последовательное измерительное сопротивление 750 Ом] -> [последовательная емкость 1000 пФ] -> [сопротивление 200 кОм в параллель с емкостью 5 пФ] -> [земля]. Измеряемый фазовый сдвиг получается при нагрузке в цепи: [выход] -> [последовательное измерительное сопротивление 750 Ом] -> [последовательная емкость 1000 пФ] -> [сопротивление 20 кОм в параллель с емкостью 0.01 мкФ] -> [земля]. Вот разница между этими двумя сдвигами получается 120 градусов. Может такое быть? Или я напутал с коэффициентом для вычисления угла.
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Nov 19 2014, 09:49
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(vazz @ Nov 19 2014, 12:40)  Вот разница между этими двумя сдвигами получается 120 градусов. Может такое быть? Или я напутал с коэффициентом для вычисления угла. Смотря относительно чего мерить. 120 вполне может оказаться 180-60 Насколько я понимаю, сначала нужно откалиброваться на резисторе, а уж потом относительно него считать сдвиг. По крайней мере родная утиль так работала.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Nov 19 2014, 11:06
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Цитата(MrYuran @ Nov 19 2014, 13:49)  Насколько я понимаю, сначала нужно откалиброваться на резисторе Калиброваться нужно на резисторе когда нужно получить свой собственный натурный сдвиг AD5933. Я калибруюсь на нагрузке, соответствующей минимальному пределу нужного мне диапазона. А какой максимальный размах напряжения, который способен преобразовать встроенный АЦП? Где-то была информация о 2Vp-p, но в ДШ о встроенном ИОН никакой информации не вижу..
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Nov 20 2014, 10:00
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Прошу помощи, а то закипаю Из описания демо-платы EVAL-AD5933EB надыбал странную вещь. После чтения значений Real и Imaginary Data из соответствующих регистров проводится проверка на знак (положительно/отрицательно). Вот таким образом: Код If ImagineryData <= &H7FFF Then ' Positive Data. Else ' Negative ' ImagineryData = ImagineryData And &H7FFF ImagineryData = ImagineryData - 65536 End If Я может конечно совсем загнался, но получал модуль в случае отрицательного числа с помощью двух действий: если число отрицательное, то я сначала отнимаю единицу, а затем делаю инверсию обоих байт. В данном коде от AD получается, что их отрицательные числа приведены в простом формате без всяких дополнений, т.е. старший бит - это знак, а остальное - это реальное значение. Тогда нафига загадочное вычитание 65536, которое в двух байтном значении в итоге все равно оставит ровно то же самое значение???..
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Nov 21 2014, 07:49
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(vazz @ Nov 20 2014, 14:00)  Прошу помощи, а то закипаю Может, это связано со шкалой АЦП в биполярном режиме. Когда 7FFF это ноль, FFFF это верхний предел, а 0 -нижний Хотя, все равно не сходится
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Nov 24 2014, 23:45
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Довел уже до блеска алгоритм вычисления арктангенса для вычисления угла фазового сдвига. В нем ошибок точно нет, ошибка не более 0,2 градуса. Результаты какие-то странные в итоге. Делюсь. Значит у меня в качестве нагрузки используется RC-контур через последовательное измерительное сопротивление от выхода генератора синуса. Измерительное сопротивление 10 кОм (которое последовательное), сопротивление R контура 50 кОм, параллельную емкость C контура меняю в пределах 10пФ...10000пФ. По расчету вращение фазы должно быть почти в полном диапазоне 0...pi/2. Работать решил на 30 кГц, потому как на 50ти уже наблюдается явная нехватка скорости АЦП (амплитуда точно достаточная), что влияет на устойчивость результатов в области малых емкостей контура. При полностью исключенной емкости C начальную фазу выдает 34.6 градуса. Подключаю разные емкости: 100пФ = 0.7 град, 3300пФ = 20.1 град, 4700пФ = 23.0 град, 10000пФ = 26.6 град. Развертку сделал в 360 градусов с учетом указаний в ДШ. Получается, что у меня относительно начального сдвига фазовый сдвиг уменьшается при увеличении емкости  Вот хочу спросить, может, кто разъяснит, в ДШ есть табличка Table 7. Phase Angle, в ней расписано что к чему прибавлять и что от чего отнимать в зависимости от квадрата в котором произошло измерение (исходя из знаков вещественной и мнимой составляющих). Я делал так: если квадрат №1, то ничего не делаю с результатом. Если квадрат №2, то я из 180 градусов вычитаю получившийся по модулю угол. Если квадрат №3, то я к получившемуся углу прибавляю 180 градусов. Если квадрат № 4, то я из 360 градусов вычитаю свой угол. Я правильно делаю? И вообще, а для какого диапазона получаемые из регистров составляющие высчитываются внутри AD5933? Может вовсе не для 0...pi/2? Тогда я точно запутался. Кстати по поводу непонятного знакового представления мнимой и вещественной составляющих - если просто обнулять старший бит, то итоговый угол почти не меняется. Сделал как изначально делал, т.е. чтобы получить модуль этих чисел нужно вычесть 1 и инвертировать (ну или из 0 вычесть).
Сообщение отредактировал vazz - Nov 24 2014, 23:47
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Dec 1 2014, 00:45
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Мудреная эта хреновина (AD5933). То ли я туповат. Тригонометрию - арктангенс, синус и косинус - сделал, проверял имитируя входные данные, получал на выходе именно то, что должно быть. Калибровку на резисторе делаю - одновременно при калибровке получаю gainfactor и собственный фазовый сдвиг. В данном примере меряю резистивную (активную) составляющую, т.е. множу модуль импеданса на косинус сдвига фазы относительно собственного сдвига. После калибровки выдает именно сопротивление в омах (в данном случае калибрую на 51кОм резисторе, выдает в цифре 50500 Ом). Отключаю калибровочное сопротивление и подключаю от фонаря резистор 10 кОм (полосатый, не точный, закрываю глаза на выходную погрешность - выдает 11000 Ом). Затем не отключая резистор на 10 кОм беру и в параллель добавляю керамический конденсатор емкостью 1000 пФ и тут происходит самое интересное - резистивное сопротивление выдает 3700 Ом, т.е. как будто конденсатор имеет активное сопротивление (резистивное) около 5.9 кОм. Это как? Я рассчитывал на то, что цифра останется примерно такой же (около 10000 Ом). Такая же беда с реактивным сопротивлением при умножении на синус, т.е. беру я конденсатор один и тот же, подключаю по очереди в параллель разные сопротивления в надежде увидеть независимость итогового значения от активной составляющей, но итоговый результат значительно изменяется. В чем может быть проблема? Я уже честно говоря близок к тому, чтобы плюнуть на эту затею, но бросать обидно, много времени и бессонных ночей на это ушло.
Господа, прошу стучаться в личку, готов отблагодарить за помощь в разборе полетов с этой AD5933, а то я так до пенсии разгребать буду (благодарность - через любые мгновенные расчетные системы или банк). Буду рад спецу, который реально работал с этой имс и полностью в ней разобрался, также обладающему знаниями ассемблера под avr (чтобы код понимать), также схемотехнику с богатым опытом построения аналоговых схем переменного тока (чтобы мог указать на ошибку в аналоговом тракте (если таковая есть), который я добавил). Вопрос срочный.
Сообщение отредактировал vazz - Dec 1 2014, 00:50
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
|
Dec 2 2014, 21:36
|

Частый гость
 
Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971

|
Цитата(Elsystems @ Dec 3 2014, 00:19)  В принципе Вы далеко продвинулись. Это утверждение меня бодрит на дальнейшее движение. Цитата(Elsystems @ Dec 3 2014, 00:19)  Чтобы сказать что то конкретное, нужно глянуть Вашу схему и алгоритм ПО (не на ассемблере, а в виде блок схемы). Сейчас ночь, а мне еще комплектующие необходимо заказать для других не менее срочных заказов, тем более на сегодня доллар аж на рубль меньше вчерашнего  Блок схему и алгоритм вышлю в личку (если вам не трудно сбросьте мне туда свой e-mail). про добро не забываю Цитата(Elsystems @ Dec 3 2014, 00:19)  не должен выходить за пределы ее рабочего диапазона 0...1В при любой нагрузке а я делал так, чтобы размах Vp-p не был больше 2В. Об этом информации вообще нигде нет. Есть только установка выходного максимального размаха Vp-p 2В, из этого я и исходил. Т.е. размах, который способен обмерить встроенный АЦП это 1Vp-p? Не то чтобы я недоверяю опытному человеку, но откуда это значение? Опытным путем? Или я где-то проморгал? Должна же быть информация о таком важном параметре хоть где-то Цитата(Elsystems @ Dec 3 2014, 00:19)  точно такое же смещение относительно нуля как и выходной Тааак.. чем дальше в лес.. У AD5933 выход bias-уровень синусоиды располагается согласно уровням указанным в ДШ. Это я видел. НО в дальнейшем сигнал пропускается через развязывающую емкость и симметрируется относительно середины напряжения питания. Иными словами указанное Вами условие противоречит условиям указанным в ДШ. Так симметрируем сигнал относительно половины питания или выдерживаем на входе натурный уровень смещения, указанный для каждого варианта размаха в ДШ? Я симметрировал относительно половины питания ровно так, как указано в документе, взятом мной за основу (самый первый мой пост в этой теме) Цитата(Elsystems @ Dec 3 2014, 00:19)  без отступлений реализовать формулы из дата шита Я проверял все алгоритмы не один раз на реальном железе + предварительно писал их же на Си, имитируя работу на ассемблере (т.е. прибегая в расчетах только к целым числам, дробей то в двоичном коде нет). Вобщем, не поленюсь, проверю еще. Но в большей степени уверен в правильности всех вычислений, проверял каждую подпрограмму (функцию, если хотите) прямо в железе, подставляя перед вызовом тестовые значения, на выходе получал точное совпадение бит в бит. Ошибки конечно были, но постарался выловить все. Цитата(Elsystems @ Dec 3 2014, 00:19)  Проще сначала все отладить на одной частоте. Снятие характеристик от частоты - более сложный этап. Так пока и делаю. 30 кГц (пробовал и другие). В плане спектра я так понял нужно для каждой частоты из сетки свой Gain Factor и свой натурный фазовый сдвиг вычислять. Цитата(Elsystems @ Dec 3 2014, 00:19)  Вот кусок кода я пока воздержусь от комментариев. ловлю себя на мысли, что даже смотреть боюсь, как при вскрытии конверта долгожданного письма))) завтра обязательно посмотрю, сегодня уже нет времени (еще поспать бы хоть немного) СПАСИБО!
--------------------
Не так страшна автоматизация, как её малюют.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|