Отговори на тема  [ 3 мнения ] 
Интерфейс на AD77XX (АЦП от Analog Devices) с PicMicro 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Ное 10, 2005 2:17 am
Мнения: 35
Мнение Интерфейс на AD77XX (АЦП от Analog Devices) с PicMicro
Помогнете ...
Няма много инфо за тях, май не са популярни?


Пон Дек 19, 2005 8:31 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
Интересно защо така мислиш, инфо има достатъчно, ето по долу, това някога съм го преработвал за 7714, не помня оригинално за какво е било, трябва да работи, библиотеката е за CCS.


//*************************************************************
// Driver routines for the AD7714 chip, by ToHu
// write_adc_byte()
// adc_init()
// read_adc_word()
// read_adc_value()
//*************************************************************
#define ADC_CS PIN_A0
#define ADC_RESET PIN_A1
#define ADC_DRDY PIN_A2
#define ADC_DI PIN_A3
#define ADC_DO PIN_A4
#define ADC_CLK PIN_A5



void write_adc_byte(int data)
{
int i;
output_low(ADC_CS);
for(i=1;i<=8;++i)
{
output_low(ADC_CLK);
output_bit(ADC_DI, shift_left(&data,1,0));
output_high(ADC_CLK);
}
output_high(ADC_CS);
}

adc_init()
{
output_low(ADC_RESET);
output_high(ADC_CLK);
output_high(ADC_CS); //Set low to AD7714 chip select low pin
output_high(ADC_RESET); //Set high to AD7714 reset low pin
delay_ms(3000);
write_adc_byte(0x24); //to com.register, chanel & filter Hi
write_adc_byte(0xCF); //to filter hi register
write_adc_byte(0x34); //to com.register, chanel & filter low
write_adc_byte(0x00); //to filter low register
write_adc_byte(0x10); //to com register, chanel & mod register
write_adc_byte(0x20); //to mod register, self test
}



int32 read_adc_word()
{
int i;
int32 data;
output_low(ADC_CS);
for(i=1;i<=24;++i)
{
output_low(ADC_CLK);
output_high(ADC_CLK);
shift_left(&data,3,input(ADC_DO));
}
output_high(ADC_CS);
return data;
}



int32 read_adc_value()
{
int32 value;
while ( input(ADC_DRDY) );
while ( !input(ADC_DRDY) );
while ( input(ADC_DRDY) );
write_adc_byte(0x58);
value=read_adc_word();
return value;
}


Вто Дек 20, 2005 1:50 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Ное 10, 2005 2:17 am
Мнения: 35
Мнение Thanks !
Благодаря ти ...
Ще го пробвам и ще опитам да го доразвия...

10х


Чет Дек 22, 2005 3:50 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 3 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 14 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни