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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Обработка данных 24-битной АЦП
Kannikkiy
сообщение Nov 11 2009, 18:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Доброго времени суток!
Появилась возможность использовать для обработки данных 24-битный АЦП AD7714. При написании прошивки для МК встал вопрос как из этих 3 байт вытащить значение измеренного напряжения, т.е. расшифровать принимаемые данные? В даташите структура датарегистров не отображена. Возможно это стандартный вид передачи информации, но мы о нем не знаем smile.gif
Go to the top of the page
 
+Quote Post
V_G
сообщение Nov 11 2009, 19:48
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



24 бита - класс! Там ожидается больше возни с аппаратурой, чтобы все 24 бита были реально значимыми, а не утонули в наводках.
Собственно про ИС приду на работу, почитаю внимательно даташит, помогает... Если никто до того не присоветует, отпишусь...
Go to the top of the page
 
+Quote Post
PrSt
сообщение Nov 11 2009, 20:17
Сообщение #3


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Цитата(Kannikkiy @ Nov 11 2009, 21:38) *
Доброго времени суток!
Появилась возможность использовать для обработки данных 24-битный АЦП AD7714. При написании прошивки для МК встал вопрос как из этих 3 байт вытащить значение измеренного напряжения, т.е. расшифровать принимаемые данные? В даташите структура датарегистров не отображена. Возможно это стандартный вид передачи информации, но мы о нем не знаем smile.gif

мне лет 5 назад приходилось иметь дело с AD7719, она тоже 16/24бита, и если я не запамятовал , то она похожа на вашу AD7714, только 2х канальная. посмотрите на ее даташит
так вот там все тупо, несколько режимов - стробируете, и получаете данные, в соответствие с тем как сконфигурировали ее..

.


--------------------
Go to the top of the page
 
+Quote Post
Xenia
сообщение Nov 11 2009, 21:14
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Kannikkiy @ Nov 11 2009, 21:38) *
При написании прошивки для МК встал вопрос как из этих 3 байт вытащить значение измеренного напряжения, т.е. расшифровать принимаемые данные? В даташите структура датарегистров не отображена. Возможно это стандартный вид передачи информации, но мы о нем не знаем.

Это обычное число в двоичном формате. Обычно бывает достаточно приписать спереди еще один (старший) байт, содержащий нули, чтобы получилось типичное число типа unsigned long (32-битное беззнаковое целое). В тех случаях, когда АЦП работает в дифференциальном режиме, то выдаваемое им число может оказаться со знаком. Тогда приписываемый спереди байт заполнятеся нулями только в том случае, если старший бит данных является нулем, или заполняется полностью двоичными единичками, если старший бит является единичкой. Этот метод носит название "расширения знака", т.к. здесь старший бит данных распростаняется на всю приписываемую спереди часть. Последнее не есть какая-то специфика АЦП, а представляет собой типичный метод, которым более короткое знаковое число копируется в более длинное.
Короче говоря, берете число типа long, зануляете его, запихиваете 24-битные данные от АЦП в его младшие 3 байта, а потом разбираетесь с тем, что получилось. Оно окажется либо пригодно сразу, либо потребует минимальную коррекцию:
if (xlong >= 0x800000) xlong |= 0xFF000000;
Go to the top of the page
 
+Quote Post
vvs157
сообщение Nov 11 2009, 21:50
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(V_G @ Nov 11 2009, 22:48) *
24 бита - класс!
В сигма-дельта вы эти 24 бита никогда не получите. Посмотрите DS на любой 24-битник и увидете, что там только 21 бит. А 24 - это то, что называется RMS - среднеквадратичная точность. Чисто маркетинговый ход, ибо, как изветно, "в попугаях-то больше" ©
Go to the top of the page
 
+Quote Post
Xenia
сообщение Nov 12 2009, 01:18
Сообщение #6


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(vvs157 @ Nov 12 2009, 00:50) *
В сигма-дельта вы эти 24 бита никогда не получите. Посмотрите DS на любой 24-битник и увидете, что там только 21 бит. А 24 - это то, что называется RMS - среднеквадратичная точность. Чисто маркетинговый ход, ибо, как изветно, "в попугаях-то больше" ©

Получите - не получите, но все эти 24 бита они выдают, как бы ни шумели младшие биты. Поэтому поднятый в теме вопрос о том, как преобразовать эти 24 бита в число, с которым можно работать, остается правомерным. А шум при желании можно фильтровать, если измерения поступают часто, а изменяемая величина малоподвижная, типа термопары.
Go to the top of the page
 
+Quote Post
Aner
сообщение Nov 12 2009, 08:57
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



уважаемый ничего вы не отфильтруете. Просто потратьте время, если уровень знаний позволяет, почитайте литературы немного по этой тематике, по АЦП желательно на английском и войдите в курс. Вы думаете получить ~140dB динамического диапазона? Простыми действиями? Нет конечно. Из этих 3 а то и из 5 младших разрядов можете делать ПСП генератор и фильтруйте скоко хотите, только вопрос чем и как? Хорошо децибел 100-110 вытяните (16-18 разрядов), только ведь и померить чем то это надо. А есть чем померить динамику?
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Nov 12 2009, 13:48
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



