I2C Slave - jak prawidłowo zaimplementować odbiór danych w mikrokontrolerze '51?

I2c slave - procedura





Poprzedni Następny
Wiadomość
Spis treści
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: I2c slave - procedura
Date: Wed, 6 Mar 2002 08:52:23 +0200


Witam!

Męczę się z procedurš na odbiór danych przesyłanych po i2c w slave.
Wykorzystuję zwykłš '51 bez wbudowanej obsługi i2c, linię SDA podpinam pod
INT0 (wykrycie START) a SCL pod P1.0
Po wykryciu przerwania i sprawdzeniu że to rzeczywiście START zawieszam całš
pozostała część programu i skupiam się tylko na odbiorze danych. Mimo
wszystko kaszana.
Możecie się podzielić jakšś sprawdzonš procedurš na odbiór danych przez
slava lub ideš jak to zrobić w miarę sprytnie?

Z góry dzięki
Ed





Poprzedni Następny
Wiadomość
Spis treści
From: "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 09:51:55 +0100


Witam
nie sadze ze wykorzystanie przerwana to dobry pomysl ?


ja mam inny pomysl na procedure:
przykladowo na porcie P3.0 mamy zegar SCL
a na P3.1 dane SDA


jnb P3.0,$ ;to jest program wykrywajacy opadajace zbocze zegarowe
jb P3.0,$ ;po nim nalezy umiescic procedure odczytu bitu na przyklad

mov c,P3.1 ;przenesienie bitu do rejestru C
rrc a

umiesc to w petli

P.S. To jest tylko przyklad nie mowie ze to bedzie dzialac na 100% poprostu
tego jeszcze nie robilem :-)






Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 11:03:55 +0100


"Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> wrote in message
news:a64la4$2lt9$1_at_nospam_news2.ipartners.pl...
Witam
nie sadze ze wykorzystanie przerwana to dobry pomysl ?

a jak chcesz to inaczej zrobic jesli program wykonuje inne zadania ?
a dane na magistrali pojawiaja sie w blizej nieokreslonym momencie
z punku widzenia slave'a

w ogole to 51 moze nie wyrobic jako slave
majac programowa oblsuge zalezy jak szybki jest master


ja mam inny pomysl na procedure:
przykladowo na porcie P3.0 mamy zegar SCL
a na P3.1 dane SDA
jnb P3.0,$ ;to jest program wykrywajacy opadajace zbocze zegarowe

no i tu utknie az do momentu jak master zacznie "gadac" a co z reszta pogamu ?
no chyba ze masz wielozadaniowosc z wywlaszczaniem :-)


jb P3.0,$ ;po nim nalezy umiescic procedure odczytu bitu na przyklad

mov c,P3.1 ;przenesienie bitu do rejestru C
rrc a

umiesc to w petli

no chyba, ze ta 51 nie ma nic innego do roboty tylko czekac na dane
od mastera i wrzucac do jakiegos buffora to w sumie moglo by byc


Andrzej



Poprzedni Następny
Wiadomość
Spis treści
From: "Mister" <wojpie_at_nospam_bielsko.evatronix.com.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 12:00:31 +0100



nie sadze ze wykorzystanie przerwana to dobry pomysl
A jak inaczej to zrobisz ????
Chyba ze procek będzie tylko odbierał i nic. Ale to sztuka dla sztuki
Ed pisał ze procek ma pracować jako slave !





Poprzedni Następny
Wiadomość
Spis treści
From: "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 12:37:19 +0100



Użytkownik "Mister" <wojpie_at_nospam_bielsko.evatronix.com.pl> napisał w wiadomości
news:a64ss5$944$1_at_nospam_news.tpi.pl...

nie sadze ze wykorzystanie przerwana to dobry pomysl
A jak inaczej to zrobisz ????
Chyba ze procek będzie tylko odbierał i nic. Ale to sztuka dla sztuki
Ed pisał ze procek ma pracować jako slave !

