eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › I2C czy slave może zgłosić masterowi że ma dla niego dane?
Ilość wypowiedzi w tym wątku: 11

  • 1. Data: 2009-01-30 19:46:29
    Temat: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: Dariusz Zolna <a...@u...com>

    Tak jak w temacie - czy protokół I2C dopuszcza możliwość
    zasygnalizowania masterowi, że slave ma dla niego informację do
    odebrania? A jeśli tak, czy Atmega załatwo to sprzętowo?
    Teraz robię to przez cykliczny polling, ale w przypadku np przycisku czy
    innego urządzenia typu "trigger" trochę to nieefektywne, bo nie dość że
    zabiera cenny czas procka, to odebrana informacja jest mało precyzyjna w
    czasie (co ma spore znaczenie w przypadku np stopera).

    Dariusz Żołna


  • 2. Data: 2009-01-30 20:03:47
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: "Sylwester Łazar" <g...@a...pl>

    Niech zgłosi to przez osobną linię.
    Można przez tą samą wyłączyć I2C, jeśli nic tam nie jest nadawane w danym
    czasie.
    Wtedy SLAVE sobie ustawi "0" jeśli chciałby coś nadać.
    MASTER wysłucha prośby i włączy I2C.

    --
    --
    pozdrawiam
    Sylwester Łazar
    http://www.alpro.pl
    http://www.rimu.pl -oprogramowanie do edycji schematów
    i projektowania PCB



  • 3. Data: 2009-01-30 22:00:27
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: Dariusz Zolna <a...@u...com>

    Sylwester Łazar pisze:
    > Niech zgłosi to przez osobną linię.
    > Można przez tą samą wyłączyć I2C, jeśli nic tam nie jest nadawane w danym
    > czasie.
    > Wtedy SLAVE sobie ustawi "0" jeśli chciałby coś nadać.
    > MASTER wysłucha prośby i włączy I2C.

    Mogę zrobić tylko upgrade firmware, dodatkowa linia nie wchodzi w grę.

    Dariusz Żołna


  • 4. Data: 2009-01-30 22:27:23
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: "Sylwester Łazar" <g...@a...pl>

    > Mogę zrobić tylko upgrade firmware, dodatkowa linia nie wchodzi w grę.
    Pisałem, że można po tej samej np. SDA.
    Problem w tym czy z obu stron są ukontrolery, czy SLAVE jest sprzętowy.
    Np. jeśli sprzętowy, to należy dodać jeden przewód od wyłącznika do SDA.
    Przycisk - zwiera sygnał do masy -> Master włącza port I2C.
    Jest jeszcze problem, bo MASTER musi poczekać na zwolnienie przycisku.
    Trudno tak dyskutować, jak nie widać układu.
    --
    --
    pozdrawiam
    Sylwester Łazar
    http://www.alpro.pl
    http://www.rimu.pl -oprogramowanie do edycji schematów
    i projektowania PCB



  • 5. Data: 2009-01-30 23:07:31
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: Dariusz Zolna <a...@u...com>

    Sylwester Łazar pisze:
    > Problem w tym czy z obu stron są ukontrolery, czy SLAVE jest sprzętowy.
    > Np. jeśli sprzętowy, to należy dodać jeden przewód od wyłącznika do SDA.
    > Przycisk - zwiera sygnał do masy -> Master włącza port I2C.
    > Jest jeszcze problem, bo MASTER musi poczekać na zwolnienie przycisku.
    > Trudno tak dyskutować, jak nie widać układu.

    Po obu stronach są uC, przycisk także przechodzi przez uC.
    Master - Atmega128, slave - w większości Atmega8.

    Dariusz Żołna


  • 6. Data: 2009-01-31 08:24:53
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: "Sylwester Łazar" <g...@a...pl>

    > Po obu stronach są uC, przycisk także przechodzi przez uC.
    > Master - Atmega128, slave - w większości Atmega8.
    To w takim razie:
    1) Normalna praca i2c wyłaczony. MASTER czeka na SDA na sygnał -impuls "0".
    Zakładam, że linia podwieszona jest do VCC przez rezystor.
    2) Jeśli "0" - MASTER włącza I2C.

    Nie miałem tego ATMEGA nigdy w ręce, ale widzę, że na pinie 26 (SDA) jest
    też przerwanie INT1.
    W takim razie nie trzeba pollingu, a przerwanie zostanie obsłużone
    sprzętowo.

    --
    --
    pozdrawiam
    Sylwester Łazar
    http://www.alpro.pl
    http://www.rimu.pl -oprogramowanie do edycji schematów
    i projektowania PCB




  • 7. Data: 2009-01-31 09:38:32
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: "T.M.F." <t...@n...mp.pl>

    Dariusz Zolna pisze:
    > Sylwester Łazar pisze:
    >> Problem w tym czy z obu stron są ukontrolery, czy SLAVE jest sprzętowy.
    >> Np. jeśli sprzętowy, to należy dodać jeden przewód od wyłącznika do SDA.
    >> Przycisk - zwiera sygnał do masy -> Master włącza port I2C.
    >> Jest jeszcze problem, bo MASTER musi poczekać na zwolnienie przycisku.
    >> Trudno tak dyskutować, jak nie widać układu.
    >
    > Po obu stronach są uC, przycisk także przechodzi przez uC.
    > Master - Atmega128, slave - w większości Atmega8.

    No to sprawe masz prosta. Jak master nic nie nadaje to przelacza sie w
    slave i masterem staje sie to twoje urzadzenie. Jesli oba beda chcialy
    nadawac to tez nic wielkiego bo I2C obsluguje kolizje.


  • 8. Data: 2009-01-31 09:59:25
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: Dariusz Zolna <a...@u...com>

    T.M.F. pisze:
    > No to sprawe masz prosta. Jak master nic nie nadaje to przelacza sie w
    > slave i masterem staje sie to twoje urzadzenie. Jesli oba beda chcialy
    > nadawac to tez nic wielkiego bo I2C obsluguje kolizje.

    Tyle że ja tych urządzeń mam kilkanaście, z którymi w większości jest
    transmisja ciągła, a tylko 2 dostarczają danych sporadycznie.
    Chyba zostanę przy pollingu, bo widzę że tylko skomplikuję sprawę i
    zmniejszę niezawodność.

    Dariusz Żołna


  • 9. Data: 2009-01-31 14:40:18
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: Adam Dybkowski <a...@4...pl>

    Sylwester Łazar pisze:

    >> Po obu stronach są uC, przycisk także przechodzi przez uC.
    >> Master - Atmega128, slave - w większości Atmega8.
    > To w takim razie:
    > 1) Normalna praca i2c wyłaczony. MASTER czeka na SDA na sygnał -impuls "0".
    > Zakładam, że linia podwieszona jest do VCC przez rezystor.
    > 2) Jeśli "0" - MASTER włącza I2C.

    Można też przy interfejsie 2-liniowym zrezygnować z protokołu I2C i
    zrobić zwykły RS232 z wykrywaniem kolizji. Na jednej linii Master gada
    do pozostałych procesorów, na drugiej (z pull-up'em do zasilania) gadają
    inne procki sterując linią w trybie open drain (wystawiając tylko masę
    lub Hi-Z). Jeżeli dwa Slave'y jednocześnie będą chciały coś nadać,
    wystarczy najpierw posłuchać czy coś już nie leci na linii a do tego
    wykryć kolizję np. sprawdzając CRC ramki. Maksymalna prędkość takiego
    współdzielonego RS232 zależy od długości linii i liczby Slave'ów.

    --
    Adam Dybkowski
    http://dybkowski.net/

    Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.


  • 10. Data: 2009-02-02 21:54:31
    Temat: Re: I2C czy slave może zgłosić masterowi że ma dla niego dane?
    Od: "entroper" <e...@C...spamerom.poczta.onet.pl>

    Użytkownik "Dariusz Zolna" <a...@u...com> napisał w wiadomości
    news:gm17ds$km9$1@inews.gazeta.pl...

    > Chyba zostanę przy pollingu, bo widzę że tylko skomplikuję sprawę i
    > zmniejszę niezawodność.

    Nie wiem czy Atmega w ogóle to obsługuje i czy robi to poprawnie, ale możesz
    zrobić taki eksperyment: niech slave przetrzyma chwilę SCL w stanie niskim w
    momencie, gdy master wystawił SCL=0. Jeśli master to wykryje (jako dostęp
    innego mastera lub nawet jako błąd) i nie wywali się na tym (tzn, nie będzie
    chciał na siłę wystawiać danych tylko poczeka na SCL=1), będziesz mógł bez
    przeszkód dokończyć bieżącą transmisję do aktualnie adresowanego urządzenia
    i zaraz potem wywołać odczyty z interesujących Cię slav'ów (oczywiście nie
    rozróżnisz, który chciał dostępu, ale masz ich mało zdaje się).

    e.

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: