Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AD7718
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Вопросы аналоговой техники
fox1
Добрый день !

AD7718

После калибровки AD7718_INTERNAL_ZERO_SCALE_CALIBRATION считываю значение калибровочного коэфициента из регистра OF0.
Далее сбрасываю АЦП.
Перед очередным измерением записываю данный коэффициент в OF0 - и все ... АЦП клинит ....

В чем может быть проблема ?

Куски кода:

1. По таймеру калибрую все 5 каналов - по 2 калибровки

Пример калибровки одного канала

AD7718_WriteRegister(AD7718_CONTROL_REGISTER, ( AD7718_AIN1_AINCOM | AD7718_UB | AD7718_GAIN_1 ) ); // U POWER P
AD7718_WriteRegister(AD7718_MODE_REGISTER, ( AD7718_INTERNAL_ZERO_SCALE_CALIBRATION ) );

2. По готовности считываю калибровочный коэффициент

ulOffset_ADCDatesU_Power_P = AD7718_ReadRegister(AD7718_OFFSET_REGISTER);

3. Далее, после окончания цикла калибровки АЦП - начинаю измерения - тоже по таймеру

AD7718_WriteRegister(AD7718_I_O_CONTROL_REGISTER, 0x00);

AD7718_WriteRegister( AD7718_FILTER_REGISTER, 82 ); // DataRate~105Hz, 50Hz Rejection

AD7718_WriteRegister( AD7718_CONTROL_REGISTER, ( AD7718_AIN1_AINCOM | AD7718_UB | AD7718_GAIN_1 ) ); // U POWER P
AD7718_WriteRegister( AD7718_MODE_REGISTER, AD7718_IDLE_MODE );

AD7718_WriteRegister( AD7718_OFFSET_REGISTER, ulOffset_ADCDatesU_Power_P);

......

AD7718_StartSingleConversion(0); // (!AD7718_NEGBUF) - AD7718_NEGBUF должен быть сброшен !!!!!!!!


АЦП клинит ...


без AD7718_WriteRegister( AD7718_OFFSET_REGISTER, ulOffset_ADCDatesU_Power_P); - все работает

еще заметил

после сброса без проведения калибровки значение регистра равно нулю

после проведения калибровки - 0х8001D ... 0x8000F

пробовал записывать младшую часть - не помогает
fox1
Разобрался

Проблема была в порядке записи байт а ацп

Extern_ADC24_SendByte(RegisterAddress);

tempVal1.unState.ulVal = ulData;
Extern_ADC24_SendByte( tempVal1.unState.ucByte[2] );
Extern_ADC24_SendByte( tempVal1.unState.ucByte[1] );
Extern_ADC24_SendByte( tempVal1.unState.ucByte[0] );


Прошу закрыть тему
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.