Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 20.03.2021, 08:48  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Библиотека INA226 или как с ней работать

Удалось решить проблему, спасибо ForcePoint,
Код:
int16_t read2Byte(uint8_t addr, uint8_t deviceAddr){       //  чтение 2 байта по адресу I2C
int16_t data; //16-bit 
uint8_t MSB, LSB; //8-bit                   
i2c_start();                    //Кидаем команду "Cтарт" на шину I2C
i2c_write(deviceAddr‹‹1);       //Кидаем на шину адрес INA226
i2c_write(addr);                //Киадем какой регистр хотим читать
i2c_stop();                        
delay_us(10);
i2c_start(); 
i2c_write((deviceAddr‹‹1)+1);   //Обращаемся к INA226 в режиме чтения
MSB=i2c_read(1);                //читаем старший байт
LSB=i2c_read(0);                //читаем младший байт
i2c_stop();                     //Посылаем команду "Cтоп"
data=MSB;
data = (data ‹‹ 8)+LSB;         //Склеиваем data= data ‹‹ 8/LSB; или daat= word(MSB, LSB); 
return data;                    //Возвращаем значение прочитанного
}
Реклама:
neid_nnov вне форума  
Непрочитано 07.05.2021, 10:07  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Библиотека INA226 или как с ней работать

Всем привет! Продолжаю упражняться на инке, затея измерить сопротивление импульсное Rimp в АКБ автомобильном. Есть для этого метода предложенная на одном из форумов, Rimp = (Uimp-Uакб)/Iimp, где Uакб - напряжение до импульса, Uimp - напряжение в момент импульса, и Iimp - ток в момент импульса. Импульс длительностью 1 миллисекунды. Измеряется все это дело при помощи INA226 c шунтом на 20А /75мВ. Связь с INA226 по I2C частота 100kHz.
Вопрос в том что моем коде опрос INA226, увеличивает время импульса до 40мс по ослику. Убираем работу с INA226 четко работа 1мс. Как быть, отказаться от такой затеи с INA226, перейти на АЦП меги?
Код:
if(newTime - offTime › PAUSE-500) { //Если до конца ПАУЗЫ осталось 0,5 сек
            adc_R1_pause=read2Byte(INA226_BUS_VOLTAGE,INA226_I  2C_ADDRESS); //замеряем напряжение перед импульсом
            write2Byte(INA226_CONFIGURATION, 1403, INA226_I2C_ADDRESS); //записали в INA226 измерение в режиме триггера, 16avr 140us 
            PORTB.2=1; //подали импульс 
        }    
if(newTime - offTime › PAUSE-499) {
            adc_R2_pause=read2Byte(INA226_BUS_VOLTAGE,INA226_I  2C_ADDRESS); //замеряем напряжение в момент импульса
            Iimp=read2Byte(INA226_SHUNT_VOLTAGE,INA226_I2C_ADD  RESS); //замеряем ток в имп
            PORTB.2=0; //конец импульса
            write2Byte(INA226_CONFIGURATION, 4497, INA226_I2C_ADDRESS);    //записали в INA226 измерение в режиме неприрывное, 128avr 140us для дальнейшей работы
        }
neid_nnov вне форума  
Непрочитано 10.05.2021, 20:11  
-Alan-
Прописка
 
Аватар для -Alan-
 
Регистрация: 05.12.2008
Адрес: Россия, Омск
Сообщений: 145
Сказал спасибо: 39
Сказали Спасибо 29 раз(а) в 22 сообщении(ях)
-Alan- на пути к лучшему
По умолчанию Re: Библиотека INA226 или как с ней работать

АЦП Меги - 10 битный. Вы уверены, что хватит точности?
Может лучше изменить параметры инициализации I2C или скорость обмена? Насколько вижу из даташита - чип похож на INA3221. Рабочие характеристики примерно похожи. Регистры так же 16-ти битные.
Измерить на нём импульс в 1мс проблематично, даже если использовать наиболее быстрый режим без усреднений.
Но попробуйте сделать чуть-чуть иначе.
1. Настройка чипа перед импульсом:
- Остановить измерения;
- Усреднение: 4;
- Время преобразования напряжения: 140мкс;
- Режим измерения: Напряжение линии, триггер; Только напряжение!
2. После этого включаете нагрузку.
3. Сразу после этого ЕЩЁ раз записываете режим измерения: Триггер. То же самое значение!
4. Через 1мс снимаете нагрузку и читаете данные. Можно поиграть с таймингами. В зависимости от кода задержка может не потребоваться.
-Alan- вне форума  
Непрочитано 10.05.2021, 23:45  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Библиотека INA226 или как с ней работать

Сообщение от -Alan- Посмотреть сообщение
Но попробуйте сделать чуть-чуть иначе.
1. Настройка чипа перед импульсом:
- Остановить измерения;
- Усреднение: 4;
- Время преобразования напряжения: 140мкс;
- Режим измерения: Напряжение линии, триггер; Только напряжение!
2. После этого включаете нагрузку.
3. Сразу после этого ЕЩЁ раз записываете режим измерения: Триггер. То же самое значение!
4. Через 1мс снимаете нагрузку и читаете данные. Можно поиграть с таймингами. В зависимости от кода задержка может не потребоваться.
Добрый вечер!
1. только напряжение, т.е. читаю данные линии напряжения VBUS?
3. Значение чего - конфигурации(режима измерения, время преобразования и усреднение)?
4.Вот тут интересное предложение, в коде своем - вы увидели делаю наоборот, подаю импульс, и читаю данные напряжения и тока, потом выключаю импульс. А т.к. у нас режим триггера, то с начало подаю импульс и снимаю его, а потом читаю значения... попробую!Спасибо!

