|
|
  |
АЦП AD7705+PIC16F877, ваше мнение,советы |
|
|
|
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В опора) Где собака зарыта?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|