Skocz do zawartości

Zastosowanie ZXCT1009


Pomocna odpowiedź

Ale ja nie chcę mierzyć uA 🙂 Tak jak napisałem wcześniej, chcę mierzyć mA do max 1A, więc zasięg nie będzie duży. Na precyzji pomiarów mi nie zależy.

Jak mówiłem problemem będzie zużycie prądu przez ZXCT1009, szczególnie w czasie uśpienia systemu.

Widzę, że uparłeś się aby nie poczytać o Vref w STM32F103 😉 Tutaj masz dostęp do wewnętrznego Vref tylko przez odczyt ADC i dopiero obliczenia dają korekcję wartości mierzonego sygnału. Taki dziwoląg 🙂

Link to post
Share on other sites

Oj ciężko idzie, ale przynajmniej wiemy która rodzina STM32.

Zrozum: ADC zawsze robi konwersję z użyciem napięcia referencyjnego, bo na tym polega jego działanie. To od Ciebie zależy czego jako odniesienia użyjesz. Nie obchodziła mnie jego wartość bezwzględna tylko sposób jego generacji, od tego zależy stabilność i precyzja pomiarów.

Ok, już zrozumiałem, że niewiele oczekujesz i pewnie cokolwiek zrobisz będzie dobrze, ale czasem warto w coś wniknąć, żeby kiedyś nie być zaskoczonym.

Sposób który podałeś jest chyba najgorszy z możliwych i moim zdaniem nie ma sensu tak się bawić. Po drodze masz błędy:

- rozrzutu wartości bezwzględnej Vrefint (pewnie ze 100mV - w procesorach tak to bywa),
- pomiaru ADC z użyciem niestabilnego Vcc jako odniesienia,
- pomiaru samego Vcc,
- niejednocześności tych operacji.

Masz rację, akurat rodzina F1 jest upośledzona i o ile pamiętam nie umożliwia podłączenia Vrefint bezpośrednio do VREF+ przetwornika, dziwne. I dlatego warto do pinu VREF+ (jeśli jest dostępny w danej obudowie) zapodawać jakieś dobre odniesienie np. 2.5V. To niewiele kosztuje a znacznie poprawia komfort korzystania z ADC. Po to masz taki pin (lub od biedy VDDA) żeby robić z niego mądry użytek.

Czy jesteś jakoś zmuszony do użycia tego ZXCTcośtam? Przecież dałem Ci kilka wskazówek co do innych scalaków (zajrzałeś tam?), niektóre z nich są bardzo oszczędne, mają np. I2C i zadowalają się pojedynczymi uA prądu licząc przy okazji ładunek więc dokładnie to czego potrzebujesz. Czy możesz się do tego jakoś odnieść zamiast wciąż narzekać na duży prąd? A może po prostu znajdź lub wymyśl układ pomiarowy, który bierze mniej prądu? Możesz też w stanie standby odcinać opornik od masy i wtedy Twój ZXCT prądu ciągnął nie będzie wcale. Przecież możliwości jest wiele.

Link to post
Share on other sites

ZXCT1009 mnie interesuje, bo po prostu mam jego kilka sztuk, a te BQ o których pisałeś trudno zdobyć.

Dlatego dalej drążę temat ZXCT1009 i zmniejszenia przez niego zużycia energii.

PS: W obudowie mojego ARMa nie ma wyprowadzonych VREF+, ani VREF-. Niemniej od dawna wykorzystuję w nim z powodzeniem ADC przez DMA i bardzo proszę skończmy rozważania na temat napięcia referencyjnego dla ADC.

Teraz czekam na boczniki R100 o których mówiłem.

Link to post
Share on other sites

Trzeba było tak od razu, nie wysilałbym się z szukaniem innych układów pomiarowych.

Jeśli rozumieć "wystawianie masy z portu" jako podpięcie Rout do pinu procesora, to widzę dwa problemy:

1. Ten scalak zawsze stara się pompować taki sam prąd niezależnie co tam podłączysz od dołu (spróbuj o tym myśleć w kategoriach źródła prądowego) więc jeśli napięcie na linii zawierającej opornik 0.1Ω będzie wystarczająco wysokie (np. pochodziło z LiPola 2S) to gdy:

