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

[Atmega8][Bascom]Pcf8583 - jak sprawdzic czy układ dziala

KRZAG 27 Paź 2008 14:43 3242 11
REKLAMA
  • #1 5672620
    KRZAG
    Poziom 12  
    witam mam problem podlaczylem wydaje mi sie ze dobrze atmege do pcf8583 dalem rezystory podciagajace na liniach komunikacji
    wejscie a0 pcf do masy wejscie int (co prawda wisi w powietrzu ale jak zwieralem opornikiem 10k do 5V nic sie nie zmienialo)
    kod w bascomie

       I2cstart                   'inicjalizacja magistrali I2C
       I2cwbyte &HA0              'podanie adresu podstawowego PCF8583
       I2cwbyte 2                 'wybranie drugiego rejestru (sekund)
       I2cstart                   'start transmisji
       I2cwbyte &HA1              'zgłoszenie zamiaru odczytu informacji
       I2crbyte S , Ack           'odczyt Rejestru Sekund (z potwierdzeniem - Ack)
       I2crbyte M , Ack           'odczyt rejestru minut (z potwierdzeniem - Ack)
       I2crbyte H , Ack                                         'odczyt rejestru godzin (tryb 24h) (z potwierdzeniem - Ack)
       I2crbyte Dni , Ack                                       'odczyt dnia miesiąca (z potwierdzeniem - Ack)
       I2crbyte Miesiace , Nack                                 'odczyt miesiąca (bez potwierdzenia - Nack)
       I2cstop                                                  'zatrzymanie transmisji
    
       I = Makedec(s)
    
     If I = 165 Then
      Reset Dy1
      Set Dy2
      Set Dy3
      End If
     If I >= 167 And I <= 170 Then
      Set Dy1
      Reset Dy2
      Set Dy3
      End If
     If I > 170 Then
      Set Dy1
      Set Dy2
      Reset Dy3
      End If


    dxx to ledy podpiete aliasami do portxx
    odczyt zrobilem analogicznie jak w jednym z postow na forum ale nic nie dziala tzn wartosc I=165 (zapala mi sie led Dy1) liczbe te dobralem testujac, nie mam lcd wiec kontakt z prockiem jest marny natomiast wiem ze to 165 moje pytanie brzmi dlaczego akurat tyle co robie nie tak, jak powinienem odczytac poprawna godzine...?

    Proszę poprawić treść wiadomości - regulamin p.15
    [zumek]
  • REKLAMA
  • #2 5674214
    dawid512
    Poziom 32  
    Najpierw spróbuj zewrzeć A0 do VCC a potem daj znać czy coś się zmieniło.
  • REKLAMA
  • #3 5675169
    KRZAG
    Poziom 12  
    Przebudowalem plytke ale rezultat ten sam:/
  • #4 5676619
    webmortiz
    Poziom 20  
    Z tego co wiem, chociaz nie bawilem sie tym ukladzikiem, noga oznaczona jako int przy poprawnej pracy ukladu(i chyba przy podlaczeniu juz) powinna generowac 1Hz albo cos kolo tego. Mozna na oscyloskop wrzucic ewentualnie diode podpiac(powinno smigac) i zobaczyc czy mryga raz na sekunde.
  • REKLAMA
  • #5 5678848
    KRZAG
    Poziom 12  
    sprawdzę i dam znać :)
  • REKLAMA
  • Pomocny post
    #6 5678879
    mirley
    Poziom 17  
    Czy na początku programu ustawiłeś magistralę I2C:

    
    Config Scl = Portx.x
    Config Sda = Portx.x
    I2cinit
    


    Pisałem obsługę do zegara na tym układzie. Zobacz tutaj: http://mirley.firlej.org/zegar_nixie
  • #7 5681033
    KRZAG
    Poziom 12  
    ehhh tak testowałem i testowałem ze az ułamałem nóżkę A0 @#$@#

    Dodano po 18 [minuty]:

    obskrobałem złamana nozke i zwarłem ja na stałe do masy (w połowie układu) :))
    ale chyba faktycznie brakowało
    i2cinit bo porty konfigurowałem
    szok tyle tutoriali i artykulow przeczytalem nikt o tej komendzie nie wspominał dzięki wielkie

    Dodano po 13 [minuty]:

    skoro uruchomiłem machine zaczalem testy generalnie dziala wszystko tylko zegar chodzi jakby 2x szybciej czy to mozliwe ze przesunal mi sie jeden bit i dlatego musze mnozyc czas x2?
    kwarc mam 32,7KHz a kondensator 33pF, nie mam oscyloskopu aby sprawdzic czestotliwosc int wyjscia macie moze jeszcze jakies sugestie?
  • #8 5681708
    mirley
    Poziom 17  
    Wlutuj kondensator 100nF MKT między nóżkami zasilającymi układu PCF (nózki 4 i 8 ). Przy uruchomieniu mojego zegara też mialem podobny problem: śpieszyl się ok 20 min na godzinę ale z kondensatorem i bez żadnej regulacji trymerem działa z dokładnością ok 1-2s na dzień

    Jeżeli chodzi o komęde I2cinit to sam miałem problemy z uruchomieniem urządzeń I2C bo np w BASCOM 8051 tego nie było
  • #9 5681951
    dawid512
    Poziom 32  
    Osobiście pisałem programik na tego PCF-a i nóżkę A0 zwierałem do VCC i nie robiłem żadnego I2Cinit i wszystko pięknie działa.
  • #10 5683259
    KRZAG
    Poziom 12  
    mam kondensator przy zasilaniu atmegi myslisz ze powinienem jeszcze jeden dodac?
  • #11 5685865
    KRZAG
    Poziom 12  
    no i dodałem faktycznie teraz lepiej chodzi :) chyle głowe
    tylko czemu takich rzeczy nie pisza tylko trzeba samemu dochodzic inaczej bym plytke skonstruowal...
REKLAMA