Измеряем напряжение в импульсе INA226+atmega8

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Прорезались зубы
Сообщения: 228
Зарегистрирован: Пн окт 04, 2010 11:55:41

Сообщение neid »

Всем привет! Затея измерить сопротивление импульсное Rimp d АКБ автомобильном. Есть для этого метода, Rimp = (Uimp-Uакб)/Iimp, где Uакб - напряжение до импульса, Uimp - напряжение в момент импульса, и Iimp - ток в момент импульса. Импульс длительностью 1 милисекунды. Измеряется все это дело при помощи INA226 c шунтом на 20А /75мВ. Связь с INA226 по I2C частота 100kHz.
Вопрос в том что моем коде опрос INA226, увеличивает время импульса до 40мс по ослику. Убираем работу с INA226 четко работа 1мс. Как быть, отказаться от такой затеи с INA226, перейти на АЦП меги?

Код: Выделить всё

if(newTime - offTime > PAUSE_CHAR-500) { //Если до конца ПАУЗЫ осталось 0,5 сек
            adc_R1_pause=read2Byte(INA226_BUS_VOLTAGE,INA226_I2C_ADDRESS); //замеряем напряжение перед импульсом
            write2Byte(INA226_CONFIGURATION, 1403, INA226_I2C_ADDRESS); //записали в INA226 измерение в режиме триггера, 16avr 140us 
            PORTB.2=1; //подали импульс 
        }    
if(newTime - offTime > PAUSE_CHAR-499) {
            adc_R2_pause=read2Byte(INA226_BUS_VOLTAGE,INA226_I2C_ADDRESS); //замеряем напряжение в момент импульса
            Iimp=read2Byte(INA226_SHUNT_VOLTAGE,INA226_I2C_ADDRESS); //замеряем ток в имп
            PORTB.2=0; //конец импульса
            write2Byte(INA226_CONFIGURATION, 4497, INA226_I2C_ADDRESS);    //записали в INA226 измерение в режиме неприрывное, 128avr 140us для дальнейшей работы
        }
Реклама
Ответить

Вернуться в «Периферия»