Ja przedstawilem tylko propozycje rozwiazania problemu a wy krytykujecie !
Macie jakies rozwiazanie ? jakies propozycje ? pokazcie je !

Przyznaje sie jeszcze obslugi przerwan sie nie nauczylem ....

Mariusz Ksiezak



Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 14:37:23 +0100


Użytkownik "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> napisał w wiadomości
news:a64v09$2tes$1_at_nospam_news2.ipartners.pl...

...
Ja przedstawilem tylko propozycje rozwiazania problemu a wy krytykujecie !
Macie jakies rozwiazanie ? jakies propozycje ? pokazcie je !


eee .. . :-))

latwiej krytykowac niz cos zaproponowac

ja bym zapytal z jaka szybkoscia chodzi master
bo nie ma pewnosci, ze 51 wyrobi sie czasowo
chyba, ze to jakas odmiana z dallas'a

Andrzej




Poprzedni Następny
Wiadomość
Spis treści
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 16:22:18 +0200



"Andy" <anok_at_nospam_ceti.pl> wrote in message
news:27955-1015421763_at_nospam_main.lokalizuj.auto.pl...
Użytkownik "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> napisał w wiadomości
news:a64v09$2tes$1_at_nospam_news2.ipartners.pl...

ja bym zapytal z jaka szybkoscia chodzi master
bo nie ma pewnosci, ze 51 wyrobi sie czasowo
chyba, ze to jakas odmiana z dallas'a

Andrzej


Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.

Pozdrawiam
Ed





Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 15:40:38 +0100


Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...


Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.

Dlaczego ma to być akurat i2c a nie np. 51-kowe uart-y?
Ze względu na inne kości z i2c z ukladzie, zajęte uart-y czy jakis inny
powód?
Jakie to 51-ki?

MDz



Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 15:41:28 +0100


Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...

...
Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.


rozumiem

a nadajaca 51 ma jakies opoznienia miedzy wysylanymi bitami
czy nadaje na maxa ?

a tak z ciekawosci:
UART'y masz zajete ?
nie chcesz tego zrobic na serialu ?

Andrzej



Poprzedni Następny
Wiadomość
Spis treści
From: <p.banczyk_at_nospam_softbank.pl>
Subject: Re: I2c slave - procedura
Date: 6 Mar 2002 16:48:47 +0100


Czesc.
Czyzby orogramowanie nie miescilo sie w jednej kosci i trzeba przeniesc
funkcjonalnosc na inna kosc ?.

moze zrobic to tak
1. master wysyla cynk na dodatkowa linie
2. slave zawiesza dzialalnosc - obsluguje przerwanie przerwanie
3. w przerwaniu odpowiada masterowi ze jest gotowy
4. master nadaje i2c a slave odbiera

Pozdrawiam
Pawel

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Ed" <edxx_at_nospam_poczta.onet.pl>
Subject: Re: I2c slave - procedura
Date: Wed, 6 Mar 2002 18:03:19 +0200



"Andy" <anok_at_nospam_ceti.pl> wrote in message
news:30613-1015425588_at_nospam_main.lokalizuj.auto.pl...
Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
news:a658qc$edf$1_at_nospam_news.onet.pl...

...
Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c
jeden
nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
programowo,
slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest
niewielka
powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.


rozumiem

a nadajaca 51 ma jakies opoznienia miedzy wysylanymi bitami
czy nadaje na maxa ?

a tak z ciekawosci:
UART'y masz zajete ?
nie chcesz tego zrobic na serialu ?

