реклама на сайте
подробности

 
 
> AVR + AD7705, Использование обоих каналов
Pavel V.
сообщение Feb 21 2007, 19:32
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Написал программку для работы с этим АЦП, для первого канала все работает.

Но возник вопрос - как правильно переключаться между каналами? Нужно ли перед каждым чтением проводить инициализацию АЦП для одного из каналов (в том числе самокалибровку), или можно один раз провести калибровку, а затем просто переключать канал?

Вот как я работаю с АЦП:

Инициализация:

Код
SPI_send(0x20); /* Active Channel is Ain1(+)/Ain1(-), next operation as write to the clock register */
SPI_send(0x01); /* ????? master clock enabled, 1 MHz Clock, set output rate to 25Hz*/
SPI_send(0x10); /* Active Channel is Ain1(+)/Ain1(-), next operation as write to the setup register */
SPI_send(0x44); /* gain = 1, unipolar mode, buffer off, clear FSYNC and perform a Self Calibration */
while(DRDY); /* wait for /DRDY to go low */


Далее в бесконечном цикле читаю данные:

Код
SPI_send(0x38); // next operation - read from the data register
while(DRDY); /* wait for /DRDY to go low */
SPI_read();


Хотелось бы узнать правильный алгоритм работы с двумя каналами.

Спасибо!


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 26)
Andy_F
сообщение Feb 22 2007, 01:07
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 27-07-06
Из: С.-Петербург
Пользователь №: 19 148



Из datasheet'а следует, что калибровка должна проводиться после каждого переключения канала. Видимо, этот вариант и следует признать правильным smile.gif .

У меня получалось, что из-за этой самой калибровки устройство работает "медленно и печально". Если требуется попеременно измерять 1-й и 2-й каналы, то общая частота взятия отсчётов составляет примерно 10 Гц (по 5 Гц на канал).
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 22 2007, 01:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Andy_F @ Feb 22 2007, 02:07) *
Из datasheet'а следует, что калибровка должна проводиться после каждого переключения канала. Видимо, этот вариант и следует признать правильным smile.gif .

У меня получалось, что из-за этой самой калибровки устройство работает "медленно и печально". Если требуется попеременно измерять 1-й и 2-й каналы, то общая частота взятия отсчётов составляет примерно 10 Гц (по 5 Гц на канал).


Да я на теже грабли наступил, но стал разбираться дальше. smile.gif Медленно и печально оно работает если сигнал серьёзно отличается по размаху. Иначе всё OK. Там вроде так и было написано - быстрое АЦП для медленно изменяющихся сигналов. smile.gif Причина - в построении АЦП. В конце концов - заменили на другое.
Go to the top of the page
 
+Quote Post
satellite-plus
сообщение Feb 22 2007, 10:25
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 8-01-07
Из: Одесса
Пользователь №: 24 196



Цитата(Pavel V. @ Feb 21 2007, 18:32) *
Написал программку для работы с этим АЦП, для первого канала все работает.

Но возник вопрос - как правильно переключаться между каналами? Нужно ли перед каждым чтением проводить инициализацию АЦП для одного из каналов (в том числе самокалибровку), или можно один раз провести калибровку, а затем просто переключать канал?


Категорически не рекомендую пользоваться 2-мя каналами. Ничего хорошего из этого не выйдет. За этим АЦП замечена еще одна проблема. В условиях больших помех АЦП слетает и перезапустить его можно только снятием питания. Советую бросить его и перейти к примеру на С8051F350. 24 - разряда плюс процессор.


--------------------
Опыт - это та чудесная штука, которая позволяет вам узнать ошибку, когда вы ее повторите.
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Feb 22 2007, 10:38
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Да мне в общем-то не нужно большое быстродействие. Прибор будет использоваться для измерения напряжения и тока в домашнем лабораторном БП. Сначала проводил эксперименты со встроенным в Atmega АЦП, но не устроила точность.

С калибровкой теперь понятно. Что ж, буду делать калибровку после переключения канала. Кстати, а нужно заново писать в регистр clock?

Еще в другой ветке прочитал, что несколько первых измерений неточные, поэтому их нужно пропускать.

Таким образом, вот как мне представляется алгоритм работы программы:

1. Начальная инициализация АЦП.
2. Подключения канала 1, калибровка.
3. Чтение 3-х результатов преобразования (для работы берем 3-й).
4. Подключение канала 2, калибровка.
5. Чтение 3-х результатов преобразования (для работы берем 3-й).
6. Goto 2.

