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

 
 
> Калибровка AD7732, Калибровка АЦП
Leonmezon
сообщение Feb 11 2009, 08:34
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



ДОбрый день.
Возникла необходимость (и соотвественно сложность) в калибровке АЦП AD7732.
Сейчас без калибровки получаю напряжение так (пример на 1 АЦП из 3 - все через цфировую логику подключены к Atmega640):
//Чтение регистра ADC Status
PORTF&=~BIT(0); // CS1 установить в 0 - выбор 1 АЦП
NOP();
SpiWriteByte(0x04+0x40);
reg=SpiReadByte();
// Выбор канала готовых данных (аппаратно RDY дает сигнал только о готовности данных,без указания канала
switch (reg)
{
case 0x01:
{
// Установка чтение 0 канала данных
//Устанавливаем регистр для чтения - выходные данные 24 бит - 3 байта
SpiWriteByte(0x08+0x40);
}
break;
case 0x04:
{
// Установка чтение 1 канала данных
//Устанавливаем регистр для чтения - выходные данные 24 бит - 3 байта
SpiWriteByte(0x0A+0x40);
}
break;
case 0x05:
{
// Установка чтение 0 канала данных
//Устанавливаем регистр для чтения - выходные данные 24 бит - 3 байта
SpiWriteByte(0x08+0x40);
}
break;
default: { return (0x00);}
}
//Чтение данных из регистра АЦП
// Читаем и заносим в буфер
SPDR = 0x00;
while (!(SPSR&0x80)); // ожидание готовности порта, прежде чем считывать
A=SPDR; //считать SPDR - 1 байт
SPDR = 0x00;
while (!(SPSR&0x80)); // ожидание готовности порта, прежде чем считывать
B=SPDR; //считать SPDR - 2 байт
SPDR = 0x00;
while (!(SPSR&0x80)); // ожидание готовности порта, прежде чем считывать
C=SPDR; //считать SPDR - 3 байт
// Закрываем АЦП
PORTF|=BIT(0); // CS1 установить в 1
// Получаем длиное целое из полученных байт
// с учетом что первым идет старший байт
rez=(C+(B<<8)+(A<<16));
// Далее преобразуем с типу double и Преобразуем к напряжению
U=(((double)(rez))*10)/0xFFFFFF; // Получаем напряжение от 0 до 10 В
// Отнимаем 5 В - для сдига в биполярный сигнал - получаем изменение напряжения от -5 до 5 В
U=U-5;
// Преобразуем в микровольты и возращаем результат
rez=(signed long)(U*1000000);
return (rez);

В целом работает не плохо, но возникла задача повысить точность установки нуля. Для этого удобно использовать внутреннею калибровку АЦП. А здесь возникает сложность: чития даташит не фига не понятно, а имеено: (привожу формулу из даташита для калибровки )

For bipolar ranges:
Data = ((ADC result – ADC ZS Cal. reg.) × ADC FS Reg./400000h + 800000h – Ch. ZS Cal. reg.) × Ch. FS Cal. reg./200000h
Where the ADC result is in the range of 0 to FFFFFFh.

Вопрос: как изменяется Data? (с учетом что ADC result может быть меньше ADC ZS Cal.reg.????) и как от нее перейти к напряжению, т.е. как после этой формулы получить для возращения микровольты?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tanya
сообщение Feb 11 2009, 08:57
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Leonmezon @ Feb 11 2009, 11:34) *
ДОбрый день.
Возникла необходимость (и соотвественно сложность) в калибровке АЦП AD7732.
Сейчас без калибровки получаю напряжение так (пример на 1 АЦП из 3 - все через цфировую логику подключены к Atmega640):
;

В целом работает не плохо, но возникла задача повысить точность установки нуля. Для этого удобно использовать внутреннею калибровку АЦП. А здесь возникает сложность: чития даташит не фига не понятно, а имеено: (привожу формулу из даташита для калибровки )

For bipolar ranges:
Data = ((ADC result – ADC ZS Cal. reg.) × ADC FS Reg./400000h + 800000h – Ch. ZS Cal. reg.) × Ch. FS Cal. reg./200000h
Where the ADC result is in the range of 0 to FFFFFFh.

