Архів блогу

середа, 13 червня 2018 р.

Типу  вольтамперватметр,

трохи  про HIGH SIDE CURRENT SENSE, або чому не всі мікросхеми однаково корисні.


Уважно!!! Присутні зміни та доповнення, детальніше тут 
Продовженням попередньої теми буде показомір, який через невдалі попередні спроби та власні лінощі в плані налаштувань показів амперметра захотілось винайти велосипед розробити більш простішим. Основною вимогою було спростити коло вимірювання струму та обмежити трудоємність налаштувань зворотніх зв’язків ОП. Натхнення було почерпнуто тут:Вольтметр-амперметр-ваттметр,«ДЖИН»V1.0  алгоритми програми підглянуті тут:  ВОЛЬТ-АМПЕР-ENERGY-МЕТР НА ARDUINO.




Основою є класика жанру - мікроконтролер АТМЕГА8, а в якості підсилювачів сигналу шунтів спеціалізовані мікросхеми  Ina169, Ltc6101.  Для живлення цього господарства взята XL2013 за допомогою якої організовано +5В для живлення та зарядки ЮСБ прибамбасів.
Першою проявила себе XL2013, ну не давала вона на виході настільки очікуваних п’яти вольтів. Шаманство з індуктивністю робочого дроселя L1 трошки пом’якшили ситуація, після чого мультиметр своїм потьмянівшим екраном таки зізнався (совість певно замучила), що він не вірно показував напругу через розряджену батарейку. Виправлення ситуації та спостереження 4,93В на виході не викликали вражень після навантажувальних тестів. Документація каже про максимальне навантаження XL2013 в 3,2А, та вже при навантаженні в 2,5А вихідна напруга просіла нижче 4,5В. Нажаль колайдер до такої ЮСБ зарядки не підключити, а хотілось…
Зустрічав багато негативних відгуків про малопотужні DC/DC перетворювачі типу МС34063 та подібних, через незрозумілу роботу пристроїв в живленні яких  використовуються. Нічого дивного тут взагалі немає, тому що індуктивність розміщена на борту таких перетворювачів є «робочою», а для усунення залишкових пульсацій її роботи потрібно встановити ще одну індуктивність «фільтруючу», при цьому можна скористатись калькулятором фільтра для нижчих частот (чи то вищі були хм…). 
   Надалі постала задача подружити Мегу8 з Ардуіно, підтримка в програмі то є, але кварцу не виявилось в номенклатурі наявного хламу краму.  Колупання в проблемі відсутності кварцу прояснили ситуацію, а саме: для роботи Меги8 напряму з ЮСБ та програмою Ардуіни потрібен bootloader, який можна отримати ввівши параметри тут http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik та прошивши будь яким програматором. Ну і звичайно будь який програматор, включаючи плату АрдуіноНано не впорався із поставленим завданням. Програма Ардуіно довго висловлювала своє невдоволення неприродними діями над нею, а PicKit2 з під AVRDUDESHELL ніби й прошивав та Мега8 не хотіла конектитись з невдоволеною Ардуіно. Рішення прийшло після чисельних маніпуляцій з bootloader –ом, редагувань boards.txt у вигляді простої прошивки фьюзів Меги8 та додавання її конфігурації в той самий boards.txt. В якості програматора вибрано плату Нано з прошивкою розміщеною в прикладах і подальші маніпуляції проводились паровозиком: програма Ардуіно – прошить с помощью программатора (програматор Arduino as ISP) – плата Нано – Атмега8. При чому сама Ардуіно конектиться тільки з другого разу, повідомляючи що порт став ЕГГОГ і треба чекнути кабл конекшени.
От вже й фінальна стадія програма є, плата розведена, залишається лиш змонтувати і радіти «прецизійним» показоміром. Насправді спочатку було встановлено 2 м\с Ltc6101 просто тому,що за певних обставин вони залишились в закутку без подальшого призначення. Радості не було меж коли я їх поставив запустив і… не працює! В процесі колупання своїх мізків, та розглядаючи картинки з документації була встановлена неможливість роботи даних м\с коли на вході нижче 4В, при чому без різниці чи живлення подається від окремих 5В, чи з лінії самого шунта. Головна особливість Ltc6101 полягає в неможливості простого відокремленого живлення за рахунок встроєної кучі діодів в самій м\с, які в свою чергу пропустять потенціал лінії шунта до виводу живлення м\с. Додаткові діоди ніби й вирішують це питання, але показувати шось на екрані воно відмовляло. Додатковий транзистор увімкнений на вихід, як рекомендує  Application Note 105, December 2005 від Linear Technology сторінка 9, також не виправдав очікувань та давав покази барометра з провінції де був виготовлений замість реальних амперів.


А тепер докладніше про те що не сподобалось. По перше лінійність показів залишала бажати кращого, спостерігав перевищення значень в 3 та більше разів від початку діапазону 0,01А, і до кінця в 10,00А. Звісно не лінійність могла бути спричинена не точним значенням опору шунта в розрахунках. В налаштуваннях сподіваючись на чудо м\с брав участь, на початку, лиш коефіцієнт підсилення, який регулювався за допомогою багатообертового резистора, встановленого на місце R4. Друге негативне явище проявилось в нездатності схеми розпізнавати струм від 0,00 до приблизно 0,20А. Чи то АЦП в Меги такий добрий, чи то чутливість  Ltc6101 така хороша, вже й не розбирався. Третє і вважаю найголовніше явище це - неможливість побачити струм навантаження при падінні нижче 4В на ньому для Ltc6101, та й ВЗАГАЛІ неможливість бачити струм короткого замикання HIGH SIDE CURRENT SENSE з подібними мікросхемками!!
Порившись трохи в гуглі, знайшов альтернативу Ltc6101 у вигляді  Ina169 з набагато смачнішими вхідними характеристиками та адекватно розділеними лініями шунта та живлення м\с. Звісно замовив не поглиблюючись в подробиці. Ina169 порадувала з першого включення показавши на рівні з мультиметром правильний струм до від 0,03 до 1А (до 10а не проганяв).
Коло вимірювання струму зарядки +5В вирішив не змінювати і досягти хоч якого прийнятного результату. Так як модуль на XL2013 є джерелом стабільного струму при стабільній напрузі чи інакше CV\CC то на навантаженні у вигляді ЮСБ пристроїв не повинно бути падіння менше 4В, чого відповідно достатньо для Ltc6101. Тут вже, при налаштуванні, пішла в хід вся моя неадекватна фантазія про опір шунта, який підбирався зміною номіналів, коефіцієнти підсилення котрі підбирались як вхідними так і вихідними резисторами м\с. Максимально що вдалось отримати це вимірювання струму від 0,24 до 1,97А з точністю приблизно 10-20мА,  при коефіцієнті підсилення 2, а мав бути 5. Також через ніяк не стабільних 5В живлення контролера опорна напруга була встановлена в 2,56В.
Підключивши всі частини блоку живлення до кучі виявив зміну максимального і мінімального струму встановленого на регуляторі з попередньої теми, максимальний втік з 10А до 7,7А, а мінімальний струм ще був на чверті оберта потенціометра. З чим це пов’язано можна пофантазувати та на швидкість воно не вплинуло ніяк.
Ina169 після старту в повній готовності також не стала показувати правильний струм, але на відміну попередниці адекватно поводила себе з роздільним від вимірювальної лінії живленням та досить великим навантаженням (з падінням нижче 4В на навантаженні). Маніпуляції з коефіцієнтом підсилення особливих результатів не дали, а підбір номіналу шунта дав результат з точністю 0,02А в межі до 1,5А та  близько 0,3А у верхній межі від 7 до 10А. Початкова похибка м\с, (тобто при навантаженні в 0,25А покази відрізнялись від реального струму) Ina169 склала 0,12А на відміну від 0,24 в Ltc6101.  Навантаження коротким замиканням не фіксується ніяк, але при збільшені опору навантаження в декілька разів вище ніж опір шунта, якісь покази будуть але точно не реальних ампер.
Далі детальніше про особливості HIGH SIDE CURRENT SENSE, чи ііншими словами вимірювання струму по плюсу даними мікросхемками. У всіх любительських і не тільки конструкціях зустрічав вимірювання струму тільки по низькій стороні, тобто по мінусу, але маючи в наявності дані м\с, не поглиблюючись у суть питання, вирішив їх використати. Тепер скажу, що приказку про скупого можна розширити, «ледачий робить двічі» і поо замовчуванню вирішив собі, що різниці ніби не має, але варто було лиш задатись цим питанням і легко виясняться всі відмінності.    

На картинці зображено увімкнення м\с  Ltc6101 з даташиту, якщо не брати до уваги характеристики м\с, а придивитись на потенціали всіх точок, картина прояснюється. При к.з. опором R2 можна нехтувати, відповідно вся напруга впаде на R1 і становитиме при Ік.з.=10А, UR1 = 10*0.01=0.1В, чого ніби то достатньо для підсилення і навіть може дати правильний показ в 10В на виході при підсиленні в 100 раз. Та звідки візьмуться ті 10В якщо на плюсу цілих 0,1В, а транзистор відкриваючись «пропускає» на вихід + джерела живлення. З цього випливає риторичне питання що отримаєм на виході? –правильно, балалайку!

У випадку Ina169, вихідний транзистор м\с під’єднаний колектором, увага!- правильно! так само до + лінії вимірювання струму… Хоча й живлення йде окремими 5В і ОП підсилить 100мВ в 10раз та ідеальний транзистор зможе пропустити максимум 0,1В на вихід м\с, які присутні на плюсовому контакті при к.з. і складуть для АЦП контролера 1023/2,56 * 0,1=39,96  значень,  що ніяк не схоже на 1023 значення при 10А, а в моєму випадку зовсім невидимих контролеру…

Шкода що не можна переключити вихідний транзистор на V+.
Слід зауважити на підключення входів самих ОП обох м\с і вони таки відрізняються, в  Ina169 підключення + до +, а – до – (неінвертуючий вхід до більш позитивного потенціалу, інвертуючий до нульового) тобто більш «класичне» включення. Для загального розвитку можна проглянути такий документ http://www.ti.com/lit/an/sboa169a/sboa169a.pdf .


Розглянем «класичну» схему вимірювання струму по мінусу. Тут головні недоліки є з лінійністю, термостабільністю, та корегування коефіцієнту підсилення. Задіявши трохи якісніший підсилювач ніж широко розповсюджені радіолюбительські «елемки» деяких недоліків можна позбутись. Лишаться недоліки самого шунта, зокрема його термостабільність. При короткому замиканні в даній схемі на «плюсовому» вході ОП, утвориться маленький, але чіткий +, бо інший вхід жорстко прив’язаний до землі, а нижче землі потенціалу з однополярним живленням знайти доволі трудоємна задача J. Отож підсилювач буде спокійно виконувати свою роботу по збільшенню вихідного потенціалу за рахунок окремого живлення м\с і ніякі транзистори не будуть заважати разом зі своїми підключеннями. Коефіцієнт підсилення встановлюється подільником R8, R9. З практики використання таких схем та дешевих м\с ОП лінійність підсилення залежить від лінійності падіння напруги на R6, а також від пропорційності опорів R8, R9, R10, так-так в особливо складних випадках крутяться всі три, а коли каскад підсилювачів то … короче процес, думаю, може  нагадувати пошук голки в сіні, чи полювання з голкою на слона (так знайти слона голкою не складно, а от завалити його  швейною голкою, можна тільки уявити яке задоволення…).

 Резюмуючи вищевикладене, хочеться поцікавитись у виробників, для чого? В лінійці Linear Technology чи то вже правильніше Analog Devices (ніби то злились, утворивши непристойність адже Analog Devices зазначений parent –ом для Linear Technology – ага, типу жарт), отож, в їх лінійці спеціалізованих м\с для вимірювання струму більшість таки HIGH SIDE http://www.analog.com/en/parametricsearch/11082. Пошук по закордонним каталогам дає результат в більшості з HIGH SIDE мікросхем. А для чого потрібна та «висока сторона» коли при вимірюванні по мінусу значення напруги в 60 і більше вольт не потрібно, бо вони там і не з’являться… Є повно інструментальних підсилювачів, як із «заводськими» коефіцієнтами підсилення так із зовнішнім вибором, може їх потрібно використовувати для подібних задач тільки по мінусу? Але ж вони не позиціонуються, як курент ампліфаер.
Залишається надія спростити собі задачу вимірювання струму після появи в наших краях чогось типу INA180, який позбавлений хитроувімкнених вихідних транзисторів, діодів і підходить для "класичного" вимірювання ( та й для плюсового також ) тіки з меншим коханням завдяки «встроєному» коефіцієнту підсилення. Чому ж подібних м\с не більшість, щоб поставити і гратись лиш з опором шунта та з математикою програми підрахунку, а натомість потрібно «крутити всі ручки одночасно» виловлюючи прийнятний результат.
Так то потрібно використовувати все ж не власний «велосипед», а перевірений поколіннями, тобто класичну, мінусову схему і не марнувати час на не потрібні досліди. Все одно «плаваючий» плюсовий потенціал на обох входах ОП з HIGH SIDE вимірюванням не є гут, на відміну від «жорсткої» землі класичного вимірювання.
Такі підсилювачі, HIGH SIDE, можливо знаходять своє використання в схемах з джерелами живлення CV\CC (constant current, constant voltage), а також в схемах де контроль к.з. просто не потрібен, бо ним займається сам блок живлення і вимикає навантаження при козі. Можливо ще в імпульсних перетворювачах, як на картинках в документації, але тоді лишається питання як воно фіксує імпульс струму первинної обмотки перетворювача, коли там по суті короткочасне Коротке Замикання?, мабуть опір ключа + опір котушки створюють сприятливі умови?.  Наприклад при проектуванні  зарядного пристрою літієвих акумуляторів, я би не використав такий спосіб контролю, от наприклад джерело за певних умов не обмежить струм, якщо така функція в нього закладена, а літій жере стільки, скільки зможе витягнути з зарядного, от вже і аварійна ситуація, якщо в акумі є термозахост то процес перерветься, але не факт, що поки банка літія нагріється саме зарядне не запалає, а контролер який буде спостерігати за даною історією побачить підвищення струму до максимального, а потім 0 (при надмірному споживанні) і подумає, що заряд припинився та й покаже зеленою лампочкою - все ок! поряд з палаючим зарядним та літієвим салютом ... Хоча це й перебільшення та думаю зрозуміле і нехай такого не стається, адже інженери то є грамотні люди, не те що деякі ненормальні котрі даташити читають лиш по картинках (ну що зробиш, дитяча звичка…) та вигадують велосипеди.
По пристрою, саме пристрою, приладом тут і не пахне… Реалізовано два вольтметри, два амперметри, ватметр та вихід ШІМ сигналу.