a. na pinie wystawisz stan 0: prąd będzie wpływał do portu procka, przepływał przez dolny tranzystor drivera portu i wypływał pinem GND (cieszymy się),
b. na pinie wystawisz stan 1: prąd będzie wpływał do portu procka, przepływał przez górny tranzystor drivera do Vcc i tam rozpływał się na wszystkie odbiorniki odciążając stabilizator (niepokoimy się raczej),
c. na pinie wystawisz stan HIZ (wyłączysz driver) to prąd będzie wpływał do pinu i przez diodę zabezpieczającą przepływał do Vcc procesora i dalej jak wyżej (tu już panika).

Ponieważ jedynie opcja "a" jest sensowna a dwie pozostałe niebezpieczne, takie podłączenie generalnie nie ma sensu, bo odłączanie nie działa jak planowałeś.

2. Nawet w opcji "a" napięcie odkładane na oporniku Rout będzie odniesione do pinu procesora (a nie do masy) więc względem tego punktu musisz mierzyć. Możesz użyć trybu różnicowego przetwornika i podłączyć jego "+" do górnego końca Rout a "-" do dolnego i wtedy ADC zadziała prawidłowo, ale ponieważ odłączanie prądu i tak wtedy nie zadziała, całość znów nie ma sensu. A dodatkowo po "odłączeniu" na pinie ADC dostajesz Vcc+0.7V

Może zamiast zadawać takie pytania narysuj sobie ten układ wraz ze strukturą wewnętrzną drivera portu i sam zobacz którędy prąd popłynie. Przecież to proste rzeczy.

Żeby taki myk zrobić dobrze, musisz użyć zewnętrznych tranzystorów MOSFET załączanych jakimś pinem portu. Para N/P np. coś typu NTZD3155 będzie tu pasować jak ulał. Podpowiedź: jeden tranzystor nie wystarczy. Usiądź, włącz myślenie, narysuj to i pokaż w następnym poście.

Link to post
Share on other sites

O jakich parametrach? Co chcesz żeby ten układ robił? W jakim zakresie napięć? Temperatur? Błędów? Wypisz listę. Być może wcale nie celujesz w "amatorskie ceny".

Czy możesz jakoś odnosić się do tego co piszę? Zaczynam mieć wrażenie, że nie zależy Ci na odpowiedziach na zadawane pytania. Nie pokazałeś schematu bo przestał Cię problem prądu obchodzić czy wstawienie dwóch tranzystorów jest zbyt dużym wysiłkiem?

Link to post
Share on other sites

Pomiar napięcia i prądu zasilania będzie miał na celu ogólną informację o działaniu robota (przy okazji poznanie problemów jak w tym temacie). Zatem pomiar prądu nie musi być dokładny, ma jedynie ogólnie informować o zwiększeniu zapotrzebowania i odpowiednie zareagowanie na to przez robota. Temperatura pomiaru jest zmienna, a błędy jak będą 5% to też nie będzie problem (to nie multimetr 😉 )

Zasilanie będzie z akumulatora Li-Ion 3,7V z pilnowaniem dolnej granicy 3V, ponieważ górną załatwia ładowarka.

Napęd dobrze działa przy 3 ..4V, elektronika na 3,3V.

PS: Zapewne wstawienie tranzystorów nie jest trudne, ale nie jestem elektronikiem i wolałbym nie błądzić... Jednocześnie nie chcę aby część informująca o wartości prądu nie była zbyt skomplikowana i wprowadzała zauważalne zużycie energii (chcę <1mA z możliwością zejścia prawie do 0 w uśpieniu). Dlatego zastanawiam się czy czasem nie zacząć mierzyć prądu z bocznika bezpośrednio przez ADC.

Link to post
Share on other sites

No to jeśli to będzie LiPol 1S, to cała ta dyskusja nie ma sensu. Popatrz na wykres "Transfer Characteristic" i powiedz co widzisz. Albo dobra, ja to zrobię. Ten scalak potrzebuje ok. 2.5V na "własne potrzeby". Przy dobrych układach (a naprawdę przy mniejszych Vsense) trochę mniej, ale nie masz szans zrobić na Rout sensownego napięcia wyjściowego. Skoro cały budżet zasilania to minimalnie 3V (bo do tylu można rozładowywać LiPola) to pożerający z tego 2.5V układ pomiaorwy pozostawia tylko 0.5V na Rout. Przecież to "stoi" jedno na drugim.