Вопрос: как изменяется Data? (с учетом что ADC result может быть меньше ADC ZS Cal.reg.????) и как от нее перейти к напряжению, т.е. как после этой формулы получить для возращения микровольты?

Вам ничего вычислять не нужно. Написано, что будет делаться внутри (коррекция нуля и полной шкалы) с регистрами после проведения самокалибровки.
А Вы получите скорректированные данные. Можно эти регистры читать и писать самому (для умников). Читать не вредно... Можно увидеть дрейф...
Go to the top of the page
 
+Quote Post
Leonmezon
сообщение May 20 2009, 19:13
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Цитата(Tanya @ Feb 11 2009, 11:57) *
Вам ничего вычислять не нужно. Написано, что будет делаться внутри (коррекция нуля и полной шкалы) с регистрами после проведения самокалибровки.
А Вы получите скорректированные данные. Можно эти регистры читать и писать самому (для умников). Читать не вредно... Можно увидеть дрейф...


Если я правильно понял, то мне необходимо просто провести калибровку и уже читая результат измерения все будет уже учтено?
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 20 2009, 19:44
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Leonmezon @ May 20 2009, 23:13) *
Если я правильно понял, то мне необходимо просто провести калибровку и уже читая результат измерения все будет уже учтено?

Я Вас (то, что Вы выше написали) понять не могу. И не могу понять, почему Вы меня не можете понять... Или сомневаетесь...
Go to the top of the page
 
+Quote Post
Leonmezon
сообщение May 21 2009, 08:29
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Цитата(Tanya @ May 20 2009, 22:44) *
Я Вас (то, что Вы выше написали) понять не могу. И не могу понять, почему Вы меня не можете понять... Или сомневаетесь...

Попробую объяснить:
Я сейчас запускаю АЦП (устанавливаю необходимый режим) и считываю с него данные (т.е. результат измерения напряжения на входе). Результат меня более или менее устраивает, но хочется получить более точное значения измеренного напряжения, с учетом, что есть дрейф нуля, ИОН не ровно 2,56 В ..... АЦП имеет возможность калибровки: как в целом, так и по каждому каналу. Для калибровки мне необходимо запусть соответствующие режимы работы АЦП (с ними все понятно), а вот дальше не совсем. Что после этого мне необходимо делать???
Как я думаю (возможно и не правильно), после калибровки у меня изменяются значения соответствующих регистров, я их считываю, и считываю результат измерения и по формуле (которая приведена) вычисляю скорректированный результат - правильно?
Или, как я Вас понял, после калибровки АЦП, новые результаты автоматически корректируется и я уже считываю корректированный результат из АЦП - так?
Go to the top of the page
 
+Quote Post
DS
сообщение May 21 2009, 11:07
Сообщение #6


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Leonmezon @ May 21 2009, 12:29) *
Или, как я Вас понял, после калибровки АЦП, новые результаты автоматически корректируется и я уже считываю корректированный результат из АЦП - так?


Да, именно так.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Leonmezon
сообщение May 29 2009, 20:03
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Просьба подсказать: необходима ли развязка между АЦП и микроконтроллером по SPI интерфейсу? (сейчас делаю через инверторы на рис.)
Кто нибудь пробывал запустить АЦП AD7732 на частоте меньше минимальной (мин. по даташиту 1 Мгц) скажем на 800 кГц?

Сообщение отредактировал Leonmezon - May 29 2009, 20:09
Прикрепленные файлы
Прикрепленный файл  ___________________.zip ( 251.6 килобайт ) Кол-во скачиваний: 25
 
Go to the top of the page
 
+Quote Post
DS
сообщение May 31 2009, 09:13
Сообщение #8


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Цитата(Leonmezon @ May 30 2009, 00:03) *
Просьба подсказать: необходима ли развязка между АЦП и микроконтроллером по SPI интерфейсу? (сейчас делаю через инверторы на рис.)
Кто нибудь пробывал запустить АЦП AD7732 на частоте меньше минимальной (мин. по даташиту 1 Мгц) скажем на 800 кГц?


Развязка не нужна. Но нужно отслеживать состояние DIN во время чтения, не давать ему болтаться произвольно.
Нам еньшей частоте будет работать, но точность "поплывет". А зачем такое извращение ?


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Leonmezon
сообщение May 31 2009, 17:01
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Цитата(DS @ May 31 2009, 13:13) *
Развязка не нужна. Но нужно отслеживать состояние DIN во время чтения, не давать ему болтаться произвольно.
Нам меньшей частоте будет работать, но точность "поплывет". А зачем такое извращение ?