Я правильно все понял?


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
satellite-plus
сообщение Feb 22 2007, 10:57
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 8-01-07
Из: Одесса
Пользователь №: 24 196



Цитата(Pavel V. @ Feb 22 2007, 09:38) *
Да мне в общем-то не нужно большое быстродействие. Прибор будет использоваться для измерения напряжения и тока в домашнем лабораторном БП. Сначала проводил эксперименты со встроенным в Atmega АЦП, но не устроила точность.


Я правильно все понял?

Если для БП - делай калибровку один раз и работай без проблем. Другое дело при работе с тензодатчиком или термопарой.


--------------------
Опыт - это та чудесная штука, которая позволяет вам узнать ошибку, когда вы ее повторите.
Go to the top of the page
 
+Quote Post
slog
сообщение Feb 22 2007, 21:12
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Где-то я видел что первые 4 измерения нужно пропустить, потому что их "съедает" цифровой фильтр, т.е. они не фильтрованы и могут быть некорректны. Источник не помню. Так ли это?


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Feb 22 2007, 22:52
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(slog @ Feb 22 2007, 22:12) *
Где-то я видел что первые 4 измерения нужно пропустить, потому что их "съедает" цифровой фильтр, т.е. они не фильтрованы и могут быть некорректны. Источник не помню. Так ли это?

Насколько я помню, все-таки три измерения. Уже третье можно использовать.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 22 2007, 23:41
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



А на сколько я помню - что не делал, но как эту фильтрацию включал - результат измерения хуже был. Там частота подбиралась, так перепробывали всё. Ну закончилось тем, - чем я писал - выбросили его совсем и поставили ad7715. После этого проблем не было. А то с тем месяца 2 возились.
Go to the top of the page
 
+Quote Post
slog
сообщение May 18 2007, 05:53
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Ковыряюсь с AD7705, надо 2 канала. По рекомендациям калибровать АЦП надо после каждого переключения каналов. Работает медленно.
Поэтому появился такой вопрос: Если калибровку делать для каждого канала только один раз в начале, потом прочитать и запомнить значения CALIBRATION REGISTER для каждого канала. А во время работы после переключения каналов не калиброваться заново, что долго, а просто записывать правильные значения CALIBRATION REGISTER. Должно быть намного быстрее. Будет такая система работать?


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 18 2007, 09:29
Сообщение #11


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Гм.. За те же деньги можно взять три ADS7822 - параллельно считывать все три, и не иметь никаких проблем с переключением каналов.
Go to the top of the page
 
+Quote Post
slog
сообщение May 18 2007, 09:40
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



ADS7822 12bit а AD7705 16bit. Не пойдет. Но дело не в этом, можно и другие более современные замены найти. Просто есть AD7705 и надо ей мерять 2 канала. И она уже меряет, и скорость устраивает, но просто хочется сделать как лучше.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
superbizzon
сообщение May 18 2007, 14:34
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 28-04-05
Пользователь №: 4 592



с 14 страницы даташита -
The AD7705/AD7706 contains independent sets of zero-scale registers, one for each of the input channels.....
The AD7705/AD7706 contains independent sets of full-scale registers, one for each of the input channels.

тоесть калибровочные регистры предусмотрены свои для каждого канала, а значит каждый раз перекалибровывать при переключении с канала на канал не нужно. Сам так и делал - работало нормально. Запускал перекалибровку только при включении, и если на канале менялся коэфициент усиления.

По поводу глючности этого ацп ( в данном посте мелькало) могу сказать одно - ищите ошибки. Это нормальный девайс, работает олдово... фишка в том что при неправильной инициализации или общении с ним, он почемуто не просто отказывается работать а начинает глючить - при включении может запуститься а может и нет, или выдаёт одно и тоже значение ( у меня было 0x3eff), или работает с бешеными тормозами....
Также ещё стоит обратить внимание на то что в минус он работает только до 300мв ( при беглом изучении документации может показаться что пашет до -Vdd), ито ближе к этому значению начинается дикая нелинейность, ну а дальше оно просто вырубается или горит. - вообщем если переодически сигнал закидывает в минус, ну или помеха какая проскакивает - ждите глюков.

Сообщение отредактировал superbizzon - May 18 2007, 14:52
Go to the top of the page
 
+Quote Post
Terrabyte
сообщение Oct 6 2008, 12:10
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042