Перший основний вольтметр від 0 до 55В. Точність один в один з мультиметром до 25В вище починає трохи завищувати показники, та точність «верхнього» діапазону вже не цікавить.
Основний амперметр з діапазоном 0,00 (0,12) – 10,00 А, кроком вимірювання 0,01А та точністю вказаною вище, тобто відхилення приблизно 0,3А при 10А реальних.
Додатковий амперметр для спостереження за споживанням по +5В зарядного ЮСБ до 1,97А.
 Додатковий вольтметр просто для «нехай буде» він буде показувати вихідну напругу додаткового DC-DC модуля CV\CC на XL4015. Іноді не вистачає й такого, основний регулятор то працює, або в режимі стабілізації струму, або напруги, а модуль буде виставлено скажем на 12В і 2А які він і підтримає на низькоомних навантаженнях, хоча при к.з напруга трохи просяде, ото щастить і тут колайдер в прольоті…
При натисканні кнопки номер Раз, дисплей покаже відсотки шпаруватості (згодилось таки то слово) ШИМ сигналу, замість струму ЮСБ. Контролер в цей момент запустить ШИМ і почне збільшувати відсоток заповнення до повторного натискання кнопки номер Раз, таким чином обереться, саме так - відсоток шпаруватості! Коли ж натиснути Кнопку Два, ШІМ зупиниться, дисплей покаже струм ЮСБ.
ШІМ сигнал виходить частотою стандартною для Ардуіни, (просто не дійшло, як її змінити у випадку Меги8) але може бути використаний для тесту драйверів безколекторних двигунів типу, як в літачках радіокерованих. Можна почепити світлодіод і милуватись «бігаючими вогниками» з одного світлодіоду (так, важке дитинство було). Для захисту від випадковостей порт контролера відокремлено оптроном.
Кнопка Три служить для показу ватів замість амперів основного амперметра.
Решта конструкції… Спочатку було виявлено імпульсний викид при навантаженні XL2013, більше 1А який гасив Мегу8, в результаті бодун був виставлений в 2,56В замість попередніх 4В та почіплений діод на вихід ЮСБ зарядки. Додатково на живлення Меги поставлений стабілітрон 5,1В в навантаження якого нічого кращого не придумав за індуктивність номіналу «перша потрапивши до рук», бо резистор сильно садив і без того поганеньких 5В.  Тест драйв система захисту пройшла на відмінно, зберігши Мегу8 коли на вихід ЮСБ зарядки потрапило 15В, тільки XL2013 разом з героїчним стабілітроном була відправлена в колекцію постраждавших від моїх рук деталей.
Для вимірювання струму використано доступні «шунти» у вигляді спаралелених, типу для зменшення неточності кожного, низькоомних резисторів в основному амперметрі, та звичайного резистора для амперметра ЮСБ. Краще було б використати точний дротяний шунт, та де їх набрати, а про вимірювання точності опору то і взагалі промовчу.  
Щодо мінімальних значень струму, то швидше всього винен АЦП та мої криві мізки, підозрюю, що для адекватних значень потрібно 0 амперметра змістити на 50 поділок АЦП в плюс, підвищивши при цьому коефіцієнт підсилення ОП та зменшивши діапазон вимірюваного струму, а для діапазону 0-10А з дискретністю в 0,01А десятибітному АЦП то є таки проблематично. 
Ну такеє - кривеньке, страшненьке, за те своє, рідне, най буде!
ПиСи:
прохання не сприймати вищевикладене за авторитетну думку, точні лабораторні вимірювання та приклад грамотності.

Немає коментарів:

Дописати коментар