Помогите разобраться с АЦП AD7715

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Filimon

Помогите разобраться с АЦП AD7715

Сообщение Filimon »

Добрый день! Делаю весы на ацп AD7715 и ATMega8535, проблема вот в чём:
АЦП нормально принимает команды от контроллера, но не получается считывать данные из регистра данных АЦП, в даташите есть пример работы на Си, я полностью воспроизвёл данный алгоритм на АСМе, но АЦП передаёт только единицы ;(, уже неделю ломаю стену головой, перепробовал всё что в голову пришло. АЦП достаточно популярное, думаю кто-нибудь уже с ним работал, помогите люди добрые ;)
Реклама
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

just a little не в тему...
а не поделится ли уважаемый схемой? какой датчик используется, если не секркт? просто на форуме сейчас уже идет обсуждение электронных весов..

А насчет АЦП - посмотрю по своим материала, вроде было что-то..
Реклама
Filimon

Сообщение Filimon »

Схема есть только в одном экземляре, нарисована ручкой на листе :)))
4 разрядный светодиодный индикатор, драйвер этого индикатора MAX7219, опорник REF195, датчик тензорезистивный, мостовой HUNTLEIGH 1022 на 6КГ подключен напрямую к АЦП. Всех хозяйством управляет ATMega8535, на самом деле комплектация специально не подбиралась, взял то что было под рукой.
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

понял, спасибо... Интересен в первую очередь был датчик, все остальное в принципе понятно и стандартно.
Реклама
Эиком - электронные компоненты и радиодетали
Гость

Re: Помогите разобраться с АЦП AD7715

Сообщение Гость »

Filimon писал(а):Добрый день! Делаю весы на ацп AD7715 и ATMega8535, проблема вот в чём:
АЦП нормально принимает команды от контроллера, но не получается считывать данные из регистра данных АЦП, в даташите есть пример работы на Си, я полностью воспроизвёл данный алгоритм на АСМе, но АЦП передаёт только единицы ;(, уже неделю ломаю стену головой, перепробовал всё что в голову пришло. АЦП достаточно популярное, думаю кто-нибудь уже с ним работал, помогите люди добрые ;)
Филимон, и чем дело закончилось? Сам маюсь. DDRY выставляется, а считывается всякая хрень - у меня нули
Реклама
Аватара пользователя
avr123.nm.ru
Вечно гонимый
Сообщения: 331
Зарегистрирован: Пн сен 04, 2006 20:25:28
Откуда: самоучитель по микроконтроллерам
Контактная информация:

Re: Помогите разобраться с АЦП AD7715

Сообщение avr123.nm.ru »

Filimon писал(а):в даташите есть пример работы на Си, я полностью воспроизвёл данный алгоритм на АСМе
Значит не полностью. Полностью компиялтор может быстро сделать.
Реклама
Гость

Сообщение Гость »

Данные передаются старшим битом вперед, также и считываются.
DIN выставляется при низком уровне SCLK, DOUT считывается при высоком.
На ножке CS 0.
Вот фрагмент моей программы
//************************************
//* П/П записывает команду в AD7715 **
//************************************
void Writetoreg (unsigned char byteword)
{ //
for (i=0;i<8;i++) //
{ //
PORTC&=~(1<<PC5); // DIN=0
PORTC&=~(1<<PC3); // Подаем синхроимпульс: SCLK=0
if (byteword & 0x80) PORTC|=(1<<PC5);// Если выделенный бит =1, то DIN=1
byteword=byteword<<1; // Сдвигаем byteword на один разряд влево
// для выделения следующего бита
PORTC|=(1<<PC3); // SCLK=1
_NOP(); //
}
_WDR();
}

//************************************
//** П/П считывает данные из AD7715 **
//************************************
unsigned int Read (void)
{
unsigned int tmp=0; //
for (i=0;i<16;i++) //
{
PORTC&=~(1<<PC3); // SCLK=0 Подаем синхроимпульс
_NOP(); //
_NOP(); //
PORTC|=(1<<PC3); // SCLK=1
tmp=tmp<<1; // Если DOUT=0, тогда просто сдвигаем tmp влево
if (PINF & 0x20) tmp=tmp+1; // Если DOUT=1 - тогда прибавляем еще единицу
} //
return tmp; // Возвращаем 16-и разрядное слово
}
Filimon

Сообщение Filimon »

Закончилось всё нормально, весы работают ;) Кварц на АЦП 1МГц, если что в листинге не понятно спрашивайте...

init_ACP: Настройка АЦП

ldi temp1,0b1011111
out SPCR,temp1 ;Настройка SPI

cbi porta,0 ;CS на АЦП

ldi temp1,0b00010011 ;Кус 128
out SPDR,temp1
rcall wait_spi ; Ждём пока данные уйдут

ldi temp1,0b01010100 ;F дискретизации 100Гц
out SPDR,temp1
rcall wait_spi
sbi porta,0

ret


read_acp: Чтение данных
ldi temp1,0b1011111
out SPCR,temp1

cbi porta,0

ldi temp1,0b111011 ;Команда на чтение данных
out SPDR,temp1
rcall wait_spi

rcall acp_wait ;Ждём DRDY

clr temp1
out SPDR,temp1
rcall wait_spi
in temp2,SPDR ;Первый байт

clr temp1
out SPDR,temp1
rcall wait_spi
in temp3,SPDR ;Второй байт

sbi porta,0

ret
grjgrj
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн сен 28, 2009 08:59:02

Сообщение grjgrj »

А не могли бы в кратце алгоритм рассказать как вы с АЦП работаете? а то я с PIC ами работаю, ассемблер атмелов не знаю. Спасибо за ранее...
africa
Родился
Сообщения: 1
Зарегистрирован: Сб апр 09, 2011 15:03:51

Re: Помогите разобраться

Сообщение africa »

Извините за нескромный вопрос .
У меня напольные торговые весы, я слышала, что их можно запрограммировать , чтобы вес показывали немного больше, 10 грамм на 1 киллограмме или 100 грамм на 10 киллограммах.
Очень прошу научите знатоки.
CS16AMX
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 30, 2010 00:50:40

Re: Помогите разобраться с АЦП AD7715

Сообщение CS16AMX »

смотря для чего?))) :))) я за чесность)
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Помогите разобраться с АЦП AD7715

Сообщение Vov123 »

Так за чеснок или честь?
grjgrj
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Пн сен 28, 2009 08:59:02

Re: Помогите разобраться

Сообщение grjgrj »

africa писал(а):Извините за нескромный вопрос .
У меня напольные торговые весы, я слышала, что их можно запрограммировать , чтобы вес показывали немного больше, 10 грамм на 1 киллограмме или 100 грамм на 10 киллограммах.
Очень прошу научите знатоки.
Это возможно полюбому, но первая проверка и будет штраф и х. знает еще чего. У нас на фирмы весы ремонтируются, а затем их поверяют и пломбу ставят. Так что не советую :)
Аватара пользователя
zim
Открыл глаза
Сообщения: 64
Зарегистрирован: Вт ноя 01, 2011 10:30:00
Откуда: Украина
Контактная информация:

Re: Помогите разобраться с АЦП AD7715

Сообщение zim »

Немогу разобратся с AD7715 .Проблема такая .При подаче питания на АЦП, выставляю ноль на RESET а затем единицу .Насколько я понял из
даташита на DRDY lдолжен появится высокий уровинь а у меня низкий :o
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»