Andrzej


  • Master nie nadaje na max, 2-3 komunikaty na sec (w fazie testowania

  • softu),
    mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš być
    wysterowne.
    -I2c jest wykorzystywany także do innych celów (na czas testowania procedury
    slave w 2051 pozostała część komunikacji po i2c jest zablokowana)

    Pozdrawiam
    Ed

    Nie upieram się przy I2c ale najbardziej by mi odpowiadał w tej
    konfiguracji - inne rozwišzania, sugestie mile widziane



    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
    Subject: Re: I2c slave - procedura
    Date: Wed, 6 Mar 2002 17:19:22 +0100


    Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
    news:a65env$p3p$1_at_nospam_news.onet.pl...

    - Procesorki to 8955wd i 2051.
    - Do 2051 sš podpięte triaki - pracuje toto jako dimmer na 3 różne obwody.
    Z
    mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš
    być
    wysterowne.
    -I2c jest wykorzystywany także do innych celów (na czas testowania
    procedury
    slave w 2051 pozostała część komunikacji po i2c jest zablokowana)
    - Port szeregowy w 8955 jest wykorzystany do komunikacji z "wizualizacjš"

    A czy 'wizualizacja' to jakiś produkt zewnętrzny czy też 51-ka? ;-) Może '51
    muli-point serial'?

    Jak się domyślam to w 2051 masz wolny uart. Może ustawić go w tryb0
    (synchroniczny) a sygnały po stronie WD55 generować na dwóch drutach
    programowo?

    MDz




    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Andy" <anok_at_nospam_ceti.pl>
    Subject: Re: I2c slave - procedura
    Date: Wed, 6 Mar 2002 22:11:44 +0100


    "Ed" <edxx_at_nospam_poczta.onet.pl> wrote in message news:a65env$p3p$1_at_nospam_news.onet.pl...

    ...

    - Master nie nadaje na max, 2-3 komunikaty na sec (w fazie testowania
    softu),
    - Procesorki to 8955wd i 2051.
    - Do 2051 sš podpięte triaki - pracuje toto jako dimmer na 3 różne obwody. Z
    mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš być
    wysterowne.
    -I2c jest wykorzystywany także do innych celów (na czas testowania procedury
    slave w 2051 pozostała część komunikacji po i2c jest zablokowana)


    hmm ...

    trudno tak na odleglosc cos wyczuc

    rozumiem, ze robisz tak:

    po wejsciu do przerwania sprawdzasz stan lini SCL
    jesli jest 1 to OK i odbierasz kolejne bity po kolejnych impulsach na SCL
    jesli 0 to wychodzisz z przerwania
    bo to nie byl impuls startu tylko zmiana 1->0 na SDA
    w trakcie transmisji
    to na wypadek wszelki jakby slave sie zle wstrzelil

    co wlasciwie sie kaszani?
    przesylasz po kilka bajtow z mastera do slave'a ?

    a jak przeslesz jeden bajt to co zostanie odebrane ?
    za kazdym razem inny bajt czy zawsze to samo
    ale rozni sie od tego co nadajesz czy co ?

    czy warunek startu sie jest dobrze rozpoznawany ?

    czy jak przeslesz 8 bitow to odbierzesz 8 czy mniej czy wiecej ?

    INT0 masz ustawione aktywne na stan czy na zbocze ?

    Andrzej




    Poprzedni Następny
    Wiadomość
    Spis treści
    From: jfox_at_nospam_friko6.onet.pl (J.F.)
    Subject: Re: I2c slave - procedura
    Date: Wed, 06 Mar 2002 22:50:42 GMT


    On Wed, 6 Mar 2002 18:03:19 +0200, Ed wrote:
    - Do 2051 sš podpięte triaki - pracuje toto jako dimmer na 3 różne obwody. Z
    mastera chciałbym wysyłać po i2c komendy na ile poszczególne obwody majš być
    wysterowne.
    -I2c jest wykorzystywany także do innych celów (na czas testowania procedury
    slave w 2051 pozostała część komunikacji po i2c jest zablokowana)
    - Port szeregowy w 8955 jest wykorzystany do komunikacji z "wizualizacjš"

    Nie upieram się przy I2c ale najbardziej by mi odpowiadał w tej
    konfiguracji - inne rozwišzania, sugestie mile widziane

    I2C sie kiepsko nadaje do uP. Jest za szybkie zeby programowo
    to obsluzyc, i mozna bity pogubic. Sugeruje:
    a) zalozyc sobie wolniejsza prace mastera, dluzszy okres
    od "Start" do pierwszego bitu - w tym czasie przyjac przerwanie,
    odczyt programowy.

    b) chyba by sie dalo .. trzeba w slavach kawalek przerzutnika
    dolozyc, ktory automatycznie wydluzy zegar i spowolni transmisje.
    Reszta juz programowo - SCLK pod przerwanie podlaczyc,
    bit odczytac, przerzutnik wyzerowac.

    c) z innej komunikacji skorzystac... moze port mastera przelaczac
    miedzy zewnetrzna a wewnetrzna linie, moze porty slave'ow w trym
    synchroniczny i softwareowo transmitowac ..

    J.


    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Jacek Domański" <jadoone_at_nospam_polbox.com>
    Subject: Re: I2c slave - procedura
    Date: Wed, 06 Mar 2002 19:04:41 GMT



    Użytkownik "Andy" <anok_at_nospam_ceti.pl> napisał w wiadomości
    news:30613-1015425588_at_nospam_main.lokalizuj.auto.pl...
    Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
    news:a658qc$edf$1_at_nospam_news.onet.pl...

    a tak z ciekawosci:
    UART'y masz zajete ?
    nie chcesz tego zrobic na serialu ?

    I2C ma o tyle wygodny protokol, ze do wspolnej szyny mozna podlaczyc n
    urzadzen i jeden protokol je wszystkie obsluguje.
    Jak ktos ma juz "przecwiczona" komunikacje I2C, to dodanie jeszcze jednego
    ukladu, w ten sam sposob obslugiwanego, nie wnosi dodatkowych trudnosci w
    jego obsludze.
    A RS czesto wykorzystywany jest do komunikacji np. z PC'tem albo jako
    "komunikacja dalszego zasiegu" - np. po podpieciu scalaczkow RS485..itp..
    Wszystko zalezy jak bardzo procesor jest wykorzystywany i czy ma wszytkie
    mozliwe zasoby zajete, czy nie :-))

    Dodanie I2C Slave do uC stwarza mozliwosc potraktowania go jako swoistego
    wyspecjalizowanego scalaka sterowanego magistrala I2C, gdzie mamy jednak
    mozliwosc wplywu na funkcje jakie bedzie on sprawowal (odp. go programujac)
    Tak wlasnie to rozumiem i chyba o to chodzilo autorowi pytania?
    Zwlaszcza w wypadku znacznego skomplikowania programu procesora glownego,
    gdzie nie ma miejsca na dodanie dodatkowych procedur innego protokolu,
    wykorzystanie i tak juz stosowanych do komunikacji z innymi scalakami
    procedur I2C daje istotne oszczednosci pamieci programu.

    Polecam opracowanie tych procedur na przerwaniach - jako pewnego rodzaju
    "zelaznego zestawu" czy bliblioteki - pozniej dolaczanej do dowolnego
    programu jako gotowy, przecwiczony, sporawdzony modul - jesli zajdzie
    potrzeba komunikacji I2C Slave.


    Pozdrawiam


    Jado



    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Tomasz Kołecki" <tomaszkolecki_at_nospam_poczta.onet.pl>
    Subject: Re: I2c slave - procedura
    Date: Thu, 7 Mar 2002 09:46:33 +0100



    Użytkownik "Ed" <edxx_at_nospam_poczta.onet.pl> napisał w wiadomości
    news:a658qc$edf$1_at_nospam_news.onet.pl...

    "Andy" <anok_at_nospam_ceti.pl> wrote in message
    news:27955-1015421763_at_nospam_main.lokalizuj.auto.pl...
    Użytkownik "Mariusz Księżak" <mariuszk_at_nospam_altkom.com.pl> napisał w
    wiadomości
    news:a64v09$2tes$1_at_nospam_news2.ipartners.pl...

    ja bym zapytal z jaka szybkoscia chodzi master
    bo nie ma pewnosci, ze 51 wyrobi sie czasowo
    chyba, ze to jakas odmiana z dallas'a

    Andrzej


    Idea jest taka, że dwie 8051 z kwarcem 11,059 gadajš sobie po i2c ( jeden
    nadaje - drugi tylko słucha). Obsługa i2c mastera jest zrobiona
    programowo,
    slave ma już zajęte jedno przerwanie zewnętrzne, transmisja jest niewielka
    powiedzmy 2-3 bajty na sekundę nie liczšc adresu slave.

    Pozdrawiam
    Ed


    Tak sobie mysle ze mozesz sprobowac dolozyc ekspander PCF8574 (przynajmniej
    odpadnie Ci obsluga protokolu I2C i probowac kombinowac cos z tym co masz po
    drugiej stronie (8 liniii wiec cos by sie dalo wymyslic (wlasny protokol
    szeregowy z jedna linia jako znacznikiem startu), ale nie wiem dlaczego nie
    podoba mi sie to za bardzo, ja bym chyba rozejrzal sie za innym procesorem
    na slave, np. takim co ma I2C, mimo wszystko byloby to chyba tansze
    rozwiazanie,

    Tomek



    Poprzedni Następny
    Wiadomość
    Spis treści
    From: Milosz Skowyra <miloszek.SPAM_REMOVE_at_nospam_fidonet.org.pl>
    Subject: Re: I2c slave - procedura
    Date: Thu, 07 Mar 2002 18:01:22 +0100


    "Mariusz Księżak" wrote:

    Ja przedstawilem tylko propozycje rozwiazania problemu a wy krytykujecie !
    Macie jakies rozwiazanie ? jakies propozycje ? pokazcie je !

    Buahhahaa...
    Ktos mnie pytal jak sie jedzie na wroclaw, wyslalem go na krakow a wy
    mnie krytykujecie, moze sami znacie lepsza droge ??? Rotfl. MSPANC

    Na powaznie, znasz sposob dzialania IIC w trybach master i slave ??? Mam
    podejrzenie ze nie, udzieliles koledze rady ktora raczej do dobrych nie
    nalezy.
    On mial racje, jedyne rozwiazanie to wykorzystanie przerwan.

    Przyznaje sie jeszcze obslugi przerwan sie nie nauczylem ....

    No tak... przynajmniej chwala ci za to ze sie przyznales.
    --
    Regards. Przy odpowiedzi usun "SPAM_REMOVE" z adresu!!!
    |-----------------------------------------------------|
    | Milosz Skowyra GSM Mobile +48 600 95 35 72 |
    | miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
    |-----------------------------------------------------|
    Proscie, a bedziecie prosci.

    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Greg S." <greg_sz_at_nospam_dsuper.net>
    Subject: Re: I2c slave - procedura
    Date: Wed, 06 Mar 2002 12:56:35 -0500


    Przyznaje sie jeszcze obslugi przerwan sie nie nauczylem ....
    No tak... przynajmniej chwala ci za to ze sie przyznales.

    A to dobre chwala to moze za cos wiekszego niz za przyznanie sie do niewiedzy.
    Radzilbym co postudiowac porzadnie jak dzialaja komputery w ogole, potem
    poczytac jak ten szczegolny procek dziala i dopiero sie zabierac do roboty.
    Zaoszczedzisz czasu i czczego pisania.
    To teraz chwala mnie ze opieprzylem i pouczylem he he.
    Pozdrowka

    Grze..Szy..


    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Greg S." <greg_sz_at_nospam_dsuper.net>
    Subject: Re: I2c slave - procedura
    Date: Wed, 06 Mar 2002 11:28:48 -0500


    Ed wrote:
    Wykorzystuję zwykłš '51 bez wbudowanej obsługi i2c, linię SDA podpinam pod
    INT0 (wykrycie START) a SCL pod P1.0
    to jest nie jest w porzadku bo byle co Ci robi przerwania. Nie znam tego procka
    na tyle zeby radzic szczegolowo ale
    albo mozesz miec przerwanie (Timer w trybie Capture) na ktoryms porcie to jego
    uzyj do tego celu albo timerem crob sobie przerwanie odpowiednio czesto (3-4
    razy predkosc transmisli I2C) i w obsludze przerwania badaj stan portu ktory
    jest dla ciebie SDA i SCL.

    Po wykryciu przerwania i sprawdzeniu że to rzeczywiście START zawieszam całš
    pozostała część programu i skupiam się tylko na odbiorze danych.
    Tu tez jest blad . Nie mozesz tak zawieszac wszystkiego na dlugo chyba ze
    rzeczywiscie inne rzeczy sa niewazne.

    Zrob tak ze by robic przerwanie na kazda zmiane na lini I2C i wsuwac sobie do
    jakiegos rejestru bity jeden po drugim.
    Potem badasz czy wystepuje taka sekwencja jak trzeba itd..
    W kazdym razie minimalizuj czas pozostawania w obsludze przerwan

    Powodzenia

    Grze..Szy..


    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Ed" <edxx_at_nospam_poczta.onet.pl>
    Subject: Re: I2c slave - procedura
    Date: Fri, 8 Mar 2002 14:24:55 +0200


    Dzieki wszystkim za rady - wychodzi na to, ze skonczy sie na transmisji
    synchronicznej z wykorzystaniem trybu 0 w 2051 i malej procedurce w 8955.

    Pozdrawiam
    Ed





    Poprzedni Następny
    Wiadomość
    Spis treści
    From: Romuald Bialy <romek_b_at_nospam_o2.pl>
    Subject: Re: I2c slave - procedura
    Date: Fri, 08 Mar 2002 23:48:07 +0100


    Ed wrote:

    Dzieki wszystkim za rady - wychodzi na to, ze skonczy sie na transmisji
    synchronicznej z wykorzystaniem trybu 0 w 2051 i malej procedurce w 8955.

    Dobra, ale o ile dobrze pamietam odbior w trybie 0 UART'u polega na tym
    ze odbiornik generuje sygnal zegarowy i w jego takt przyjmuje dane np. z
    rejestru przesownego. Wiec z deszczu pod rynne, bo 8955 musialby wysylac
    dane w takt zegara z 2051.
    Rozwiazaniem moze byc albo zastosowanie multipleksera na sygnalach RXD i
    TXD z 8955 i przesylanie tego UART'em w trybie 2 z wykozystaniem trybu
    multiprocesorowego, albo napisanie na 8955 programowego UART'a i
    wykozystanie w 2051 trybu 3 i wolnej (np 1200 baud) transmisji.

    --
    Pozdrawiam.... Romuald Bialy
    E'mail: romek_b_at_nospam_o2.pl
    WWW: http://www.polbox.com/r/romekb



    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
    Subject: Re: I2c slave - procedura
    Date: Sat, 9 Mar 2002 00:47:13 +0100


    Użytkownik "Romuald Bialy" <romek_b_at_nospam_o2.pl> napisał w wiadomości
    news:3C893FA7.9E5A78E3_at_nospam_o2.pl...
    Ed wrote:

    Dzieki wszystkim za rady - wychodzi na to, ze skonczy sie na transmisji
    synchronicznej z wykorzystaniem trybu 0 w 2051 i malej procedurce w
    8955.

    Dobra, ale o ile dobrze pamietam odbior w trybie 0 UART'u polega na tym
    ze odbiornik generuje sygnal zegarowy i w jego takt przyjmuje dane np. z
    rejestru przesownego. Wiec z deszczu pod rynne, bo 8955 musialby wysylac
    dane w takt zegara z 2051.

    Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym Rx-a
    Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.

    --
    Marek Dzwonnik mdz_at_nospam_message.pl
    GG: #2061027 (zwykle jako 'dostępny-niewidoczny')




    Poprzedni Następny
    Wiadomość
    Spis treści
    From: Romuald Bialy <romek_b_at_nospam_o2.pl>
    Subject: Re: I2c slave - procedura
    Date: Sat, 09 Mar 2002 01:33:21 +0100


    Marek Dzwonnik wrote:

    Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym Rx-a
    Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.

    Bujda na resorach !
    W trybie 0 zarowno przy nadawaniu jak i przy odbiorze
    zegar jest generowany przez UART.
    Ten tryb nadaje sie najlepiej do wysylania/pobierania danych z rejestrow
    przesownych.

    Fragment datasheet'a :

    Serial data enters and exits through RxD. TxD _!!! _outputs_!!!_ the
    shift clock. 8 bits are ransmitted/received: 8 data bits (LSB first).
    The baud rate is fixed a 1/12 the oscillator frequency.

    I dalej:

    Reception is initiated by the condition REN = 1 and R1 = 0. At S6P2 of
    the next machine cycle, the RX Control unit writes the bits 11111110 to
    the receive shift register, and in the next clock phase activates
    RECEIVE.
    RECEIVE enable SHIFT CLOCK to the alternate _!!! __output_!!!_ function
    line of P3.1. SHIFT CLOCK makes ransitions at S3P1 and S6P1 of every
    machine cycle. At S6P2 of every machine cycle in which RECEIVE is
    active, the contents of the receive shift register are shifted to the
    left one position. The value that comes in from the right is the value
    that was sampled at the P3.0 pin at S5P2 of the same machine cycle.

    --
    Pozdrawiam.... Romuald Bialy
    E'mail: romek_b_at_nospam_o2.pl
    WWW: http://www.polbox.com/r/romekb



    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
    Subject: Re: I2c slave - procedura
    Date: Sat, 9 Mar 2002 12:11:54 +0100


    Uzytkownik "Romuald Bialy" <romek_b_at_nospam_o2.pl> napisal w wiadomosci
    news:3C895851.643E8CC4_at_nospam_o2.pl...

    Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym
    Rx-a
    Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.

    Bujda na resorach !
    W trybie 0 zarowno przy nadawaniu jak i przy odbiorze
    zegar jest generowany przez UART.
    Ten tryb nadaje sie najlepiej do wysylania/pobierania danych z rejestrow
    przesownych.

    Bujda ra resorach Ale przyznaje bez bicia, ze moja. Uzylem bolacego lba do
    czytania srodku nocy. No i przeczytalem to co chcialem a nie to co
    napisano :-((

    Czyli problem nadal czeka na optymalne rozwiazanie.

    MDz




    Poprzedni Następny
    Wiadomość
    Spis treści
    From: "Ed" <edxx_at_nospam_poczta.onet.pl>
    Subject: Re: I2c slave - procedura
    Date: Sat, 9 Mar 2002 11:07:38 +0200


    Sygnał zegarowy jest wystawiany przez Tx i steruje rejesterm przesuwnym
    Rx-a
    Uart odbiornika zgłasza przerwanie po wsunięciu 8-bitów do rejestru.

    Bujda na resorach !
    W trybie 0 zarowno przy nadawaniu jak i przy odbiorze
    zegar jest generowany przez UART.
    Ten tryb nadaje sie najlepiej do wysylania/pobierania danych z rejestrow
    przesownych.
    Pozdrawiam.... Romuald Bialy
    E'mail: romek_b_at_nospam_o2.pl
    WWW: http://www.polbox.com/r/romekb

    Prawde powiedziawszy tuz tu dalem ciala - odbiór danych w trybie 0
    rozumialem dokladnie tak samo jak Marek. Dopiero po twoim post doznalem
    "olsnienia" - dzieki.

    Pozdrawiam
    Ed