а такой вопрос,
пытаюсь подобрать наилучшее значение для фильтра (FS1, FS0), кто какие установки делал? Если считать частоту сети 50Гц наиболее критичной, то значит по Table XII я должен выбрать 52.4 Hz (–3 dB Filter Cutoff) которой соответствует 200 Hz (Output Update Rate), и биты = 1,1 - да ? а как быть CLK битом, если у меня внешнее тактирование?
Go to the top of the page
 
+Quote Post
DVF
сообщение Oct 6 2008, 13:08
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 630
Регистрация: 26-07-06
Из: Саратов
Пользователь №: 19 097



Ну, коли ветка немного ожила, спрошу и я. Какие у кого впечатления от AD7793?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 6 2008, 16:56
Сообщение #16


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(DVF @ Oct 6 2008, 17:08) *
Ну, коли ветка немного ожила, спрошу и я. Какие у кого впечатления от AD7793?

Использую AD7792 около года (7792-16bit, a 7793-24bit в остальном однояйцевые близнецы).
АЦП как АЦП. Перешёл на него с AD7709 только из-за встроенного генератора и большей точности опорника.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
SashaBe
сообщение Oct 9 2008, 07:43
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 7-10-07
Пользователь №: 31 138



Вопрос к тем, кто использует AD7792: не происходило ли в Вашей практике такого, чтобы между выводами Vref(+) и Vref(-) оказывалось сопротивление около 180 Ом при отсутствии какой-либо обвески?
Далее я подключил делитель напряжения на вход для внешнего источника опорного напряжения и решил проверить, не повлияет ли это на работу в режиме, когда используется внутренний опорник 1,17 В. Повлияло, показания ацп изменились (непропорционально причем). Должно ли было такое произойти и почему?

Сообщение отредактировал SashaBe - Oct 9 2008, 07:56
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 10 2008, 17:06
Сообщение #18


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(SashaBe @ Oct 9 2008, 11:43) *
Вопрос к тем, кто использует AD7792: не происходило ли в Вашей практике такого, чтобы между выводами Vref(+) и Vref(-) оказывалось сопротивление около 180 Ом при отсутствии какой-либо обвески?
Далее я подключил делитель напряжения на вход для внешнего источника опорного напряжения и решил проверить, не повлияет ли это на работу в режиме, когда используется внутренний опорник 1,17 В. Повлияло, показания ацп изменились (непропорционально причем). Должно ли было такое произойти и почему?

Сопротивление входа Vref никогда не измерял.
Со слов я не могу понять как Вы организовали делитель.
И никак не могу понять суть Вашего эксперимента.
Пожалуйста нарисуйте схемку (хоть в paint'е).


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
SashaBe
сообщение Oct 13 2008, 05:42
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 7-10-07
Пользователь №: 31 138



Цитата(demiurg_spb) *
Сопротивление входа Vref никогда не измерял.


вход Vref дифференциальный, т.е. он должен быть разомкнут по определению.
поправьте меня, если это не так.

Цитата(demiurg_spb) *
Со слов я не могу понять как Вы организовали делитель.
И никак не могу понять суть Вашего эксперимента.
Пожалуйста нарисуйте схемку (хоть в paint'е).


максимально упростил эксперимент:
на входе АЦП 0,055 В.

при включении режима работы АЦП от внутреннего источника опорного напряжения показывает результат отличный от измеряемого вольтметром В7-23 на 0,002 В(при любом входном напряжении), а при включении режима работы АЦП от внешнего источника опорного напряжения - некорректный результат - при этом опорное напряжение вместо ожидаемых от делителя 0,96 В оказывается равным 0,12, как будто внутри микросхемы резистор 180 Ом шунтируется сопротивлением около 19 Ом...
Прикрепленные файлы
Прикрепленный файл  ad7792bug.bmp ( 120.29 килобайт ) Кол-во скачиваний: 76
 
Go to the top of the page
 
+Quote Post
Andrey_B
сообщение Oct 14 2008, 06:37
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 20-06-07
Из: Россия, Тула.
Пользователь №: 28 569



Цитата(DVF @ Oct 6 2008, 17:08) *
Ну, коли ветка немного ожила, спрошу и я.


И я.
А кто, что использует на 16_ разрядов/без_опоры/1_канал/ПГА, дешевле чем AD7705/06 ?
Задача - измерение температуры термопарой, сейчас реализовано на AD7705, но не нравится это ископаемое.

ЗЫ: Новостей не слышно от атмела, что там решили по поводу его покупки микрочипом и он семи ?


--------------------
vodaspb.ru
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 14 2008, 08:22
Сообщение #21


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Andrey_B @ Oct 14 2008, 10:37) *
А кто, что использует на 16_ разрядов/без_опоры/1_канал/ПГА, дешевле чем AD7705/06 ?

AD7788 - на счёт цены не уверен, но не из дорогих (ПГА отсутствуетsad.gif ).


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Alexandro
сообщение Oct 17 2008, 08:22
Сообщение #22





Группа: Участник
Сообщений: 12
Регистрация: 26-05-05
Пользователь №: 5 431



Цитата(demiurg_spb @ Oct 14 2008, 11:22) *
AD7788 - на счёт цены не уверен, но не из дорогих (ПГА отсутствуетsad.gif ).


Может AD7789 - 24 бита чтобы "компенсировать" отсутствие PGA
Go to the top of the page
 
+Quote Post
Terrabyte
сообщение Feb 16 2009, 13:25
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042



1) а если в AD7706 каждый канал должен работать при разных коэф. усиления,
мне не нужно постоянно перекалибровывать его при переключении? (таблица VIII)
2) Setup Register всё ровно придётся переписать с новыми (G, B/U, BUF) ?
Go to the top of the page
 
+Quote Post
Сергей К
сообщение Mar 31 2009, 18:00
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 18-09-08
Из: Киев
Пользователь №: 40 317



А у меня с AD7792 сложилась несколько другая проблема. Если подключать термопару напрямую к выводам АЦП, то все нормально (во всяком случае закорачивание выводов дает 0 градусов, без компенсации холодного спая).
Но вот если подключить RC-цепочку, то положительный вывод уходит слегка в минус, т.е. появляется разбаланс тем больший, чем больше емкость конденсаторов. При этом даже закорачивание выводов отверткой не убирает полностью разбаланс (по результатам АЦП).

Сопротивление резистора снижал до 100 Ом, конденсатора от десятков пФ до 0,1 мкФ.

Вот уже 4й день ковыряюсь, пробую разные конденсаторы и резисторы, но с любым конденсатором появляется разбаланс.



P.S. Для статистики: использую все три входа.

Сообщение отредактировал Сергей К - Mar 31 2009, 18:02
Go to the top of the page
 
+Quote Post
Сергей К
сообщение Apr 1 2009, 18:34
Сообщение #25


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 18-09-08
Из: Киев
Пользователь №: 40 317



Мне кажется, что я нашел причину. Похоже дело в опросе внутренего датчика температуры. Могу предположить, что при настройке микросхмемы на измерение температуры встроенным термодатчиком автоматически отключается напряжение подтяжки, конденсаторы начинают разряжатся (причем на плюсовом выводе быстрее). После переключения измерения на входы, источник подключается и заряжает конденсаторы почти до номинального уровня. Так как конденсатор на положительном электроде заряжается дополнительно через цепочку резисторов в 20к, то он заряжается чуть медленее, а учитывая, что вся шкала - это +/- 18 мВ, то это "чуть" становится заметным. Пары секунд для полной зарядки, похоже недостаточно, т.к. чем ближе напряжение к эталноу, тем ниже скорость. Вот я и ловил эти остаточные пару мВ.
Сейчас сделал опрос датчика температуры раз в 10 циклов, припаял конденсаторы на 0,1 мкФ между каждым входом и землей и получил отклонение (в градусах) не более 1 (у меня отображаются целые, может там всего и 0,5, но меня это устраивает).
Надеюсь, я правильно понял, в чем была причина.
Go to the top of the page
 
+Quote Post
klotos
сообщение May 19 2009, 08:42
Сообщение #26





Группа: Новичок
Сообщений: 6
Регистрация: 28-09-06
Пользователь №: 20 759



Собираюсь использовать AD7795. По опыту общения с AD7705 помнится при переключении каналов на порядок снижалась скорость преобразования. Осталась ли такая проблема у AD7795? Может быть кто-нибудь измерял реальную скорость опроса каналов?
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Aug 20 2014, 08:27
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Люди, помогите разобраться! Работаю с AD7792 - не могу включить unipolar mode. Делаю вот так (использую либу с их офф. сата):
Код
    u64 command;
    command = getRegisterValue (AD7792_REG_CONF, 2, 1);
    command |= AD7792_CONF_UNIPOLAR;
    setRegisterValue( AD7792_REG_CONF, command, 2, 1);

Потом запускаю прербразование, но ацп все равно работает в bipolar режиме. То есть результат 0x8000 + (значение ацп). Я что-то делаю не так?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 23:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01613 секунд с 7
ELECTRONIX ©2004-2016