Skocz do zawartości

Zastosowanie ZXCT1009


Marek777

Pomocna odpowiedź

Witam,

Chcę w robocie sprawdzać wartość prądu pobieranego przez całość.

Mam więc trochę pytań odnośnie ZXCT1009:

1. Czy dobrze obliczyłem Rout=30k jeśli chcę mierzyć przez STM32 wartość do 1A (bocznik=0,1)?

2. Jak doprowadzić sygnał z ZXCT1009 do STM32 jeśli odległość ma 20cm, ale w niewielkiej odległości są też serwa (co z zakłóceniami)?

Pozdrawiam.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie obchodzi nas jakiego procesora będziesz używał tylko jakiego napięcia oczekujesz przy prądzie Imax. Scalak ma transkonduktancję (przekładnię U→I) 10mA/V więc dla rezystora pomiarowego 100mΩ i prądu 1A dostaniesz prąd wyjściowy 1mA a na oporniku 30k odbierzesz 3.0V.

Te 3V będą odniesione do miejsca w którym zaczepisz do masy opornik wyjściowy. To bardzo wygodne, bo wystarczy ustawić rezystor pomiarowy (i scalak blisko niego) gdzieś w wygodnym miejscu przepływu dużego prądu a mały prąd wyjściowy pociągnąć przewodem do opornika postawionego na masie odniesienia ADC, gdzieś bezpośrednio przy procesorze. Sygnał prądowy jest fajny, bo możesz go przenieść długim kabelkiem bez straty. W ten sposób możesz pomierzyć prądy w wielu odległych miejscach i nie martwić się masami. Ważne, by oporniki wyjściowe (te przykładowe 30k) stały na cichej masie analogowej przetwornika tuż przy pinach ADC.

Pamiętaj, że prądy w układach zasilania silników, robotów itp są bardzo odkształcone i żeby mierzyć sensowne wielkości powinieneś zrobić filtrowanie tak po stronie analogowej jak i w programie - cyfrowe.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzięki za odpowiedzi. A dokładniej 3,01k, bo powyżej 1% raczej nie warto wstawiać 🙂

Czy duży będzie upływ prądu z akumulatora przez ten układ z rezystorem 3k?

PS: Zamówiłem na Aliex... rezystory 0,1om 1%, ciekawe jakie będą mieć parametry 😉

Link do komentarza
Share on other sites

Upływ będzie dokładnie taki, jaki prąd płynie do masy przez rezystor 3k. Przecież nie ma innej drogi... Natomiast stracisz też trochę mocy na rezystorze pomiarowym.

Raczej nie ma sensu wstawiać rezystorów nawet i 1%, przecież i tak nie masz superprecyzjnej referencji w ADC ani nie zrobisz idealnego połączenia na oporniku 0.1Ω. Kalibracja cyfrowa i tak zwykle jest konieczna, a dla jednej sztuki to współczynnik możesz wyznaczyć dowolnie dokładnie, oczywiście w ramach posiadanych przyrządów pomiarowych. Odróżniaj dokładność od stabilności, bo kalibracja przy 1A i 25°C to jedno a stabilność w czasie i temperaturze to drugie. Poza tym to robot a nie multimetr.

Jakie masz Vref w ADC (napięcie, początkowa dokładność, stabilność)?

Link do komentarza
Share on other sites

Na pokładzie masz procesor, napędy i serwa, chcesz mierzyć 1A a głupi 1mA jest wtedy nieodżałowaną stratą?

Bierzesz referencję ADC z nieznanego stabilizatora zasilania 3.3V (które będzie pływało przy jakiejkolwiek zmianie prądu choćby procesora czy zapaleniu kilku LEDów) a zastanawiasz się nad rezystorami 1%?

Dziwne to wszystko.

Link do komentarza
Share on other sites

Nic w tym nie ma dziwnego, najpierw zobacz jak STM32 wykorzystuje Vref wewnętrzne do stabilizacji Vref od zasilania, to nie jest AVR.

Pomiar 1A to max rzadko występujące, najczęściej system pobiera ok. 20mA i mniej.

W nocie do ZXCT1009 jest podany 4μA quiescent current. Nie znam budowy tego układu, ale myślałem że prąd z zasilania nie płynie bezpośrednio przez Rout.