Последние пару дней пробовал изменять время преобразования, и усреднения, и есть какой то толк, но точность не особо на правду похожа, полюс/минус автобусная остановка.
neid_nnov вне форума  
Непрочитано 14.05.2021, 08:22  
-Alan-
Прописка
 
Аватар для -Alan-
 
Регистрация: 05.12.2008
Адрес: Россия, Омск
Сообщений: 145
Сказал спасибо: 39
Сказали Спасибо 29 раз(а) в 22 сообщении(ях)
-Alan- на пути к лучшему
По умолчанию Re: Библиотека INA226 или как с ней работать

По пункту №3.
В даташине (страница 11) чёрным по английски описано, что запуск по триггеру осуществляется записью в регистр конфигурации (0x00) значения (пусть даже совпадающего), где указан режим запуска "Триггер".
В частности, у Вас должно быть примерно следующее:
0x00 -› 0x4202, если я правильно расставил биты.
RST = 0 - НЕ сброс
D14-D12 = 100 - Резерв
AVG = 001 - Усреднение х4
VBUSCT = 000 - Измерение напряжения 140мкс
VSHCT = 000 - Измерение тока 140мкс
MODE = 010 - Режим - триггер, только напряжение линии.

Записываете это значение (до измерения), выжидаете 1мс, начинаете запись слова в регистр и сразу же после этого (либо в момент начала записи) - включаете нагрузку.
Далее либо по готовности, либо через 1мс - снимаете нагрузку и читаете данные.

Кстати, рекомендую отсчитывать время таймерами. Это надёжнее.
По AVR сейчас не вспомню, но 16-ти битного таймера должно хватить для отсчёта интервала в 8мс с неплохой точностью. Для получения интервала в 1мс должно хватить за глаза.
-Alan- вне форума  
Сказали "Спасибо" -Alan-
neid_nnov (14.05.2021)
Непрочитано 14.05.2021, 23:51  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Библиотека INA226 или как с ней работать

Сообщение от -Alan- Посмотреть сообщение
В частности, у Вас должно быть примерно следующее:
0x00 -› 0x4202, если я правильно расставил биты.
RST = 0 - НЕ сброс
D14-D12 = 100 - Резерв
AVG = 001 - Усреднение х4
VBUSCT = 000 - Измерение напряжения 140мкс
VSHCT = 000 - Измерение тока 140мкс
MODE = 010 - Режим - триггер, только напряжение линии.
Так и есть с этим и работаю.

Сообщение от -Alan- Посмотреть сообщение
Записываете это значение (до измерения), выжидаете 1мс, начинаете запись слова в регистр и сразу же после этого (либо в момент начала записи) - включаете нагрузку.
Далее либо по готовности, либо через 1мс - снимаете нагрузку и читаете данные.
почему 1 мс? у меня конечно убогий лог.анализатор(заказал на али новый)

Сообщение от -Alan- Посмотреть сообщение
Кстати, рекомендую отсчитывать время таймерами. Это надёжнее.
По AVR сейчас не вспомню, но 16-ти битного таймера должно хватить для отсчёта интервала в 8мс с неплохой точностью. Для получения интервала в 1мс должно хватить за глаза.
16-бит и делаю, настроил на 1мс... код который ранее выкладывал это кусок, под конец паузы за 500мс перед зарядом как раз начинаю замеры и вычисления...
Спасибо вам за уделенное время!
neid_nnov вне форума  
Непрочитано 20.05.2021, 15:44  
-Alan-
Прописка
 
Аватар для -Alan-
 
Регистрация: 05.12.2008
Адрес: Россия, Омск
Сообщений: 145
Сказал спасибо: 39
Сказали Спасибо 29 раз(а) в 22 сообщении(ях)
-Alan- на пути к лучшему
По умолчанию Re: Библиотека INA226 или как с ней работать

Не за что =)
Про 1мс до начала измерения - скорее для того, чтобы режим триггера сработал. Предполагаю, что он будет срабатывать при каждой записи. А первый раз - чтобы гарантированно запустить ДО включения нагрузки, и чтобы АЦП успел измерить напряжение, а затем ПОСЛЕ того, как будет подключена нагрузка - начать измерение.

Если предварительно выставлен режим триггера - то записывать дважды не нужно.
А вообще для такого случая я бы описал отдельную функцию, которая ещё в момент записи последнего байта настройки включает подтяжку для аккумулятора. Где-то подобные "хаки" я реализовывал.
Плюс, в этом случае можно поиграть с задержками между передачей байта и включением подтяжки, чтобы начало преобразования АЦП попало как раз на нужный участок, где напряжение уже ниже, но ещё не требует затягивания момента отпускания.
-Alan- вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЦАП -должно работать совместно с компьютером! san384 Цифровые сигнальные процессоры 13 23.05.2011 22:53
AVReAl -Как с ней работать yostaf Микроконтроллеры, АЦП, память и т.д 23 09.02.2011 20:26
Техногенная катастрофа и что с ней теперь делать VOVOKA Отвлекитесь, эмбеддеры! 122 05.01.2011 19:23
USB HID девайс на 18F13K50 не хочет работать. DK Микроконтроллеры, АЦП, память и т.д 17 26.02.2010 18:31
[Решено] В какой обстановке Вам наиболее комфортно работать? Don_Ambrosio Отвлекитесь, эмбеддеры! 66 27.05.2008 14:02


Часовой пояс GMT +4, время: 19:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot