logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega16][C] PCF8583 nie liczy

tmazur 17 Lip 2011 23:37 2534 8
  • #1 9729833
    tmazur
    Poziom 10  
    Witam,

    Mam problem ze zbudowanym układem zawierającym RTC zbudowany na układzie PCF8583. Otóż układ czasami działa tak jak powinien, a czasami nie liczy poprawnie - objawia się to w różny sposób. Czasami liczy kilka razy wolniej - sekunde nalicza co kilka a nawet kilkadziesiąt sekund. Czasami po prostu staje i nie liczy dalej. Sprawdzałem połączenia i wszystko wydaje się w porządku, układ na pewno dostaje poprawne napięcie. Zgaduje, że problem jest z kwarcem, które nie jest podłączony kondensatorem do zasilania, ale czytałem, że tak też powinno działać. Co zatem jest problemem? Załączam schemat.

    [ATmega16][C] PCF8583 nie liczy
  • #3 9729886
    tmazur
    Poziom 10  
    Nie wydaje mi się żeby to było problem. Jeżeli problem byłby przy odczycie wartości, to jeżeli układ w danej chwili się zacina, to po tym jak odzyskuje sprawność powinien wskazać poprawny czas. Chyba że się mylę, to jutro mogę sprawdzić. Obecnie wygląda to tak że np. układ liczy od 0-30 poprawnie, następnie zacina się na 20 sekund i po tych 20 sekundach wskaże 31 sekund. Jeżeli problem byłby z odczytem to układ powinien wskazać 50 sekund.

    Wydaje mi się że coś po prostu nie styka bo na płycie stykowej chodziło wszystko pięknie ładnie, jedyna różnica po przeniesieniu na PCB jest taka że dodałem diody i baterię. Może dioda 1N4007 coś tu miesza? Od razu mówię że probowałem odpalać układ z wyciągniętą baterią.
  • #5 9729990
    mirekk36
    Poziom 42  
    tmazur napisał:
    Sprawdzałem połączenia i wszystko wydaje się w porządku, układ na pewno dostaje poprawne napięcie. Zgaduje, że problem jest z kwarcem, które nie jest podłączony kondensatorem do zasilania, ale czytałem, że tak też powinno działać. Co zatem jest problemem?


    tmazur napisał:
    Nie wydaje mi się żeby to było problem.


    tmazur napisał:
    Może dioda 1N4007 coś tu miesza? Od razu mówię że probowałem odpalać układ z wyciągniętą baterią.


    Tak sobie czytam, i czytam i oczom nie wierzę. Układ z tym PCF'em jest prosty jak drut, jego podstawowa obsługa w sumie też. Ale po co sobie ułatwiać życie - jeśli można je pokomplikować na własne życzenie.

    A to coś ci się wydaje, a to coś ci się nie wydaje, a to coś zgadujesz, a to coś ci miesza. I jeszcze jak ktoś ci coś podpowiada - to zamiast sprawdzić odpowiadasz tylko, że to też ci się nie wydaje. O co tu chodzi ? jakiś czeski film ;)

    Skoro wiesz jak wygląda podstawowy schemat z noty PDF, gdzie masz jak BYK narysowane, że kwarc jest podłączony do VCC przez kondensator 22pF do VCC ale także, że linie I2C muszą być podciągnięte do VCC rezystorami - to dlaczego tego nie robisz? Lubisz sobie rzucać sam kłody pod nogi a potem wciąż dziwić się dlaczego się przewracasz? i jeszcze sam ich nie dostrzegasz ?

    To są podstawy, które trzeba zapewnić - a to, że coś ci tam działało na stykówce czy w innym dziwnym układzie bez połowy elementów - to całkiem inna sprawa. Jeśli uważasz , że producenci kłamią w notach PDF - to w zasadzie po co pytasz - skoro tutaj każdy jest wychowany na takich notach PDF.

    kolejna sprawa o której może nie ma w PDF to diody - nie powinno się stosować zwykłych diod prostowniczych o dużym spadku napięcia bo skracasz sobie działanie RTC na baterii, a jeśli jeszcze dioda zasilania będzie miała spory prąd wsteczny to bateria będzie dodatkowo zasilała całą płytę elektroniki niepotrzebnie i szybciej się zmarnuje. Tutaj podstawa to byle diody Shottky, tylko dając je też warto poszukać takich o jak najmniejszym prądzie wstecznym jeśli długo ma bateryjka lub kondensator podtrzymujący podziałać.

    Jak się już pozbędziesz problemów z hardware i problem nie ustąpi (tak coś czuję przez skórę - chociaż pewien nie jestem) to pokaż swój kod do obsługi tego RTC. Tylko proszę nie pisz:

    - że wydaje ci się, że to nie kwestia kodu bo coś tam coś tam ....

    W kodzie możesz mieć takie babole, które takie efekty ci przyniosą o jakich ci się nie śniło - i to także nie ma nic wspólnego z tym , że wcześniej ci kod działał a teraz nie chce.
  • #6 9730038
    tmazur
    Poziom 10  
    dondu napisał:
    1. Nie powinieneś mieć kondensatora z OSCI do Vdd?


    Powinienem, ale nie mam tak małych kondensatorów, najmniejszy jaki mam to 100nF, więc chyba lepiej jak nie dam żadnego, póki nie będę miał właściwego. Czytałem na forum jak ludzie nie stosują tych kondensatorów i wszystko chodzi, więc założyłem, że nie będę musiał ich stosować. Może niesłusznie. Jak tylko będę miał okazję to kupię odpowiedni kondensator.

    dondu napisał:
    2. 4,7 są najczęściej stosowane, str 5 dolna część: http://www.atmel.com/dyn/resources/prod_documents/doc2564.pdf
    Z drugiej strony w datasheet jest wzór rak policzyć rezystory.


    Akurat schemat który wziełem z forum miał 2,2k, takie zastosowałem. Jak zapisze czas do układu to zostaje on ustawiony i poprawnie odczytany. Jedyny problem to że układ nie tyka. Linię TWI zostawiłbym w spokoju...

    dondu napisał:
    3. A jaką masz odległość?


    Linii TWI? jakieś 5cm, przewody proste nie skrętka.

    @mirekk36
    Czy Twój post wnosi cokolwiek do tematu? Rezystory podciągające są. Nie o odpowiedniej wartości ale komunikacja na linii odbywa się poprawnie w obu kierunkach - jeżeli wyślę jakąś wartość do PCF'a to odczytuje właśnie tą wartość. Że kondensatora brakuje? Wiem, ale nie mam takiego kondensatora, a czytałem na forum wypowiedzi że kwarce działają również bez kondensatorów.

    Do głowy przyszła mi jeszcze jedna rzecz związana z software. W chwili gdy układ działał poprawnie na płytce stykowej, odpytywanie układu o czas odbywało się jednokrotnie po naciśnięciu przycisku. Teraz obywa się to w sposób ciągły. Może to zły trop, ale jutro sprawdzę czy układ będzie działał lepiej jeśli odpytywanie układu o czas będzie się odbywało z pewnym odstępem czasowym. Ale obawiam się że problem jest z kwarcem i dopóki nie zdobędę odpowiednich kondensatorów to układ nie ruszy :(. Jedyne co mi przychodzi do głowy poza tym, to że mogłem uszkodzić PCF'a/kwarc podczas lutowania. Czy któryś z tych elementów jest jakoś szczególnie wrażliwy na temperaturę?
  • #7 9730040
    dondu
    Moderator na urlopie...
    Nie używałem nigdy tego układu, więc nie bardzo mogę Ci więcej pomóc.
    Ale jak widzisz Mirekk36 także wspomniał o tym kondensatorze, więc ja tylko podkreślę, podobnie jak on, że zawsze najpierw sprawdzaj datasheet, i stosuj się do niego. To najlepsza droga do omijania kłopotów :)

    A na forum, pomimo pracy moderatorów, niestety zdarzają się niewłaściwe porady, lub są one bardzo specyficzne do konkretnego przypadku i nie można ich uogólniać.

    Osobna sprawa to program ...
  • #8 9732377
    janbernat
    Poziom 38  
    Na płytce stykowej działał pewnie dlatego że różne pojemności pasożytnicze akurat tak wypadły że miałeś te kilka- kilkanaście pF między nóżką kwarcu a zasilaniem.
    Wystarczy zmienić położenie na płytce- i już nia działa.
    Jak nie masz kondensatora a Ci się spieszy- to zrób.
    Z 10cm skręconych przewodów- takich ze skrętki.
    Jeden przewód do kwarcu a drugi- to +zasilania.
    Albo koncentryk- zwykle ma 100pF/m.
    Na stałe to nie jest rozwiązanie- bo bedzie zbierać zakłócenia.
  • #9 9743790
    tmazur
    Poziom 10  
    Dodałem kondensator i sprawa załatwiona. Wniosek taki że nie można wierzyć we wszystko co jest napisane na forum... Dziękuję za pomoc.
REKLAMA