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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> 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
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

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

 


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


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