С DIN понятно (да и по программе видно - что не болтаться). То есть как я правильно понял - с точки зрения уменьшения погрешности АЦП - установка инверторов не чего не дает?
На меньшей частоте необходимо для получения частоты дискретизации 50 Гц (на 1 МГц - мин. по даташиту - минимальная частота преобразования примерно 60 Гц) Фактически использовать надо АЦП - 2 режима 50 ГЦ и 200 Гц (зависит от переключателя), поиск другого АЦП не чего не дал, (по диапазону не проходят! +-10В дифференциальном режиме+ 2 канала и циклический режим (если по схеме смотреть организую непрерывное преобразование без пропусков).
А другой вопрос: если я 4 преобразования на частоте 200 Гц - объединю в одно (U1+U2+U3+U4)/4 - это будет эквивалентно частоте 50 Гц? И помеха 50 Гц пролезет? (по теореме же на 50 Гц мы не видим частоты больше 25 Гц).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Leonmezon   Калибровка AD7732   Feb 11 2009, 08:34
|- - DS   Цитата(Tanya @ Feb 11 2009, 11:57) Вам ни...   Feb 11 2009, 09:42
- - DS   Усреднять результаты можно. Теорему Вы не правильн...   Jun 1 2009, 14:58
|- - Leonmezon   Цитата(DS @ Jun 1 2009, 18:58) Усреднять ...   Jun 1 2009, 15:30
|- - DS   Цитата(Leonmezon @ Jun 1 2009, 19:30) До ...   Jun 1 2009, 15:50
|- - Leonmezon   Цитата(DS @ Jun 1 2009, 19:50) Такой филь...   Jun 2 2009, 19:41
|- - DS   Цитата(Leonmezon @ Jun 2 2009, 23:41) Для...   Jun 3 2009, 20:41
|- - Leonmezon   Цитата(DS @ Jun 4 2009, 00:41) Я не писал...   Jun 4 2009, 12:01
- - Leonmezon   Просьба подсказать как лучше будет (задании параме...   Jul 4 2009, 16:45
- - DS   14 Мгц кварц - не ошибка ? Максимально, что допуст...   Jul 6 2009, 09:37
|- - Leonmezon   Цитата(DS @ Jul 6 2009, 13:37) 14 Мгц ква...   Jul 6 2009, 14:33
|- - Tanya   Цитата(Leonmezon @ Jul 6 2009, 18:33) Пр ...   Jul 6 2009, 15:23
|- - Leonmezon   Цитата(Tanya @ Jul 6 2009, 19:23) Так не ...   Jul 6 2009, 15:33
|- - DS   Цитата(Leonmezon @ Jul 6 2009, 19:33) Вых...   Jul 6 2009, 19:33
|- - Leonmezon   Цитата(DS @ Jul 6 2009, 23:33) Программну...   Jul 6 2009, 19:48
|- - DS   Цитата(Leonmezon @ Jul 6 2009, 23:48) Воп...   Jul 6 2009, 20:35
|- - Leonmezon   Цитата(DS @ Jul 7 2009, 00:35) Вы серьезн...   Jul 6 2009, 20:51
|- - DS   Цитата(Leonmezon @ Jul 7 2009, 00:51) Не ...   Jul 7 2009, 05:45
|- - Leonmezon   Цитата(DS @ Jul 7 2009, 09:45) У них част...   Jul 7 2009, 14:59
|- - Tanya   Цитата(Leonmezon @ Jul 7 2009, 18:59) Что...   Jul 7 2009, 16:01
|- - Leonmezon   Цитата(Tanya @ Jul 7 2009, 20:01) Могу то...   Jul 7 2009, 16:24
|- - Tanya   Цитата(Leonmezon @ Jul 7 2009, 20:24) Поп...   Jul 7 2009, 16:33
|- - Leonmezon   Цитата(Tanya @ Jul 7 2009, 20:33) Кто бы ...   Jul 7 2009, 16:40
|- - Tanya   Цитата(Leonmezon @ Jul 7 2009, 20:40) Да ...   Jul 7 2009, 16:55
|- - DS   Цитата(Leonmezon @ Jul 7 2009, 20:40) Да ...   Jul 7 2009, 18:02
|- - Leonmezon   Цитата(DS @ Jul 7 2009, 22:02) На всех АЦ...   Jul 7 2009, 18:23
|- - DS   Цитата(Leonmezon @ Jul 7 2009, 22:23) С н...   Jul 7 2009, 18:30
|- - Leonmezon   Цитата(DS @ Jul 7 2009, 22:30) У Вас полу...   Jul 8 2009, 14:13
|- - DS   Цитата(Leonmezon @ Jul 8 2009, 18:13) Из ...   Jul 9 2009, 09:41
- - Rockstein   Спасибо за подробное объяснение калибровки, я тоже...   Sep 9 2009, 22:00
|- - DS   А питание как ? Земля ? 1/1000 от значения уже вес...   Sep 10 2009, 15:06
|- - Rockstein   Цитата(DS @ Sep 10 2009, 19:06) А питание...   Sep 10 2009, 19:07
|- - dos622   Цитата(Rockstein @ Sep 10 2009, 23:07) ди...   Sep 11 2009, 11:36
|- - Rockstein   Цитата(dos622 @ Sep 11 2009, 15:36) Как п...   Sep 11 2009, 11:44
|- - dos622   Цитата(Rockstein @ Sep 11 2009, 15:44) По...   Sep 11 2009, 12:09
- - DS   Может быть корявый фронт, который с небольшой веро...   Sep 11 2009, 07:06
|- - Rockstein   Цитата(DS @ Sep 11 2009, 10:06) Может быт...   Sep 11 2009, 10:38
|- - DS   Цитата(Rockstein @ Sep 11 2009, 14:38) Ещ...   Sep 11 2009, 12:10
||- - Rockstein   Цитата(DS @ Sep 11 2009, 16:10) Вообще-то...   Sep 11 2009, 12:23
|- - Tanya   Цитата(Rockstein @ Sep 11 2009, 14:38) Ещ...   Sep 11 2009, 13:18
|- - Rockstein   Цитата(Tanya @ Sep 11 2009, 16:18) Через ...   Sep 11 2009, 14:26
- - Rockstein   УРА!!!! Поздравте меня. Все-таки э...   Sep 11 2009, 20:56
|- - DS   Цитата(Rockstein @ Sep 12 2009, 00:56) УР...   Sep 12 2009, 15:18
|- - Tanya   Цитата(DS @ Sep 12 2009, 19:18) Для этого...   Sep 12 2009, 15:30
|- - Rockstein   Цитата(DS @ Sep 12 2009, 18:18) ACT для т...   Sep 13 2009, 21:43
- - DS   Ну я даже и не знаю как такое откомментировать. Ст...   Sep 14 2009, 12:50
|- - Rockstein   Цитата(DS @ Sep 14 2009, 15:50) Ну я даже...   Sep 14 2009, 19:56
|- - Rockstein   Цитата(DS @ Sep 14 2009, 15:50) Ну я даже...   Sep 14 2009, 21:52
|- - dos622   Цитата(Rockstein @ Sep 15 2009, 01:52) Да...   Sep 15 2009, 09:41
|- - DS   Цитата(Rockstein @ Sep 15 2009, 01:52) Да...   Sep 15 2009, 10:58
|- - Rockstein   Цитата(DS @ Sep 15 2009, 14:58) Нет, глуп...   Sep 15 2009, 11:47
|- - DS   Цитата(Rockstein @ Sep 15 2009, 15:47) А ...   Sep 15 2009, 11:51
|- - Rockstein   Цитата(DS @ Sep 15 2009, 14:51) Не обязат...   Sep 15 2009, 20:55
|- - DS   Цитата(Rockstein @ Sep 16 2009, 00:55) Сп...   Sep 15 2009, 21:13
|- - Rockstein   Цитата(DS @ Sep 16 2009, 01:13) Я надеюсь...   Sep 16 2009, 22:15
- - Herz   Цитата(Rockstein @ Sep 14 2009, 21:56) Се...   Sep 15 2009, 10:26
- - dos622   Цитата(Herz @ Sep 15 2009, 14:26) А зачем...   Sep 15 2009, 10:42


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

 


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


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