Rozwiązanie najprostsze: wstawiasz w minus akumulatora opornik pomiarowy i dostajesz na nim małe napiecie. Zwiększasz to za pomocą jednego taniego wzmacniacza operacyjnego który zasilasz z pinu procesora i z głowy. Zaleta: skrajna prostota. Wada: minus akumulatora nie jest na masie całości, więc np. pomiary napięć aku są obarczone błędem spadku na oporniku pomiarowym. I oczywiście dla aku 1S nie możesz zakładać spadków/strat rzędu 1V. To 25% wszystkiego co masz. Zacznij myśleć o oporniku 10-20mΩ i jakimś dobrym wzmacniaczu z małym offsetem.

Rozwiązanie trudniejsze: opornik pomiarowy (tak samo mały jak powyżej bo nie lubimy bezsensownych strat) wstawiasz w plus akumulatora. Teraz trzeba zbudować układ mierzący małe napięcie różnicowe (20mV) na tle stosunkowo sporego napięcia zasilania (4V). Do procesora nie możesz podłączyć niczego co jest wyższe niż jego Vcc, chyba że akurat pin cyfrowy jest odporny na 5V. To w żadnym wypadku nie dotyczy pinów analogowych. Kupujesz zatem wzmacniacz tzw. pomiarowy (instrumentation amplifier - tego szukaj) pracujący na 3V i umiejący "obsługiwać" napięcia wejsciowe wyższe niż jego zasilanie. Takiie coś "przekłada" pływające napięcie z opornika dyndającego gdzieś na linii zasilania na sygnał odniesiony do masy, jednocześnie go wzmacniając.Pierwszy z brzegu INA180 ma kilka wersji dla różnych wzmocnień, ciągnie kilkaset (nie pamętam dokładnie) uA z zasilania 3V a gdy będziesz go zasilał z pinu procesora i wyłączysz stanem niskim, z wejść od strony opornika pomiarowego pobiera jakieś pojedyncze uA. Jeśłi znajdziesz wersję ze wzmocnieniem x100 to dla 1A/20mΩ/20mV na wejściu dostaniesz 2V na wyjściu*. To chyba pasuje?

* - Mam nadzieję (Elvis), że tym razem dobrze policzyłem 😉

Link to post
Share on other sites

Chyba znowu nie czytałeś od początku, robisz to specjalnie czy to taka poza wiecznie zapracowanego?

Proponowałem co bardziej zmyślne układy (jest ich pełno) mierzące i liczące samodzielnie, ale Kolega nie był zainteresowany. No to wróciliśmy do podstaw: opornika i wzmacniacza pomiarowego. Co jest w tym niewygodnego?

Z resztą nie wiem, czy kilkanaście złotych za co bardziej skomplikowany scalak wciąż mieści się w pojęciu "amatorskiej ceny". No i prostota rozwiązania - jest piękną cechą szczególnie gdy ktoś zaczyna i gubi się w możliwych rozwiązaniach. W kanonicznym układzie możesz wszystko zbudować i pomierzyć "na piechotę" sporo się przy tym ucząc. Z drugiej strony (żeby już trochę zrównoważyć zdania) układy z wyjściem cyfrowym mają zaletę zamknięcia całego toru pomiarowego w jednym miejscu. Jeśli wzmacniacz postawisz na złej masie względem ujemnego wejścia przetwornika, ADC zmierzy z dużymi błędami. Ale też jeśli go tam nie postawisz, nigdy o takim problemie i jego znaczeniu się nie dowiesz i nie zrozumiesz jak sobie z tym radzić. A to chleb powszedni elektroniki.

Link to post
Share on other sites

Najprostsze będzie z bocznikiem do masy. Na początku zrobię najprostszy z rezystorem do masy, zobaczę czy mi te błędy spadku na boczniku nie będą przeszkadzać. Zakładam użycie oporników które niedługo przyjdą (4xR100=25mΩ).

Albo przetestuję pomiar na jednym 100mΩ i bezpośrednim pomiarem na ADC. Przy 50mA i jednym R100 powinno się chyba dać przesłać te 5mV przewodem ekranowanym do ADC i sensownie zmierzyć.

Link to post
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

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.