Добрый день !
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
пробовал записывать младшую часть - не помогает