Link do komentarza
Share on other sites

No ale ja nie pytałem o to skąd zasilasz źródło referencyjne ADC tylko jakie ono jest. Nie wiem jak Ty sobie skonfigurujesz procesor i przetwornik - a możesz na wiele sposobów i w zależności od tego Vref może być bardzo różne. Interesuje mnie to co widzi ADC a nie to , że masz zasilanie 3.3V i coś tam ustawialnego w procesorze, bo właśnie od tych ustawień zależy stabilność pracy przetwornika. Więc albo pisz szczegółowo albo "jeszcze nie wiem" - to też jakaś odpowiedź. Tak, STMy mają rozbudowane konfiguracje generacji i podłączania Vref do ADC, ale w zależności od rodziny jest to różnie a ja nadal nie wiem co tam poustawiasz a nawet którego STMa używasz.

Popatrz, ten scalak ma tylko jedną nóżkę "w dół" do masy. Tamtędy płynie wszystko co on pobiera z zasilania a dokładniej dwa prądy: pierwszy - zasilający i drugi - pomiarowy. Ty widzisz ich wypływającą sumę i to ona na oporniku do masy odkłada napięcie wyjściowe. Dzięki odpowiedniej konstrukcji wewnętrznej układ kontroluje prąd wypływający do masy tak, by był on proporcjonalny do napięcia Vsense odłożonego na oporniku pomiarowym w szynie zasilania. Z samej zasady działania wynika jednak, że przecież nie będzie to spełnione dla Vsense zbliżających się do zera, bo przecież scalak dla samego siebie musi jakiś prąd zużywać. I to jest właśnie te 1..15uA które musisz przyjąć jako offset swojego pomiaru. Acha, nie ograniczaj się do czytania tylko pierwszej strony - tam są zwykle tylko hasła reklamowe, nieobowiązujące wszystkie jednocześnie. Ponieważ datasheet nie podaje jednej liczby tylko powyższy zakres (tabelka "Electrical Characteristics)"), to nie wiadomo jak ten prąd się zachowuje - czy jest zawsze taki sam (to przypadek optymistyczny), czy jakoś się zmienia: rośnie, maleje? Nie wiadomo. I dlatego musisz założyć, że to jest dodatkowa nieokreśloność prądu wyjściowego. Co więcej, w tak tanim i prostym scalaku błędów jest znacznie więcej a wszystkie one sumują się do wykresu "Error v Sense Voltage". Tam widzisz, że w zasadzie poniżej Vsense < 10mV błąd rośnie dramatycznie (>5%) a tak naprawdę krzywa zagina się już od 100mV. Wygląda na to, że układ jest kalibrowany w procesie produkcji przy Vsense=200mV (znów tabelka) a zakres 100..1000mV jest jego ulubionym. Tym różnią się scalaki pomiarowe za 30zł od takich za 3zł. Te pierwsze mają błędy umożliwiające pracę przy pojedynczych mV spadków a te gorsze - cóż, sam widzisz. Z powodu tak dużych błędów przy małych Vsense, układ w zasadzie powinien być projektowany tak, by dla Imax spadek wejściowy był raczej bliski 1V. U Ciebie to przekłada się na 1Ω i 1W strat mocy przy 1A. Poza tym nawet przy tak dużym Rsense dokładne pomiary poniżej ok. 20mA (czyli Vsense<20mV) będą niemożliwe. Cóż, taniość kosztuje..

EDIT:

"myślałem że prąd z zasilania nie płynie bezpośrednio przez Rout"

A widzisz jakąś inną drogę przy 3 pinach obudowy SOT23? Przecież schemat aplikacyjny na pierwszej stronie datasheet nie pozostawia wątpliwości.

https://www.diodes.com/assets/Datasheets/ZXCT1009.pdf

Link do komentarza
Share on other sites

"myślałem że prąd z zasilania nie płynie bezpośrednio przez Rout"

A widzisz jakąś inną drogę przy 3 pinach obudowy SOT23? Przecież schemat aplikacyjny na pierwszej stronie datasheet nie pozostawia wątpliwości.

Tak, ale zakładałem że oprócz Rout po drodze są inne elementy w tym układzie które ograniczą straty energii.

To jednak słabo z tym układem jeśli chce się mieć długotrwałe zasilanie z akumulatora z jednoczesną informacją o zużyciu prądu...

Jeśli system przejdzie w tryb uśpienia to całkowite zużycie mam na poziomie 40uA (oczywiście bez ZXCT1009)

PS: W moim STM32F103 do obliczeń biorę Vcc, Vref i Vadc.

Link do komentarza
Share on other sites

Ale przecież Rout niczego nie ogranicza. Czy dasz tam 10k, 1k czy zewrzesz wyjście scalaka do masy prąd płynie taki sam - tak działa źródło prądowe sterowane napięciem Vsense. "Straty" będą więc zawsze w tym układzie (przy danym Vsense) takie same.

Wydaje mi się, że od początku coś źle myślisz. Popatrz, chcąc mierzyć nawet te 40uA i zachowując pełną skalę na 1A masz już 25000 poziomów kwantyzacji (15 bitów) a gdybyś chciał mieć LSB przetwornika na poziomie 1uA (żeby sensownie zmierzyć ilościowo te 40) to potrzebujesz miliona kwantów czyli 20-bitowego ADC. Do tego dochodzi precyzja całości na poziomie 1ppm co jest nieosiągalne w układach amatorskich. Mając ograniczone precyzje pomiarów do np. 10 bitów - naprawdę trudno zrobić lepiej nawet dysponując 12-bitowymi ADC - musisz się zdecydować, które zakresy chcesz mierzyć bo jednym tego nie ogarniesz.

Po co chcesz mierzyć tak małe prądy, skoro one praktycznie nie wliczają się do budżetu? Skoro urządzenie podczas pracy może pobierać kilkaset(?) mA to nawet jeśli przeleży tydzień wyłączone pobrana w tym czasie energia będzie znikomym ułamkiem tego co zużyje podczas półgodzinnej pracy.

Do nadzoru zasobów energii służą układy klasy fuel-gauge. Pomiar prądu jest tam kluczowy, ale oprócz tego umieją go samodzielnie całkować i udostępniają rejestry prądu, napięcia i np. licznik zużytych lub władowanych mAh. Spotkałem się z tym, że właśnie z powodów błędów pomiarowych scalak ma próg, poniżej którego w ogóle przestaje dodawać prąd zmierzony przez ADC i zakłada, że system przeszedł w stand-by. Po obudzeniu procesora możesz z czasu uśpienia i znanego prądu upływu dodać poprawkę do rejestru dysponowalnych mAh.

http://www.ti.com/power-management/battery-management/fuel-gauge/products.html

https://www.maximintegrated.com/en/products/power/battery-management/battery-fuel-gauges.html

Przejrzyj kilka przykładów,może coś Cię natchnie. Jeżeli upierasz się przy rozwiązaniu własnym, miej na uwadze ograniczenia o których pisałem wyżej i planuj rozsądnie.

Zakładając, że nawet ten 1Ω szeregowo i 1W strat przy 1A jest dopuszczalny, mierząc prądy na poziomie uA dostajesz napięcia na poziomie uV. Żeby takie sygnały przetwarzać bez jakichś gigantycznych błędów potrzebujesz wzmacniaczy pomiarowych wysokiej klasy i przemyślenia nawet sposobu rozmieszczenia oporników wokół idealnie wymytego do czysta PCB na dobrym laminacie. Przecież różnica temperatur na poziomie kilku stopni na styku dwóch metali (miedź-cyna lub cyna-stalowa nóżka scalaka) generuje od kilku do kilkudziesięciu uV napięcia termoelektrycznego. To nie są proste sprawy.

EDIT: "W moim STM32F103 do obliczeń biorę Vcc, Vref i Vadc"

Zaraz, przecież pomiar ADC polega na porównaniu napięcia wejściowego z Vref przetwornika. Tylko tyle. Pytanie było proste: czego używasz jako Vref? Jeżeli przyjąłeś pełną skalę ADC = 3.3V to raczej odniesienia nie bierzesz z wewnętrznego, stabilnego źródła napięcia referencyjnego (bo one są niższe niż zasilanie) tylko po prostu z Vcc procesora a to najgorsza możliwa referencja pomiarów.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.