roboforum.ru

Технический форум по робототехнике.


INA219

INA219

Сообщение Holmes » 04 июн 2016, 13:51

Есть проблемы при чтении напряжения шины с сабжа. Брал на ebay такой же модуль как у Адафрута. Может кто сталкивался?
Использую адафрутовскую библиотеку в дуине, там по-умолчанию калибровка на 32В и 2А, но модуль не возвращает больше 16В. При этом если реальное напряжение меньше 16В, то он возвращает величину меньшую приблизительно на 160мВ, т.е. врёт стабильно вниз на 1%.
Я перечитывал на сторонних ресурсах формулы калибровочных регистров, но ничего полезного не придумал.

<telepathmode>Призываю в эту тему linvinus'а =)</telepathmode>
Аватара пользователя
Holmes
 
Сообщения: 229
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Pascal, С, C#, Java
ФИО: Роман

Re: INA219

Сообщение linvinus » 04 июн 2016, 19:07

Что сразу линвинус :) , как поговаривал ваш герой, отбросьте всё невозможное и самый простой ответ будет правильным.
судя по всему у вас включён режим 16в (13 бит в регистре конфигурации)

8.6.2.1 Configuration Register (address = 00h) [reset = 399Fh]
BRNG: Bus Voltage Range
Bit 13 0 = 16V FSR
1 = 32V FSR (default value)

а то что врёт это не страшно, просто значение регистра помножте на поправочный коэффициент и будет точно.
с обычным резистивным делителем напряжения и АЦП вы бы делали тоже самое.

например у меня в STM32 вот так,

//adc 12-разрядный 2^12=4096-1
#define BLDC_ADC_maxAdcBits 4095.0f // Using Float for clarity

//максимальное напряжение которое принимает ADC 3.3в
#define BLDC_ADC_maxVolts 3.3f // Using Float for clarity

//напряжение на один разряд
#define BLDC_ADC_voltsPerBit (BLDC_ADC_maxVolts / BLDC_ADC_maxAdcBits)

//поправочный коэффициент, 13.24 - реальное напряжение, 2298 реальное значение которое выдаёт ADC при этом напряжении
//BATT_DIV = 13.24/((3.3/4095)*2298)
#define BATT_DIV 7.14954f

Vbatt = adc1_sample * BLDC_ADC_voltsPerBit * BATT_DIV;

Добавлено спустя 1 час 21 минуту 19 секунд:
посмотрел код библиотеки, конечно ошибиться там очень сложно
думаю значение 00 регистра прояснило было ситуацию
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1600
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: INA219

Сообщение Holmes » 05 июн 2016, 17:29

Все проверил, 0 регистр = 7199, т.е. 0001 1100 0001 1111. 13-й бит не стоит не ясно почему.
Может INA глючная сама ... потестирую.

Добавлено спустя 3 часа 8 минут 51 секунду:
Что-то вообще странное. Пишу в регистр 0 значение 15391, тут же читаю, а там 12037. Потом тут же читаю напряжение шины и снова читаю регистр 0, там уже 7199.
Хрень какая-то.
Аватара пользователя
Holmes
 
Сообщения: 229
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Pascal, С, C#, Java
ФИО: Роман

Re: INA219

Сообщение linvinus » 05 июн 2016, 18:30

15й бит при записи значения в 00 регистр не ставите случайно?
это ресет, ну и питание на ножке Vs нужно проверить, чтобы не скакало между делом
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1600
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: INA219

Сообщение Holmes » 06 июн 2016, 01:26

15-й бит не пишу, я про него читал.
А вот проверить питание не могу, нету осцилла. Хотя оно вроде не должно скакать, ina питается от ORduino Nano, которая в свою очередь подключена к малине по usb. Малина питается от dc-dc на 2 ампера.
Если бы проседало питание, то ресетилась бы и дуина, а этого не происходит.

Добавлено спустя 9 минут 54 секунды:
Сама она подключена в разрыв цепи между PCM аккума и UPS.
Аватара пользователя
Holmes
 
Сообщения: 229
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Pascal, С, C#, Java
ФИО: Роман

Re: INA219

Сообщение linvinus » 06 июн 2016, 02:02

я имел ввиду элементарный плохой контакт :) ,нужно просто внимательно проверить линию и убедиться что от вибрации контакт не пропадает
может тока с выхода дуины не хватает? линия сколько 5в или 3.3?
т.е. если проблем с питанием нет, и не трогать 00 регистр (не писать в него), то всё должно заработать сразу без лишних телодвижений
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1600
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: INA219

Сообщение Holmes » 06 июн 2016, 13:38

linvinus писал(а):я имел ввиду элементарный плохой контакт :) ,нужно просто внимательно проверить линию и убедиться что от вибрации контакт не пропадает

точно нет. робот стоит на месте, ничто не трясётся, контакт проверял.
linvinus писал(а):может тока с выхода дуины не хватает? линия сколько 5в или 3.3?

линия 5В. я даже проверил, она напрямую идёт с USB, т.е. сопротивление по линии Vcc от usb до пина = 0.
linvinus писал(а):т.е. если проблем с питанием нет, и не трогать 00 регистр (не писать в него), то всё должно заработать сразу без лишних телодвижений

вот я так и думал.
Да даже если бы она и сбрасывалась, то по идее она по даташиту в режим 32В должна входить, а тут 16.
Может китайцы какую микру паленую подсунули, или просто другую ... помнится dihalt у себя в блоге рассказывал как попадал на палёные SoC'и которые работают как надо, но в какой-то особой ситуации ведут себя не по даташиту, причём не все, а примерно пол купленной партии.
Аватара пользователя
Holmes
 
Сообщения: 229
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Pascal, С, C#, Java
ФИО: Роман

Re: INA219

Сообщение linvinus » 06 июн 2016, 13:53

а что на ней написано?
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1600
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: INA219

Сообщение Holmes » 08 июн 2016, 01:00

Написано 219, но перед цифрами возможно есть какой-то символ, не уверен, на грани глюка.
Аватара пользователя
Holmes
 
Сообщения: 229
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Pascal, С, C#, Java
ФИО: Роман

Re: INA219

Сообщение linvinus » 08 июн 2016, 12:54

ну вроде гугл знает только про чипы типов А и B но оба поддерживают 26в
кстати питание вроде 3.3в а вы говорили про 5в, у вас отдельные чипы или готовые модули с понижающим стабилизатором?
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1600
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: INA219

Сообщение Holmes » 08 июн 2016, 13:28

Выдержка из даташита: The device uses a single +3V to +5.5V supply.
У меня 5.
Аватара пользователя
Holmes
 
Сообщения: 229
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Pascal, С, C#, Java
ФИО: Роман

Re: INA219

Сообщение linvinus » 08 июн 2016, 15:07

ну я даже не знаю, попробуйте постоянно читать 00 регистр, чтобы посмотреть как он меняется
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1600
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: INA219

Сообщение Holmes » 08 июн 2016, 15:29

Читал, постоянно 0x1C1F (7199).
Видимо закажу еще одну ina, но в другом месте.
Аватара пользователя
Holmes
 
Сообщения: 229
Зарегистрирован: 08 окт 2010, 14:22
Откуда: Москва
прог. языки: Pascal, С, C#, Java
ФИО: Роман


Вернуться в Сенсорика

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Mail.ru counter