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

(BASCOM), 3 X Atmega 16 , PCF8583

arktik1 09 Wrz 2010 14:16 1755 13
REKLAMA
  • #1 8492193
    arktik1
    Poziom 27  
    Witam.
    Czy można podłączyć 3 M16 do jednego PCF8583?
    Chodzi o to by 3 zegary w różnych częściach domu działały jednakowo.
    Miały odczyt z jednego zegara PCF.
    Myślałem o połączeniu równoległym linii SDA i SCL, czy to ma szansę działać?
  • REKLAMA
  • #2 8492240
    tadzik85
    Poziom 38  
    arktik1 napisał:

    Chodzi o to by 3 zegary w różnych częściach domu działały jednakowo.


    No tego na I2C raczej nie osiągniesz
  • #3 8492751
    arktik1
    Poziom 27  
    Dlaczego?
    Z czym będzie problem?
    Nie da się tego zrobić?
  • REKLAMA
  • #4 8492774
    tadzik85
    Poziom 38  
    Napisałeś, że chcesz w kilku rożnych pomieszczaniach. Wiec problemem tu będzie odległość transmisji. No chyba, że nie zrozumiałem twojej koncepcji.
  • #5 8495288
    arktik1
    Poziom 27  
    Więc jaki może być najdłuższy kabel do transmisji?
    Może wykorzystać IRDA?
    Nie wiem jak to ugryźć .

    Dodano po 1 [minuty]:

    A może wykorzystać 3 PCF ,tylko wtedy trzeba by było zrobić synchronizację.
  • REKLAMA
  • #6 8495314
    tadzik85
    Poziom 38  
    Jeśli chcesz kilku metrowe odległości, a od pokoju do pokoju pewnie tyle jest wykorzystaj RS485. I2C do kilkudziesięciu centymetrów. Albo pomyśl o bezprzewodowej transmisji ;)

    Dodano po 2 [minuty]:

    Ale zastanawia nie sens takiego rozwiązania. Fakt będą pokazywać jednakowe czasy, ale jeśli czas w PCFie ci się rozjedzie wszystkie pokażą źle.
  • #7 8495369
    arktik1
    Poziom 27  
    No tak , ale bez sensu jest mieć 3 zegary z 3 PCF i po miesiącu mieć na nich różne "godziny".
    Pomyślałem jeszcze że PCF zamontuje do 1 M16 a do 2 pozostałych wezmę tylko impuls sekundowy do zwiększania licznika zegarów.
    To chyba będzie dobre rozwiązanie.
    Minus tego jest taki że ,po wyłączeniu zasilania trzeba będzie każdy zegar ustawić oddzielnie i potem w głównym zegarze wcisnąć start.
  • #8 8495440
    tadzik85
    Poziom 38  
    Ale jak dobrze zrobisz to po miesiącu będziesz miał różnicę tylko kilku sekund. A to i ta bardzo mało.
  • #9 8495480
    xury
    Specjalista automatyka domowa
    Można by było spróbować tak:
    1. Na pierwszym uC ustawić zegar
    2. Zaprogramować tak, że po zmianie sekundy daje krótki impuls na jakiś pin.
    3. W pozostałych dwóch stawić jeden z pinów INTx i w momencie wywołania przerwania zwiększać liczbę sekund.

    Wadą tego rozwiązania są możliwe zakłócenia indukujące się na przewodzie. Jednakże stosując zewnętrzne mocne pull-upy i wywołując przerwanie zboczem opadającym można je zminimalizować. Czyli w stanie normalnym jedynka, a zmiana sekundy to krótki impuls zerowy.
  • #10 8495489
    tadzik85
    Poziom 38  
    A ja wykorzystałbym wyjście zegarowe PCF. Plusem jest wypełnienie 50% i dobrał częstotliwości na powiedzmy 100Hz.
  • REKLAMA
  • #11 8577729
    arktik1
    Poziom 27  
    Jeszcze jedno pytanko.
    Czy można stosować dowolne piny do SDA i SCL, czy tylko wybrane ?
  • #12 8578163
    tadzik85
    Poziom 38  
    Wybór innych wiąże się z softwerowa implementacją protokołu I2C. W necie znajdziesz sporo przykładów.
  • #14 8578905
    tadzik85
    Poziom 38  
    Zapewne tak. Zapomniałem ze to BASCOM.
REKLAMA