I2C



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek" <mokrent_at_nospam_poczta.onet.pl>
Subject: I2C
Date: Sun, 11 Mar 2001 11:23:06 +0100


Witam wszystkich grupowiczów. Wiem że pytania są banalne dla większości z
Was ale proszę o szczegółowe wyjaśnienie.

Fragment programu clock.bas

odczyt

I2cstart
I2cwbyte &HA0 'Podany adres do zapisu. W jakim celu (mamy odczytywać)
?
I2cwbyte 2 'Dlaczego po adresie do zapisu podany jest ten
rejestr ?
I2cstart 'Instrukcja I2cstart występuje drugi raz.
Dlaczego ? Czemu nie zakończono pierwszą instrukcję "start" "stopem" ?
I2cwbyte &HA1 'Czy godzina i data znajdują się w tym samym miejscu
RTC że są wymienione jedna po drugiej?
I2crbyte S , Ack
I2crbyte M , Ack
I2crbyte H , Ack
I2crbyte Yd , Ack
I2crbyte Wm , Nack
I2cstop

zapis


I2cstart
I2cwbyte &HA0
I2cwbyte 0 'Dlaczego po adresie do zapisu podany jest ten
rejestr ?
I2cwbyte 8 'Dlaczego nie ma tej instrukcji podczas odczytu
danych ?
I2cstop

I2cstart
I2cwbyte &HA0 'Dlaczego powtarza się drugi raz adres zapisu jeśli na
początku go oznaczono. Jakie miało znaczenie użycie adresu za pierwszym
razem a jakie w tym miejscu?
I2cwbyte 2 'Dlaczego po adresie do zapisu podany jest ten
rejestr ?
I2cwbyte S
I2cwbyte M
I2cwbyte H
I2cwbyte D
I2cwbyte Month
I2cstop




Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: I2C
Date: Sun, 11 Mar 2001 12:37:44 +0100


Marek napisał(a) w wiadomości: <98fjf1$j84$1_at_nospam_news.tpi.pl>...

nie wiem ktorego to dokladnie scalaka dotyczy ale pewnie
jakiegos PCF 8573 czy cos takiego

I2cstart
I2cwbyte &HA0 'Podany adres do zapisu. W jakim celu (mamy
odczytywać)
?


no tak ale najpierw musimy zapisac numer rejestru, ktory chcemy odczytywac


I2cwbyte 2 'Dlaczego po adresie do zapisu podany jest ten
rejestr ?

tego nie wiem
podaj na jakim to jest scalaku
zeby wiedziec do czego dany rejestr sluzy
sciagnij sobie dokumentacje do scalaka


I2cstart 'Instrukcja I2cstart występuje drugi raz.
Dlaczego ? Czemu nie zakończono pierwszą instrukcję "start" "stopem" ?


bo tak zwykle jest w protokole i2c,
stop wystepuje dopiero na koncu transmisji

zwykle jest tak (dla odczytu):

START,
wpis_adresu_urzadzenia(najmlodzy bit=write)
wpis_numeru_jakiegos_rejestru,
START
wpis_adresu_urzadzenia(najmlodszy_bit=read)
odczyt_wartosci_z_tego_rejestru
tu_moze_byc_odczyt_kolejnego_rejestru (n+1)
...
STOP


I2cwbyte &HA1 'Czy godzina i data znajdują się w tym samym miejscu
RTC że są wymienione jedna po drugiej?
I2crbyte S , Ack
I2crbyte M , Ack
I2crbyte H , Ack
I2crbyte Yd , Ack
I2crbyte Wm , Nack
I2cstop

raczej nie znajduja sie w tym samym miejscu
tylko w kolejnych rejestrach,
takie sekwencyjne odczyty powoduje, ze zwieksza
sie wewnetrzny numer rejestru
i w efekcie przy kazdym odczycie dostajesz zawartosc
kolejnej komorki (rejestru)

...


Andrzej