Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATmega128 BASCOM - RTC ds1307 pomiar napięcia baterii

19 Lip 2013 14:21 5349 17
  • Poziom 19  
    Witam.

    Jak bezkolizyjnie mierzyć Atmegą (poprzez ADC) napięcie baterii 3V (backup battery) podłączonej do zegara RTC?

    Jeśli podłączę na stałe, mikrokontroler będzie ciągle pobierał jakiś prąd z baterii. A mi chodzi o to aby tylko po wpisaniu odpowiedniej komendy do atmegi128 podłączyć na chwilę baterię do ADC i zmierzyć jej napięcie, oraz zaraz odłączyć a wynik wyświetlić.


    Przekaźnik odpada, bo nie ma miejsca na tego typu szpej na tej płytce (SMD). Da się to zrobić jakoś inaczej? Może tranzystor?

    Na pewno jeśli tranzystor, to trzeba dobrać taki aby przy stanie niskim bateria była odłączona od mikrokontrolera. To znaczy, jeśli odłączymy prąd Atmedze to bateria pozostaje odłączona od mikrokontrolera. Tylko podanie stanu wysokiego aktywuje podłączenie baterii do ADC.


    Moduł RTC wygląda tak:
    ATmega128 BASCOM - RTC ds1307 pomiar napięcia baterii

    Pozdrawiam.
  • Pomocny post
    Poziom 33  
    Witam
    Czy procesor działa cały czas? jeśli tak to spokojnie możesz podłączyć ADC bezpośrednio do baterii przez opornik rzędu 10KΩ, zabezpieczy on wejście procesora przed uszkodzeniem gdy jest on bez zasilania.
    Wariant 2, gdy procesor bywa większą część czasu załączony a RTC jest w jego pobliżu to zwiększ opornik do 1M i na wejście daj kondensator 0,1µF , prąd będzie wystarczająco mały by oszczędzić baterię.
    Najmniej korzystny jest układ gdy procesor pracuje sporadycznie, możesz dać układ CD4066 i załączać ten klucz na czas pomiaru, ale jak w wariancie pierwszym nie zapomnij o oporniku 10KΩ, w przeciwnym przypadku możesz uszkodzić wejście Atmegi, gdyby układ był za duży gabarytowo to istnieje jego wersja a jednym kluczem, ale typu nie pamiętam.
  • Poziom 19  
    Układ będzie włączony praktycznie cały czas, wolałbym to rozwiązać poprzez jakiś mały element np. tranzystor, który na czas pomiaru podłączał by baterie do ADC.

    W 2 wariancie prąd i tak będzie płynąć, a zasadniczo nie chcę aby cokolwiek innego było podłączone do tej baterii na stałe.
  • Pomocny post
    Specjalista - Mikrokontrolery
    Tranzystor PMOS sterowany przez tranzystor npn. Prościej się raczej nie da.
  • Pomocny post
    Poziom 33  
    Witam
    Jeśli to ma być zasilane cały czas to zamiast baterii daj supercap, kondensator może się ładować przez diodę a na czas braku zasilania starczy na długie podtrzymanie zasilania RTC.
    Ważne by supercap ładować przez rezystancję bo na starcie prądy byłyby bardzo duże i mógłby być kłopot z resetem procesora.
    Jeśli procesor jest zasilany to rezystancja wejścia ADC będzie niemierzalnie duża, nie masz się co obawiać o rozładowanie baterii.

    Dodano po 9 [minuty]:

    Witam
    BlueDraco, to wcale nie jest najprościej, do NPNa trzeba jeszcze dodać opornik, a PMOSa by się włączył trzeba podpolaryzować czyli conajmniej jeden następny opornik.
    Na dobrą sprawę najpewniej i najprościej byłoby użyć 74V1G66, nie wiem jak z dostępnością ale teraz wszystko można kupić :)
    Piotr
  • Poziom 19  
    No a ten opornik 10k, nie będzie powodować zauważalnej zmiany napięcia realnego baterii?
  • Pomocny post
    Poziom 33  
    Witam
    Nie bo rezystancja wejścia jest znacznie większa od tej rezystancji, problemem w takich układach są diody w strukturze procesora, które powodują że na wejście nie można podać większego napięcia niż Vcc+0,6V, jeśli wyłączysz procesor to bezpośrednie połączenie wejścia ADC z baterią RTC zniszczy wejście procesora, w przypadku zasilania procesora jego wejście ADC zachowuje się jak wejście nieodwracające wzmacniacza CMOS, nawet rezystor 1M powinien dać pomijalnie mały błąd.
  • Specjalista - Mikrokontrolery
    A czy przypadkiem niezasilona 66 nie zacznie się zasilać przez wejście, a następnie zasili ATmega z mierzonej bateryjki?
  • Poziom 19  
    Kolego BlueDarco, nie, ponieważ bateryjka ta podtrzymuje tylko jedną strukturę zegara RTC odpowiedzialną za zliczanie czasu. Pozostałe struktury są wtedy odłączone (nie działa komunikacja itd.).

    Z dużych rezystorów smd posiadam tylko:
    10k
    15k
    22k
    33k
    47k
    100k


    Dać 100k? Powinno być ok?
  • Specjalista - Mikrokontrolery
    Bez związku. bateria dołączona do wejścia 66 prz ybraku zasilania tego 66 zacznie go zasilać, a ponieważ na wejściu sterującym bęDzei poziom niski z niezasilonego ATMega, prąd popłanie na wejście ATmega i również zaczenie go zasilać przez wejście, co spowoduje szybkie wydrenowanie baterii..
  • Moderator Mikrokontrolery Projektowanie
    PiotrPitucha napisał:

    Ważne by supercap ładować przez rezystancję bo na starcie prądy byłyby bardzo duże i mógłby być kłopot z resetem procesora.
    J
    Dodano po 9 [minuty]:
    Piotr


    Nie jest to prawdą. Supercapy mają rezystancję wewnętrzną w zakresie 1-100 omów, typowo kilka omów. Także można bez obaw je łączyć bezpośrednio do zasilania, żadnych dziwnych efektów nie będzie.

    Dodano po 3 [minuty]:

    A nie prosćiej zmienić koncepcję i zastosować odpowiedni procesor do takich celów? Skoro używasz BASCOMa, to żaden problem. Jak bym wziął np. ATXMEGA128A3, który kosztuje połowę tej ATMEGA128, a ma oddzielną domenę VBAT do RTC32, więc o nic nie trzeba się martwić. Na pokładzie ma RTC32, ma BOD do baterii, taże jest sprzętowa detekcja zaniku zasilania. Układ się upraszcza, pozbywamy się drogiego układu kalendarzowego i dziwnych problemów z mierzeniem napięcia baterii.
  • Poziom 19  
    Niestety układ staram się zrobić tylko z dostępnych pod ręką układów, zostało mi kilka takich atmeg, lcdków, zegarów i mase innego szpeju i chciałbym coś z tego zrobić w wolnej chwili :)

    Jak podłącze przez rezystor 100k to nadal będzie ten problem?
  • Poziom 33  
    Witam
    tmf jak sam piszesz supercap o rezystancji 1Ω przy ładowaniu z 5V spowodowałby przepływ prądu ładowania 5A a to wcale nie musi być zdrowe dla zasilacza, nie każdy ma stabilizator z zabezpieczeniem to po pierwsze, po drugie supercapa ładuje się przez diodę by po zaniku napięcia nie rozładowywał się przez resztę układu, zwykle jest to dioda Schottky o prądzie maksymalnym rzędu kilkudziesięciu mA, oczywiście można dać taką na 5A ale mała zajmuje mniej miejsca i jest tańsza :)
    RTC jest zasilany z niższego napięcia więc mamy do wyboru stabilizator z 5/3,3V albo opornik i zenerkę
    Przy powolnym narastaniu napięcia układy mają ponadto tendencję do niestabilności, jak czymś sterujemy to jest wywoływanie kłopotów na własne życzenie.
  • Moderator Mikrokontrolery Projektowanie
    1 om to ekstremum, typowy supercap 0,22F ma opór wewnętrzny koło 8 i więcej omów. Niby wychodzi z tego koło 0,5A, ale przez czas rzędu kilkunastu ms. W miarę narastania napięcia na kondensatorze prąd będzie szybko malał. Diody w SMD spokojnie wytrzymają 1-2A, a w impulsie więcej. Prawdę mówiąc nie spotkałem diody Schottkiego na kilkanaście/kilkadziesiąt mA.
    Aldoro Draxy: Jak budujesz z tego co masz w szufladzie, to też wywal ten RTC, podłącz kwarc pod TOSC ATMegi128, odpal jej RTC. Dodaj prostą detekcję zaniku zasilania i usypiaj procka. Będzie pobierał więcej niż RTC, ale bez przesady, i tak na baterii będzie RTC będzie działał lata.
  • Poziom 33  
    Witam
    Z milisekundami to przesadziłeś, 1F z definicji 1A*1s/1V, ładujemy do 3V prądem 0,5A to nam wychodzi 6 sekund na Farad na 0,22F wyjdzie 1,32 sekundy, biorąc typową diodę do takich celów BAT54 mamy bardzo wielką szansę że nie przeżyje, ma maksymalny prąd 200mA a jakaś BAW którą stosowałem 10mA.
    Nawet jak przeżyje to nie możemy projektować układu na granicy wytrzymałości, druga sprawa to jak zachowa się procesor który wstaje 1,32 sekundy.....
  • Moderator Mikrokontrolery Projektowanie
    Ładować to on się będzie znacznie dłużej, zapomniałeś, że napięcie na kondensatorze narasta, a prąd maleje. W efekcie impuls trwa krótko, potem prąd jest co raz mniejszy. Diody Schottkiego na 1-4A w SMD bez problemu można dostać. A procesorowi nic się nie stanie - od lat mamy układy BOD, czuwające nad startem procesora.
    BTW, przykładowy 0,22F z TME ma rezystancję 75 omów.
  • Poziom 33  
    Witam
    Wiem jak wygląda proces ładowania kondensatora :)
    Chodzi o pewną zasadę, jeśli mam małą płytkę i mam tylko podładowywać kondensator to nie będę szukał diod na 10A choć pewnie takie mam nawet w szufladzie, jeśli mam włożyć kondensator supercap to projektuję uklad tak by nie przekroczyć prądu, bo nigdy nie wiem jaką będzie miał rezystancję, chwała TME w którym kupuję elementy że zamieszcza takie parametry, bo jak idę do sklepu obok to mam totolotek.
    Problem jest w tym że zwykle w układzie mamy jakiś mały stabilizator z prądem rzędu 100mA i ładowanie będzie trwało wieki stałym prądem z ogranicznika stabilizatora a moje doświadczenia z Atmegą8 wskazują że przy powolnym narastaniu zasilania nie zawsze startuje mimo BOD.
    Druga sprawa to urządzenia podłączane do gotowego sprzętu, czasami musimy podpiąć jakieś peryferia w czasie pracy i wtedy mamy gotowy reset, wiem że tak się nie powinno :D podpinać ale czasami wymogi technologiczne zmuszają do takich działań.