AD7714, как и множество других сигма-дельта АЦП от ADI, имеет беззнаковое представление данных (у дельта-сигма АЦП от TI код обычно имеет знаковое представление). В униполярном режиме код соотвествует значениям от нуля до полной шкалы. В биполярном режиме нет знакового бита, код от 0 до 0x7fffff соотвествует отрицательным значениям (0 соответствует наиболее отрицательному числу), 0x800000 - ноль шкалы, а все значения кода более 0x800000 и до максимума шкалы 0xffffff соотвествуют положительным значениям входного сигнала.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
Kannikkiy
сообщение Nov 12 2009, 14:01
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Мы понимаем, что 24 бита это миф. И даташит читали много раз. И фильтровать будем. И знаем, что integer занимает 4 байта. НО! Это все очевидно и неважно.
Проблема в следующем: из ацп приходит целое число. например 0x80123456. сколько это в вольтах?

Мне кажется, что должна быть какая-то определённая формула пересчета.

Цитата(sensor_ua @ Nov 12 2009, 16:48) *
... код соотвествует значениям от нуля до полной шкалы...


это понятно, но сколько вольт полная шкала?

Сообщение отредактировал Kannikkiy - Nov 12 2009, 14:03
Go to the top of the page
 
+Quote Post
Xenia
сообщение Nov 12 2009, 14:23
Сообщение #10


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(sensor_ua @ Nov 12 2009, 16:48) *
В униполярном режиме код соотвествует значениям от нуля до полной шкалы. В биполярном режиме нет знакового бита, код от 0 до 0x7fffff соотвествует отрицательным значениям (0 соответствует наиболее отрицательному числу), 0x800000 - ноль шкалы, а все значения кода более 0x800000 и до максимума шкалы 0xffffff соотвествуют положительным значениям входного сигнала.

В этом случае, после перемещения данных в переменную типа в long достаточно вычесть из нее 0x800000, чтобы получить стандартное представление, где нуль находится на нуле, а не на 0x800000.

Цитата(Kannikkiy @ Nov 12 2009, 17:01) *
это понятно, но сколько вольт полная шкала?

Полная шкала для этого АЦП, кажется, равна удвоенному опорному (без учета Gain). Но в даташите это должно быть написано точно.

Страница 11 даташита (ревизия C):
Цитата
The effective resolution of the device is defined as the ratio of the output rms noise to the input full scale (i.e., 2 х VREF/GAIN).
Go to the top of the page
 
+Quote Post
V_G
сообщение Nov 12 2009, 14:28
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Полная шкала у АЦП обычно равна опоре. А какая опора - написано в даташите. Все в сад!
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Nov 12 2009, 14:30
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
это понятно, но сколько вольт полная шкала?


RTFM

AIN Differential Voltage Range
0 to +VREF/GAIN nom Unipolar Input Range (B/U Bit of Filter High Register = 1)
±VREF/GAIN nom Bipolar Input Range (B/U Bit of Filter High Register = 0)

VREF = REF IN(+) – REF IN(–).


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
Kannikkiy
сообщение Nov 12 2009, 14:34
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Цитата(V_G @ Nov 12 2009, 17:28) *
Полная шкала у АЦП обычно равна опоре. А какая опора - написано в даташите. Все в сад!


Так и зделаем. Всем спасибо.

Просто на варварском языке тяжеловато читать. не всегда находится то что надо.

Сообщение отредактировал Kannikkiy - Nov 12 2009, 14:38
Go to the top of the page
 
+Quote Post
Xenia
сообщение Nov 12 2009, 14:46
Сообщение #14


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(V_G @ Nov 12 2009, 17:28) *
Полная шкала у АЦП обычно равна опоре. А какая опора - написано в даташите.

Удвоенному опорному! При Vref=2.5V в униполярном режиме полная шкала 5V.
Однако так не для всех АЦП - те, что встроены в МК, действительно требуют опору, равную величине шкалы.

Цитата(V_G @ Nov 12 2009, 17:28) *
Все в сад!

Прошу вас соблюдать на форуме правила приличия и не опускаться до унижения собеседников.
Go to the top of the page
 
+Quote Post
Kannikkiy
сообщение Nov 12 2009, 15:04
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-12-08
Пользователь №: 42 777



Цитата(sensor_ua @ Nov 12 2009, 17:30) *
AIN Differential Voltage Range
0 to +VREF/GAIN nom Unipolar Input Range (B/U Bit of Filter High Register = 1)
±VREF/GAIN nom Bipolar Input Range (B/U Bit of Filter High Register = 0)
VREF = REF IN(+) – REF IN(–).


Цитата(Xenia)
Удвоенному опорному! При Vref=2.5V в униполярном режиме полная шкала 5V.


Ну и как теперь быть?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:08
Рейтинг@Mail.ru


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