Thông tin tài liệu
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
1/10
Tutorialn
o
02.01
Gửiđến:
www.picvietnam.com
Nộidung:
ChuẩngiaotiếpI2C–I2CtrongPIC
MICROSOFTWORD
Tómtắt:
GiớithiệuchungvềI2C
‐ ĐặcđiểmchungvềI2C:giaothức,địachỉ
‐ Cácchếđộhoạtđộng:master‐slave,multi‐master
ModuleI2CtrongViđiềukhiểnPIC
‐ Cấutrúcphầncứng
‐ Chếđộhoạtđộng:Master,Slave,Multi‐master
1. GiớithiệuchungvềI2C
Ngàynaytrongcáchệthốngđiệntửhiệnđại,rấtnhiềuICshaythiếtbịngoạivicần
phảigiaotiếpvớicácICshaythiếtbịkhác–giaotiếpvớithếgiớibênngoài.Vóimụctiêu
đạtđượchiệuquảchophầncứngtốtnhấtvớimạchđiệnđơngiản,Phillipsđãpháttriển
mộtchuẩngiaotiếpnốitiếp2dâyđượcgọilàI2C.I2ClàtênviếttắtcủacụmtừInter‐
IntergratedCircuit–BusgiaotiếpgiữacácICvớinhau.
LịchsửI2C–Thêmvàođây…(Phầnnàysẽthêmsau…)
I2Cmặcdùđượcpháttriểnbớ
iPhilips,nhưngnóđãđượcrấtnhiềunhàsảnxuấtIC
trênthếgiớisửdụng.I2Ctrởthànhmộtchuẩncôngnghiệpchocácgiaotiếpđiềukhiển,có
thểkểrađâymộtvài
têntuổingoàiPhilipsnhư:TexasIntrument(TI),Maxim‐Dallas,
analogDevice,NationalSemiconductor…BusI2Cđượcsửdụnglàmbusgiaotiếpngoại
vichorấtnhiềuloạiICkhácnhaunhưcácloạiViđiềukhiển
8051,PIC,AVR,ARM,chíp
nhớnhưRAMtĩnh(StaticRam),EEPROM,bộchuyểnđổitươngtựsố(ADC),sốtươngtụ
(DAC),ICđiểukhiểnLCD,LED…
Hình1.1.BUSI2Cvàcácthiếtbịngoạivi
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
2/10
1.1. ĐặcđiểmgiaotiếpI2C
MộtgiaotiếpI2Cgồmcó2dây:SerialData(SDA)vàSerialClock(SCL).SDAlàđường
truyềndữliệu2hướng,cònSCLlàđườngtruyềnxungđồnghồvàchỉtheomộthướng.
Nhưhìnhvẽtrên,khimộtthiếtb ịngoạivikếtnốivàođườngI2CthìchânSDAcủanósẽ
nốivớidâySDAcủabus,chânSCLsẽnốivớidâySCL.
Hình1.2.KếtnốithiếtbịvàobusI2Cởchếđộchuẩn(Standardmode)
vàchếđộnhanh(Fastmode)
MỗidâySDAhaySCLđềuđượcnốivớiđiệnápdươngcủanguồncấpthôngquamột
điệntrởkéolên(pull‐upresistor).Sựcầnthiếtcủacácđiệntrởkéonàylàvìchângiaotiếp
I2Ccủacácthiếtbịngoạivithườnglàdạngcựcmánghở(open‐drainoropen‐collector).
Giátrịcủacácđiệntrởnàykhácnhautùyvàotừngthiếtbịvàchuẩngiaotiếp,thườngdao
độngtrongkhoảng1KΩđến4.7KΩ.
Trởlạivớihình1.1,tathấycórấtnhiềuthiếtbị(ICs)cùngđượckếtnốivàomộtbus
I2C,tuynhiênsẽkhôngxảyrachuyệnnhầmlẫngiữacácthiếtbị,bởimỗithiếtbịsẽđược
nhậnrabởimột
địachỉduynhấtvớimộtquanhệchủ/tớtồntạitrongsuốtthờigiankết
nối.Mỗithiếtbịcóthểhoạtđôngnhưlàthiếtbịnhậndữliệuhaycóthể
vừatruyềnvừa
nhận.Hoạtđộngtruyềnhaynhậncòntùythuộcvàoviệcthiếtbịđólàchủ(master)haytớ
(slave).
MộtthiếtbịhaymộtICkhikếtnốivớibusI2C,
ngoàimộtđịachỉ(duynhất)đểphân
biệt,nócònđượccấuhìnhlàthiếtbịchủ(master)haytớ(slave).Tạisaolạicósựphânbiệt
này?ĐólàvìtrênmộtbusI2Cthìquyềnđiềukhiểnthuộcvềthiếtbịchủ(master).Thiếtbị
chủnắmvaitròtạoxungđồnghồchotoànhệthống,khigiữahaithiếtbịchủ/tớgiaotiếp
thìthiếtbịchủcónhiệmvụt
ạoxungđồnghồvàquảnlýđịachỉcủathiếtbịtớtrongsuốt
quátrìnhgiaotiếp.Thiếtbịchủgiữvaitròchủđộng,cònthiếtbịtớgiữvaitròbịđộng
trongviêcgiaotiếp.
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
3/10
Hình1.3.Truyềnnhậndữliệugiữachủ/tớ
Nhìnhìnhtrêntathấyxungđồnghồchỉcóm ộthướngtừchủđếntớ,cònluồngdữliệu
cóthểđitheohaihướng,từchủđếntớhayngượclạitớđếnchủ.
VềdữliệutruyềntrênbusI2C,mộtbusI2Cchuẩntruyền8‐bitdữliệucóhướngtrên
đườngtruyềnvớitốcđộlà100Kbits/s–Chếđộchuẩn(Standardmode).Tốcđộtruyềncó
thểlêntới400Kbits/s–Chếđộnhanh(Fastmode)vàcaonhấtlà3,4Mbits/s–Chếđộcao
tốc(High‐speedmode).
MộtbusI2Ccóthểhoạtđộngởnhiềuchếđộkhácnhau:
- Mộtchủmộttớ(onemaster–oneslave)
- Mộtchủnhiềutớ(onemaster–multislave)
- Nhiềuchủnhiềutớ(Multimaster–multislave)
Dùởchếđộnào,mộtgiaotiếpI2Cđều dựavàoquanhệchủ/tớ.Giảthiếtmộtthiếtb ịA
muốngửidữliệuđếnthiếtbịB,quátrìnhđượcthựchiệnnhưsau:
‐ ThiếtbịA(Chủ)xácđịnhđúngđịachỉcủathiếtbịB(tớ),cừngvớiviệcxácđịnh
địachỉ,thiếtbịAsẽquyếtđịnhviệcđọchayghivàothiếtbịtớ
‐ ThiếtbịAgửidữliệutớithiếtbịB
‐ ThiếtbịAkếtthúcquátrìnhtruyềndữliệu
KhiAmuốnnhậndữliệutừB,quátrìnhdiễnranhưtrên,chỉkháclàAsẽnhậndữliệu
từB.Tronggiaotiếpnày,AlàchủcònBvẫnlàtớ.
Chitiếtviệcthiếtlậpmộtgiaotiếpgiữa
haithiếtbịsẽđượcmôtảchitiếttrongcácmụcdướiđây.
1.2. STARTandSTOPconditions
STARTvàSTOPlànhữngđiềukiệnbắtbuộcphảicókhimộtthiếtbịchủmuốnthiết
lậpgiaotiếpvớimộtthiếtbịnàođótrongmạngI2C.STARTlàđiềukiệnkhởiđầu,báo
hiệubắtđầucủagiaotiếp,cònSTOPbáohiệukếtthúcmộtgiaotiếp.Hìnhdướiđâymôtả
điềukiệnSTARTvàSTOP.
Banđầukhichưathựchiện
quátrìnhgiaotiếp,cảhaiđườngSDAvàSCLđềuởmức
cao(SDA=SCL=HIGH).LúcnàybusI2Cđượccoilàdỗi(“busfree”),sẵnsàngchomột
giaotiếp.HaiđiềukiệnSTARTvàSTOP
làkhôngthểthiếutrongviệcgiaotiếpgiữacác
thiếtbịI2Cvớinhau
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
4/10
Hình1.4.ĐiềukiệnSTARTvàSTOPcủabusI2C
ĐiềukiệnSTART:mộtsựchuyểnđổitrạngtháitừcaoxuốngthấptrênđườngSDA
trongkhiđườngSCLđangởmứccao(cao=1;thấp=
0)báohiệumộtđiềukiệnSTART
ĐiềukiệnSTOP:MộtsựchuyểnđổitrạngtháitừmứcthấplêncaotrênđườngSDA
trongkhiđườngSCLđangởmứccao.
CảhaiđiềukiệnSTART
vàSTOPđềuđượctạorabởithiếtbịchủ.SautínhiệuSTART,
busI2Ccoinhưđangtrongtrangtháilàmviệc(busy).BusI2Csẽrỗi,sẵnsàngchomột
giaotiếpmớisautínhiệuSTOPtừphíathiếtbịchủ.
SaukhicómộtđiềukiệnSTART,trongquatrìnhgiaotiếp,khicómộttínhiệuSTART
đượclặplạithayvìmộttínhiệuSTOPthìbusI2Cvẫntiếptụctrongtrạngtháibận.Tín
hiệuSTARTvàlặplạiSTARTđềucóchứcnănggiốngnhaulàkhởitạomộtgiaotiếp.
1.3. Địnhdạngdữliệutruyền
DữliệuđượctruyềntrênbusI2Ctheotừngbit,bitdữliệuđượctruyềnđitạimỗisườn
dươngcủaxungđồnghồtrêndâySCL,quátrìnhthayđổibitdữliệuxảyrakhiSCLđang
ởmứcthấp.
Hình1.5.Quátrìnhtruyền1bitdữliệu
Mỗibytedữliệuđượctruyềncóđộdàilà8bits.Sốlượngbytecóthểtruyềntrongmột
lầnlàkhônghạnchế.MỗibyteđượctruyềnđitheosaulàmộtbitACKđểbáohiệuđã
nhậndữliệu.Bitcótrọngsốcaonhất(MSB)sẽđượctruyềnđiđầutiên,cácbítsẽđược
truyềnđilầnlượt.Sau8xungclocktrêndâySCL,8bitdữliệuđãđượctruyềnđi.Lúcnày
thiếtbịnhận,saukhiđãnhậnđủ8bítdữliệusẽkéoSDAxuốngmứcthấptạomộtxung
ACKứngvớixungclockthứ9trên
dâySDAđểbáohiệuđãnhậnđủ8bit.Thiếtbịtruyền
khinhậnđượcbitACKsẽtiếptụcthựchiệnquátrìnhtruyềnhoặckếtthúc.
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
5/10
Hình1.6.DữliệutruyềntrênbusI2C
Hình1.7.BitACKtrênbusI2C
TruyềnNhận
Hình1.8.Lưuđồthuậttoánquátrìnhtruyêngnhậndữliệu
Buffer=databit
BufferFull?
ReadBuffer
SendACK
NO
YES
SDA=data_bit
Clock=8?
ACK?
Next_byte
or STOP
STOP
NO
NO
YES
YES
Kiểmtraxem
đãtruyềnđủ
8
b
i
tch
ưa
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
6/10
MộtbytetruyềnđicókèmtheobitACKlàđiềukiênbắtbuộc,nhằmđảmbảochoquá
trìnhtruyềnnhậnđượcdiễnrachínhxác.Khikhôngnhậnđượcđúngđịachỉhaykhi
muốnkế
tthúcquátrìnhgiaotiếp,thiếtbịnhậnsẽgửimộtxungNot‐ACK(SDAởmức
cao)đểbáochothiếtbịchủbiết,thiếtbịchủsẽtạoxungSTOPđểkếtthúchaylặplạimột
xungSTARTđểbắtđầuquátrìnhmới.
1.4. Địnhdạngđịachỉthiếtbị
Mỗithiếtbịngoạivithamgiavàobusi2cđềucómộtđịachỉduynhất,nhằmphânbiệt
giữacácthiếtbịvớinhau.Độdàiđịachỉlà7–bit,điềuđócónghĩalàtrênmộtbusI2Cta
cóthểphânbiệttốiđa128thiếtbị.Khithiếtbịchủmuốngiaotiếpvớingoạivinàotrênbus
I2C,nósẽgửi7bitđịachỉcủathiếtbịđ
órabusngaysauxungSTART.Byteđầutiênđược
gửisẽbaogồm7bitđịachỉvàmộtbítthứ8điềukhiểnhướngtruyền.
Hình1.8.Cấutrúcbytedữliệuđầutiên
Mỗimộtthiếtbịngoạivisẽcómộtđịachỉriêngdonhàsảnxuấtranóquyđịnh.Địachỉ
đócóthểlàcốđịnhhaythayđổi.Riêngbitđiềukhiểnhướngsẽquyđịnhchiềutruyềndữ
liệu.Nếubitnàybằng“0”cónghĩalàbytedữliệutiếptheosausẽđượctruyềntừchủđến
tớ,cònngượclạinếubằng“1”thìcácbytetheosaubyteđầutiênsẽlàdữliệutừcontớgửi
đếnconchủ.Việcthiếtlậpgiátrịchobitnàydoconchủthihành,contớsẽtùytheogiátrị
đómàcósựphảnhồitươngứngđếnconchủ.
1.5. TruyềndữliệutrênbusI2C,chếđộMaster‐Slave
Việctruyềndữliệudiễnragiữaconchủvàcontớ.Dữliệutruyềncóthểtheo2hướng,
từchủđếntớhayngượclại.Hướngtruyềnđượcquyđịnhbởibitthứ8
trongbyteđầu
tiênđượctruyềnđi.
Hình1.9.Quátrìnhtruyềndữliệu
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
7/10
• Truyềndữliệutừchủđếntớ(ghidữliệu):Thiếtbịchủkhimuốnghidữliệuđến
contớ,quátrìnhthựchiệnlà:
‐ ThiếtbịchủtạoxungSTART
‐ Thiếtbịchủgửiđịachỉcủathiếtbịtớmànócầngiaotiếpcùngvớibit
=0rabusvàđợixungACKphảnhồitừcontớ
‐ KhinhậnđượcxungACKbáođãnhậndiệnđúngthiếtbịtớ,conchủbắt
đầugửidữliệuđếncontớtheotừngbytemột.Theosaumỗibytenàyđều
làmộtxungACK.Sốlượngbytetruyềnlàkhônghạnchế.
‐ Kếtthúcquátrìnhtruyền,conchủsaukhitruyềnbytecuốisẽtạoxung
STOPbáohiệukếtthúc.
Hình1.10.Ghidữliệutừchủđếntớ
• Truyềndữliệutừtớđếnchủ(đọcdữliệu):Thiếtbịchủmuốnđọcdữliệutừthiếtbị
tớ,quátrìnhthựchiệnnhưsau:
‐ Khibusrỗi,thiếtbịchủtạoxungSTART,báohiệubắtđầugiaotiếp
‐ Thiếtbịchủgửiđịachỉcủathiếtbịtớcầngiaotiếpcùngvớibit =1và
đợixungACKtừphíathiếtbịtớ
‐ SauxungACKdầutiên,thiếtbịtớsẽgửitừngbyterabus,thiếtbịchủsẽ
nhậndữliệuvàtrảvềxungACK.Sốlượngbyte
khônghạnchế
‐ Khimuốnkếtthúcquátrìnhgiaotiếp,thiếtbịchủgửixungNot‐ACKvà
tạoxungSTOPđểkếtthúc.
Hình1.11.Đọcdữliệutừthiếtbịtớ
• Quátrìnhkếthợpghivàđọcdữliệu:giữahaixungSTARTvàSTOP,thiếtbịchủcó
thểthựchiệnviệcđọchayghinhiềulần,vớimộthaynhiềuthiếtbị.Đểthựchiện
việcđó,saumộtquátrìnhghihayđọc,thiếtbịchủlặplạimộtxungSTARTvàlại
gửilạiđịachỉcủathiết
bịtớvàbắtđầumộtquátrìnhmới.
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
8/10
Hình1.12.Quátrìnhphốihợpđọc/ghidữliệu
ChếđộgiaotiếpMaster‐SlavelàchếđộcơbảntrongmộtbusI2C,toànbộbusđược
quảnlýbởimộtmasterduynhất.Trongchếđộnàysẽkhôngxảyra
tìnhtrạngxungđột
bushaymấtđồngbộxungclockvìchỉcómộtmasterduynhấtcóthểtạoxungclock.
1.6. ChếđộMulti‐Master
TrênbusI2Ccóthểcónhiềuhơnmộtmasterđiềukhiểnbus.KhiđóbusI2Csẽhoạt
độngởchếđộMulti‐Master.
Vấnđềnàysẽđượcbànthảosau.
2. ModuleI2CtrongViđiềukhiểnPIC
Vớinhữngtiệníchđemlại,khốigiaotiếpI2Cđãđượctíchhợpcứngtrongkhánhiều
loạiViđiềukhiểnkhácnhau.TrongcácloạiViđiềukhiểnPICdòngMid‐rangephổbiến
tạiViệtNam,chỉtừ16F88mớicóhỗtrợphầncứngI2C,còncácloại16F84,16F628thì
khôngcó.VớinhữngloạiViđiềukhiểnkhôngcóhỗtrợphầncứnggiaotiếpI2C,đểsử
dụngtacóthểdùngphầnmềmlậptrình,khiđótasẽviếtmộtchươngtrinhdiềukhiển2
chânbấtkỳcủaViđiềukhiểnđểnóthựchiệngiaotiếpI2C
(cáchàmSTART,STOP,
WRITE,READ).TrongbàiviếtnàytađềcậpđếnviệcsửdụnggiaotiếpI2Ccủacácloại
PICcótíchhợpkhốiI2Csẵntrongnó,màcụthểlàViđiềukhiển
PIC16F877A.
2.1. Đặcđiểmphầncứng
HìnhdướiđâychỉracấutrúcphầncứngcủakhốiđiềukhiểnGiaotiếpnốitiếpđồngbộ
(MSSP)hoạtđộngởchếđộI2C.KhốiI2Ccódầyđủchứcnăng,hoạtđộngởcả2chếđộlà
MASTER(chủ)vàSLAVE(tớ),cóngắtxảyrakhicóđiềukiệnSTARThaySTOPxảyra,
nhằmđịnhrõđườngI2Ccódỗihaykhônơng(chứcnăngMulti‐master).Chếđộđịachỉ
có
thểlà7‐bithay10‐bit.
KhốiI2Ccó6thanhghiđiềukhiểnhoạtđộng,đólà:
‐ SSPCON:Thanhghiđiềukhiển
‐ SSPCON2:Thanhghiđiềukhiểnthứ2
‐ SSPSTAT:Thanhghitrạngthái
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
9/10
‐ SSPBUF:Thanhghibộđệmtruyềnnhận
‐ SSPSR:Thanhghidịch
‐ SSPADD:Thanhghiđịachỉ
CácthanhghiSSPCON,SSPBUF,SSPADDvàSSPSON2cóthểtruycậpđọc/ghiđược.
ThanhghiSSPSRkhôngthểtruycậptrựctiếp,làthanhghidichdữliệurahayvào.Các
thanhghiSSPCON,SSPCON2vàSSPSTATđượcđịnhđịachỉbit,mỗibitcóchứcnăng
riêng.Ýnghĩacủatừngthanhghivàcủamỗibittrongtừngthanhghiđãđượcđềcậpkỹ
trongtàiliệuDatasheetcủaPICvàtrongtàiliệuTUT04.02.PVN.MAFDcủabạnMạnh,tôi
khôngđềcậpthêmởđây.TrongtàiliệunaygtôisẽtậptrungvàoviệcsửdụngkhốiI2C
củaPICởcácchếđộMastervàSlavetrongphầnmềmbiêndịchCchoPIClàCCS
Hình2.1.CấutrúckhốiI2CtrongPIC
2.2. CáchthứcsửdụngModuleI2CtrongCCS
TrongviệclậptrìnhchoPICsửdụnggiaotiếpI2Ccủanótrongcácứngdụng,người
lậptrìnhcóthểthựchiệnmộtcáchdễdàngvớitrìnhdịchCCS.Nóidễdàngởđâylàchỉvề
mặtcúpháplệnh,takhôngcầnsửdụngnhiềucâulệnhkhónhớnhưtronglậptrìnhASM.
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
10/10
Việckhởitạo,chọnchếđộhoạtđộngvàthựchiệngiaotiếpcủaI2Cđãcócáchàmdựng
sẵncủaCCSthựchiện.CáchàmliệtkêdướiđâylàcủaphiênbảnCCS3.242,đólà:
‐ i2c_isr_state():ThôngbáotrạngtháigiaotiếpI2C
‐ i2c_start():TạođiềukiệnSTART
‐ i2c_stop():TạođiềukiệnSTOP
‐ i2c_read():ĐọcgiátrịtừthiếtbịI2C,trảvềgiátrị8bit
‐ i2c_write():Ghigiátrị8bitđếnthiếtbịI2C
ĐểsửdụngkhốiI2Ctasửdụngkhaibáosau:
#usei2c(chế_độ,tốcđộ,sda=PIN_C4,scl=PIN_C3)
‐ Chếđộ:MasterhaySlave
‐ Tốcđộ:Slow(100KHz)hayFast(400KHz)
‐ SDAvàSCLlàcácchâni2ctươngứngcủaPIC
Saukhaibáotrên,tacóthểsửdụngcáchàmnêutrênđểthựchiện,xửlýcácgiaotiếp
i2cvớicácthiếtbịngoạivikhác.
Còntiếpnữa…
3. Kếtluận
.
Tutorialn
o
02.01
Gửiđến:
www.picvietnam.com
Nộidung:
Chuẩn giao tiếp I2C – I2C trong PIC
MICROSOFTWORD
Tómtắt:
Giớithiệuchungvề I2C
‐ Đặcđiểmchungvề I2C: giao thức,địachỉ
‐. SSPADD:Thanhghiđịachỉ
CácthanhghiSSPCON,SSPBUF,SSPADDvàSSPSON2cóthểtruycậpđọc/ghiđược.
ThanhghiSSPSRkhôngthểtruycậptrực tiếp, làthanhghidichdữliệurahayvào.Các
thanhghiSSPCON,SSPCON2vàSSPSTATđượcđịnhđịachỉbit,mỗibitcóchứcnăng
riêng.Ýnghĩacủatừngthanhghivàcủamỗibit trong từngthanhghiđãđượcđềcậpkỹ
trong tàiliệuDatasheetcủa PIC và trong tàiliệuTUT04.02.PVN.MAFDcủabạnMạnh,tôi
khôngđềcậpthêmởđây. Trong tàiliệunaygtôisẽtậptrungvàoviệcsửdụngkhối I2C
của PIC ởcácchếđộMastervàSlave trong phầnmềmbiêndịchCcho PIC làCCS
Hình2.1.Cấutrúckhối I2C trong PIC
2.2. CáchthứcsửdụngModule I2C trong CCS
Trong việclậptrìnhcho PIC sửdụng giao tiếp I2C củanó trong cácứngdụng,người
lậptrìnhcóthểthựchiệnmộtcáchdễdàngvớitrìnhdịchCCS.Nóidễdàngởđâylàchỉvề
mặtcúpháplệnh,takhôngcầnsửdụngnhiềucâulệnhkhónhớnhư trong lậptrìnhASM.
Ngườibáocáo:
NguyễnChíLinh
Tàiliệu:
TUT02.01
Ngày:
9/8/2006
Trang:
10/10
Ngày đăng: 23/03/2014, 14:20
Xem thêm: chuẩn giao tiếp I2C trong pic ppt, chuẩn giao tiếp I2C trong pic ppt