|
|
  |
АЦП AD7705+PIC16F877, ваше мнение,советы |
|
|
|
Sep 14 2007, 10:17
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(slog @ Sep 14 2007, 13:01)  AD7705 старенький уже по нынешним временам, есть много гораздо более интересных. Смотрите у AD на сайте, закладывать 7705 в новую разработку нет смысла. Хотя если задача разовая, то можно и на нем сделать. Как в работе AD7705, послушный. Нет подводных камней? Алгоритм работы как в описании?
|
|
|
|
|
Sep 14 2007, 11:18
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(slog @ Sep 14 2007, 14:06)  По моим сведениям все в них нормально, работают. Сам на них когда-то разрабатывал. С AD7705 наверно миллионы изделий выпущены. Даташит надо внимательно читать. Но с новыми s-d ADC приятнее работать. По форуму поиском поищи, их тут не раз обсуждали. есть еще такой фактор как цена. Очень важный, как мне обяснили
|
|
|
|
|
Sep 14 2007, 16:45
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(slog @ Sep 14 2007, 19:05)  Если цена важна, то 7705 не лучший вариант, со встроенной опорой дешевле будет. И вообще, AD дешевизной не отличается, по цене есть гораздо более выгодные варианты у других производителей. А поконкретнее, парочку названий микросхем, я в этом новичек,что говорят то и делаю.
|
|
|
|
|
Sep 18 2007, 07:24
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Раз вы так настойчивы , прикрепил рабочий проект.Может пригодится. АЦП работает с тензодатчиками и токовой петлей Внешний вид в моей фотогагерее.
|
|
|
|
|
Sep 18 2007, 13:33
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(upc2 @ Sep 18 2007, 12:29)  Вроде все правильно.Попробуйте сначала сделать инициализацию Clock $0C Setup $44 и отключите буфер. Пробовал все тоже. Зависает на строчке while(DRDY){;}// постоянно висит лог.1 Если сброс - DRDY в каком состоянии? В моем случае висит лог.1 Возьму новую миктосхему, соберу схему, начну вновь
|
|
|
|
|
Sep 20 2007, 04:07
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Цитата(kolisnichenko_r @ Sep 19 2007, 17:18)  Первый раз измеряет, корректно. Но чтобы измерить второй раз (виснет при повторном измерении) нужно выключить питание или сбросить контроллер. Поздравляю. Значит живой АЦП. В документации об этом мало написано, но при каждом измерении надо начинать все сначала- инициализацию, установки и т.д.
|
|
|
|
|
Sep 20 2007, 11:30
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Цитата(kolisnichenko_r @ Sep 20 2007, 14:34)  Еще задачка: входы закорочены, результат измерения - 100-160мкВ на всем диапазоне Ку ( от 1 до 128 ); флуктуация результата измерения на всем диапазоне Ку
Может что-то в алгоритме инициализации? При закороченных входах должен быть 0. Это проблема DIP-корпуса вставленного в сокет. Лучше распаянный корпус SOIC. Второе ,стабилизация опорного напряжения.Используйте AD780.Элекромагнитные наводки,заблокируйте входы конденсаторами и многое другое. Если от этого не избавиться, то следует применять другую калибровку.Точно не помню, помоему Zero-она примет 100мкв. за 0 Вообщем у этих микросхем много возможностей.
|
|
|
|
|
Sep 21 2007, 12:26
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(kolisnichenko_r @ Sep 21 2007, 13:44)  Буфер лутше включить, без него сильная зависимость входного сопротивления от коэф. усиления. Есть интересная штуковина: закороченый вход Ку=1-4 Uвых=150мкВ Ку=8-128 Uвых=250мкВ Подаю на вход напряжение до 150мкВ(Ку=1-4) не реагирует на изменение вх. напряжения, после 150мкВ измеряет. Также до 250мкВ(Ку=8-128). Напряжение опоры 2.5В А как измеряет: Щ300 показывает 6мВ AD7705 измеряет 4мВ(Ку=1-4) 2мВ(Ку=8-128) Буфер включен.
|
|
|
|
|
Sep 24 2007, 06:39
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
И все-таки как заставить правильно работать данный представитель АЦП? Вот алгоритм инициализации, использования: инициализация: void init_AD7705(unsigned char Ku) {RESET=0;//RD7 RESET AD7705 Delayms(5); RESET=1;//RD7 Delayms(5); send_byte_spi(0b00100001);// reg.CLC,zapis,vkl.AD7705 send_byte_spi(0b00000100);//CLKDIS=0,ZQ=2.4576МГц,50Гц send_byte_spi(0b00010001);// reg.SETAP,zapis,vkl.AD7705 send_byte_spi(0b01000100|vizn_ku(Ku));//samo-kalibr.unipol.buf.otkl INTF=0;//ochistka flaga preriv.RB0 while(!INTF){;}//pereriv.RB0->DRDY INTF=0;//ochistka flaga preriv.RB0 read_2byte(0b00111001);//priem 2 byte( SPI) }
измерение: void ADC_AD7705(unsigned char Ku) {send_byte_spi(0b00010001);// reg.SETAP,zapis,vkl.AD7705 send_byte_spi(0b00000100|vizn_ku(Ku));//zapusk izm.unipol.buf.otkl INTF=0;//ochistka flaga pereriv.RB0 while(!INTF){;}//pereriv.RB0->DRDY INTF=0;//ochistka flaga pereriv.RB0 read_2byte(0b00111001);//priem 2 byte(SPI) send_byte_spi(0b00010001);// reg.SETAP,zapis,vkl.AD7705 send_byte_spi(0b00000100|vizn_ku(Ku));//zapusk vimir.unipol.buf.otkl INTF=0;//ochistka flaga pereriv.RB0 while(!INTF){;}//pereriv.RB0->DRDY INTF=0;//ochistka flaga pereriv.RB0
read_2byte(0b00111001);//priem 2 byte(SPI) }
в работе:
init_AD7705( Ku); ADC_AD7705(Ku);
Что же с внутренним буфером? Может в документации на АЦП ошибка-вместо отключеного буфера включений? Производится измерения както коряво: то одно показывает, то другое...
|
|
|
|
|
Sep 25 2007, 06:39
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Если вы не используете прецизионный источник опорного напряжения ,например AD780 и стабильный источник питания , то не мучайте АЦП. Большое значение играет монтаж. Существенное значение имеет и кварц.На входе схемы стоит резистор 7 кОм и конденсатор 7пФ, который электронный ключ подключает к земле.Время заряда определяется тактовой частотой и схемой коэффициента усиления.Мне кажется кварц 4.9152 предпочтительнее, хотя для цифрового фильтра все наоборот. Любой внешний резистор включенный последовательно со входом влияет на результат измерения. Вследствие высокого разрешения необходимо учитывать и шумы АЦП. Кроме всех прочих есть еще и остаточный шум квантования, не подавленный до конца цифровым фильтром.Про все это написано в документации.Постарайтесь более полно выполнить требования эксплуатации. Необходимо делать несколько выборок.Попробуйте делать неболшие задержки при выборках.И лучше , наверно, программно определять коэффициент усиления. Примерный код на Си. unsigned int SetGain() { unsigned int ADC; char i ; for(i=0;i<10;i++) { ADC=ReadByte(DATA); if((ADC < 0xFFFF/2)&&(gain < 7)) gain++; else if((ADC == 0xFFFF)&&(gain>0)) gain--; else break; WriteByte(SETUP,0x44|(gain<<3)); delay(200); } gotoxy(5,1); if(i>=10) cprintf(" Can't set gain !"); // else cprintf(" gain = %d => k = %d ",gain,(1<<gain)); return(ADC); }
|
|
|
|
|
Sep 26 2007, 05:41
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(upc2 @ Sep 26 2007, 07:42)  Вероятно 16-разрядный вам не подойдет.Фирма гарантирует минимальное напряжение с 600 nV. Посмотрите 24-разрядный АЦП AD7731. Он вроде нацелен на измерение малых напряжений. Где об этом можно прочитать? Если в описании микросхемы, напишите № страницы. Перечитал я datasheet AD7705(неоднократно) цифру 600нВ не нашел.
|
|
|
|
|
Sep 26 2007, 08:17
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(upc2 @ Sep 26 2007, 10:48)  <<2,5В*0,003/100%=75мкВ нелинейность; с разрешением 300нВ >>
нет ,разрешение в этом случае будет 2.5 / 65535 = 38 ( мкВ. )
дальше я не понял ваши рассуждения Показания Щ300| Значения прочитанные из АЦП 150мкВ | 38МкВ (Ку=1-128) <150мкВ | 0(Ку=1-128) Что-то похожее на таблицу (2,5В/128)*0,003/100%=0,585мкВ нелинейность; с разрешением 300нВ Тоесть можно измерять 1мкВ. В абсолютно безшумной среде. Пусть у меня есть шумы 10мкВ небыло бы 0, но он индицируется до появления сигнала 150мкВ, после этого идет измерение с разрешением, в зависимости от Ку(2.5В опора) Где собака зарыта?
|
|
|
|
|
Sep 26 2007, 12:39
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Использую самокалибровку при этом лутшие результаты. Пробовал полную калибровку, там еще выше нижний диапазон Цитата(upc2 @ Sep 26 2007, 14:57)  Я так скурпулезно не исследовал АЦП.У меня требования оказались послабее АЦП нагружен на тензодатчик, поэтому измеряет в одном диапазоне 0..20mV, т.е. с усилением 128 Измеряемый вес 0...500 кГ. Округление до одного знака после запятой. Минимальный вес которым поверял-50 гр. Результаты поверки удовлетворили. Поверка на весах еще лучше прошла. Погрешность весов 1% от взвешиваемой массы. Весы показали 0.16%. Поэтому особенно к АЦП я не придирался. Какую калибровку вы используее? Может попробовать другие? Вы утверждаете, что смогли измерять 2мкВ: 500/50е-3=10е4 => 20мВ/10е4=2мкВ Это правда?
|
|
|
|
|
Sep 27 2007, 05:39
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(upc2 @ Sep 26 2007, 16:21)  Вероятно да. Минимальная гиря была 50 гр.Я написал результаты удовлетворили. Мне то и микровольты измерять нечем.Цифровой вольтметр измеряет десятые доли милливольт.
Меня тоже все время интересует один момент.В описании они указывают на 2 предела измерения 0..20 mV и 0..2.5 (3) В., но никаких переключений нет.Только Gain Явно низкий предел ориентирован на тензодатчики и подобное. Может что-то в самой конструкции(схеме) о чем они сильно не рапространяются? Обращался к представителям AD, они порекомендовали 24 битные микросхемы: AD7787, AD7789, AD7791 - не дорогие. Без всяких объяснений об AD7705 - Вам не походит и все... Еще предложили микроконвертор ADuC847, АЦП, ЦАП и микроконтроллер на одном кристалле.
|
|
|
|
|
Sep 28 2007, 05:46
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Пока тип корпуса определяем сами.AD7738 в корпусе TSSOP с шагом 0.65.Партия должна быть большая так, что печатку наверно закажем на стороне. Вероятно , судя по вашему общению с представителями AD. отношение к качеству выпуска AD7705 у них упало. Лет 7 назад на одной из выставок мне презентовали 2 микросхемы в корпусе SOIC.Сделали макет, поработали с ней, понравилось.Года через 2 заказали партию 10 шт.Получили в DIP корпусе.Что интересно микросхемы резко уже отличались от старых. Первое это на втором канале отсутствовал 0.Причем у каждой микросхемы своя величина в районе 0.4 mV. Второе при подключении тензодатчика ни одна из микросхем не давала 0 ни на одном из каналов. Много боролись с монтажом.Самый лучший вариант на рисунке. Приведенная в документации схема подключения тензодатчика от общего источника, не работает. Вернее с общей землей.Необходим изолированный источник питания датчика. Конечно все микросхемы пустили в дело. Точный кварц можно не искать, но его величина повлияет на выходное значение. Я поставил кварц 5.0 МГц и получил на выходе вместо 20mV максимальное значение 19.45 mV Ввиду того,что максимальное измеряемое значение датчика 18 mV, то меня это устроило.
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 24 2007, 20:34
|
Местный
  
Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139

|
Цитата(kolisnichenko_r @ Sep 26 2007, 13:11)  Работал с АЦП ADS1110(16бит, Ку1-8) так там 1 отсчет есть 1 отсчет(2,048/(8*65535)=3.9мкВ) Вот и вручили мне AD7705(16бит, Ку1-128) 1мкВ - должно потянуть, а не тянет. Какой диапазон работы(входных напряжений) AD7705 в Вашем изделии? Если еще актуально: посмотрите на странице 12 datasheet AD7705 - реальная разрядность АЦП зависит от частоты измерения и коэффициента усиления.
|
|
|
|
|
Oct 25 2007, 10:13
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(Mik174 @ Oct 24 2007, 23:34)  Если еще актуально: посмотрите на странице 12 datasheet AD7705 - реальная разрядность АЦП зависит от частоты измерения и коэффициента усиления. Мы еще над AD7705 работаем, развели плату сейчас паяем. Спасибо за открытия глаз, как-то эти странички пролистывались. Теперь многое прояснилось
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|