Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Калибровка внешнего АЦП
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
inventor
Я закрыл предыдущую тему, так как разобрался со своим неправильным подключением.
Теперь у меня возник вопрос КАК калибровать мой АЦП
И зачем все это нужно.
А также для чего писать и читать из калибровочных регистров.
У меня АЦП AD7714,
подсоединил к нему тензодатчик на каналы AIN(+) AIN(-)
и меряю нажатия и получаю данные.
Перед работой делаю калибровку по-нулю
и самокалибровку
Мне казалось, что достаточно найти коэффициент пересчета
этих данных, чтобы получить нужные мне килограмы.
Если не трудно, как вся эта калибровка делается и для чего это все нужно.
Mareng
Один коэф-т при калибровке нужен, если зависимость выходного кода ацп от давления на датчике линейная.
Склихасовский
если всего один коэффициент - то можно смело называть это не калибровкой а коэффициент масштабирования.
alux
А если еще нужно учитывать температурную зависимость и нелинейность, то нужно делать как минимум 7 измерений в трех температурах (при крайних и средней температурах) и с нагруженным и пустым датчиком. Затем, по полученным данным рассчитать коэффициенты полинома и вычислить реальный сигнал.
maxxx_x
ad7731 два канала давление и температура
делаем один раз после ресета ацп
желательно ресет управляемый МК ,а то бывает ацп в даун уходит и РДИ не отдает
РДИ на ИНТ и по приходу читаем состояние каналов
по таймауту на РЕСЕТ





init_spi: ldi al,0x8 ;init
sts flag_spi,al ;
sts flag_tx,al ;передача запрещена
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ldi cl,4 ;.04sec= 40ms
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ldi al,0b00000011 ;
rcall wr_spi ;
lds al,filtr_zerh ; filtrzero 1
rcall wr_spi ;
lds al,filtr_zerl ;
rcall wr_spi ;
call delit ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ldi al,0b00000010 ;
rcall wr_spi ;
ldi al,0b10100001 ;калибр full
rcall wr_spi ;
lds al,numbmasht0 ;mash<<4+chanal1
rcall wr_spi ;
call delit ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ldi al,0b00000010 ;
rcall wr_spi ;
ldi al,0b10000001 ;калибр
rcall wr_spi ; 0
lds al,numbmasht0 ;
rcall wr_spi ;
call delit ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ldi al,0b00000010 ;
rcall wr_spi ;
ldi al,0b10100001 ;калибр full
rcall wr_spi ;
lds al,numbmasht1 ;
rcall wr_spi ;
call delit ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ldi al,0b00000010 ;
rcall wr_spi ;
ldi al,0b10000001 ;калибр
rcall wr_spi ; 0
lds al,numbmasht1 ;mash<<4+chanal2
rcall wr_spi ;
call delit ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ldi al,0b00000011 ;
rcall wr_spi ;
lds al,filtr_fullh ; filtr основной
rcall wr_spi ;
lds al,filtr_fulll ;
rcall wr_spi ;
call delit ;
ldi al,0b00000010 ;
rcall wr_spi ;
ldi al,0x51 ;
rcall wr_spi ;
ldi al,0 ;
sts canal,al ;
sts schetl,al ;
lds al,numbmasht0 ;
rcall wr_spi ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ret ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.