Đặc điểm của l2C The Future is Now Vv 2 day: Serial Data SDA va Serial Clock SCL Y SDA la duéng truyén di ligu 2 hướng, còn SCL là đường truyền xung đồng hồ và chỉ theo một hướng Mỗi
Trang 1
Bai 8: I2C
The Future is Now
Noi dung
« J2C
* Ứng dụng giao tiếp I2C
= Pa
<
ay
ra
—
"
<
=
=
a
Trang 2
Vv |2C-Inter Intergrated Circuit- do hang Phillips phat
trién Nhiều nhà sản xuất IC trên thé giới st’ dung: Texas
Intrument (Tl), Maxim Dallas, Analog Device, National semiconductor
Address 2
SCL
= ra
=
Oo
Z
—
=
<
=
=
a
>
Trang 3
Đặc điểm của l2C
The Future is Now
Vv 2 day: Serial Data (SDA) va Serial Clock (SCL)
Y SDA la duéng truyén di ligu 2 hướng, còn SCL là đường truyền xung đồng hồ và chỉ theo một hướng Mỗi dây SDA hay SCL đều được nỗi với điện áp dương của nguôn cấp thông qua một điện trở kéo lên
vx Mỗi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất
* Câu hình là thiết bị chủ (master) hay tớ (slave) , quyên
điều khiên thuộc về thiết bị chủ
> Pa
`
ay
Z
—
I
x
=
=
a
Transmitter | Receiver Receiver Transmitter
www.dks.edu.vn
Trang 4
Dac diem Cua I2C The Future is Now
Y Téc dé : 100Kbits/s — Ché d6 chuan (Standard mode)
400Kbits/s — Chê độ nhanh (Fast mode) 3,4Mbits/s — Che do cao toc (High speed mode)
VY Ché do:
- Một chủ mét to (one master — one slave)
- Một chủ nhiéu té (one master — multi slave)
- Nhiều chủ nhiều tớ (Multi master — multi slave)
>¬ ề
VI
ĐIEU
KHIEN
PIC
www.dks.edu.vn
Trang 5START and STOP @g
-
DA 1 \ | / \ | / | SDA
I 3 | | P|
START condition STOP condition -
as
Y Biéu kién START mét sw chuyén doi trang thái từ cao
xuông thâp trên đường SDA trong khi đường SCL đang ở
mức cao
= Pa
_ Điêu kiện STOP: Một sự chuyên đổi trạng thái từ mức
thâp lên cao trên đường SDA trong khi đường SCL đang ở
mức cao
www.dks.edu.vn
<
ay
Z
—
I
x
=
=
a
>
Trang 6
Dữ liệu truyen The Future fe Now
oata ine | change |
stabe: | ofdata | data vaio | allowed | MECS2(
Bit dữ liệu được truyền đi tại mỗi sườn dương của xung
đông hô trên dây SCL
= Pa
VI
DIEU
KHIEN
PIC
Trang 7
The Future is Now
* Sau 8 xung clock trên dây SCL, 8 bit dữ liệu đã được
truyền đỉi
Thiết bị nhận, sau khi đã nhận đủ 8 bít dữ liệu sẽ kéo
SDA xuống mức thập tạo một xung ACK Thiết bị truyền khi nhận được bit ACK sé tiép tuc thực hiện quá trình truyền hoặc kết thúc
= Pa
VI
DIEU
KHIEN
PIC
www.dks.edu.vn
Trang 8>
= ra
`
Oo
Z
—
=
<
=
=
a
>
The Future is Now
Truyền
{
SDA = data_bit
eS sô, —— ÐÚU
da truyén đủ
§ bit chưa
Next_byte
or STOP
|
STOP
Nhân
Y
Butter = databit
BufferFull ?
YES
| Send ACK
+ Read Butter
www.dks.edu.vn
Trang 9Dinh dang dia chi thiét bi
The Future is Now
Khi thiết bị chủ muôn giao tiếp với ngoại vi nào trên
bus I2C, no sé gửi 7 bit địa chỉ của thiết bị đó ra bus ngay sau xung START
Y Byte dau tiên được gửi sẽ bao gồm 7 bit địa chỉ và một bít thứ 8 điều khiên hướng truyên (“0”- ghi, “1”- đọc)
Mỗi một thiết bị ngoại vi sẽ có một địa chỉ riêng do nhà
sản xuất ra nó quy định
> Pa
VI
DIEU
KHIEN
PIC
www.dks.edu.vn
Trang 10
The Future is Now
Truyền dữ liệu từ chủ đến tớ ( ghi dữ liệu)
y SAY SLAVE ADDRESS WV RIWA A WDATAY A Y DATAW AR PY
— | L— data transferred —_]
0 (write) in bytes + acknowledge)
omar
acknow edge (SDA LOW)
not acknowledge (SOA HIGH)
START condition STOP condition
Truyền dữ liệu từ tớ đến chủ (đọc dữ liệu)
from master to save
L_] from slave to master
MECHOS
sz FSAFEEELEFELEALESV J 422, “ướ VASE So,
YS 47 SLAVE ADDRESS A7RWA A | DATA LAY DATA VÃ4/?2
rr LLMLLLAL ALAA AAA MM hh MM he LiL Ct MLL
| — data trans*erred _ MECEOS (reas) n bytes + acknowledge)
=
0
=
ee
Ie
<
=
—
im
= ITE EE [AE ae ee LE,
Linbyes | Linvyes _|
* *
reacorwrte * 3K) + ack.)
of transfer may change oom a Sr = repeated START condition at this point
daa and acanowledge bs A9CS07
depends on RF pits
www.dks.edu.vn
Trang 11I2C- PIC16F8/77A
The Future is Now
FIGURE 9-7: MSSP BLOCK DIAGRAM
(I2¢ MODE)
‹ Internal
Data Bus
Read WN VWrite
RC3/SCK/SCL SSPBUF reg
fh
Clock ‘ S Z
<<~ SSPSR reg ~
spa | | >
_—— `
Match Detect —e Addr Match
SSPADD reg
Set, Reset
>> S.P bits (SSPSTAT reg)
Start and Stop bit Detect
VI
DIEU
KHIEN
PIC
www.dks.edu.vn
Trang 12Cac thanh ghi
The Future is Now
- SSPCON: Thanh ghi diéu khién
- SSPCON2: Thanh ghi diéu khién thứ 2
- SSPSTAT: Thanh ghi trang thai
- SSPBUF: Thanh ghi b6 dém truyén nhan
- SSPSR: Thanh ghi dich
- SSPADD: Thanh ghi dia chi
> Pa
`
ay
Z
—
I
x
=
=
a
>
www.dks.edu.vn
Trang 13
The Future is Now
E* CCS C Compiler
e =
Hide Back Forward Print
=) Q Functional Overviews (Aa)
Fre +_— my ize |=
=] Abc
B Analog Comparator | | $ 2 x £ i
=) CAN Bus I2C™ js a popular two-wire communication protocol developed by Phillips Many PIC
I=ì CCP1 tmicracnntrollers suppnrf hardware-hased I2CT*, CCS8 offers support for the hardware-based
=) ccp2 ccp3 ccp4 c| I2C™ and a software-based master I2C™ device (For more information on the hardware-based —)
=] Confickiration Menor I2C module, please consult the datasheet for you target device; not all PICs support I2C0™ 4}
=] Da Relevant Functions:
=| External Memory |: :
=] General Purpose lO = 2c startO Issuesa Start command when In the I2C master mode
=) Internal LCD i2c_ write(data) Sends a single byte over the I2C interface
=] Internal Oscillator i2c_readgQ Reads a byte over the I2C interface
=] Interrupts i2c_stopoQ Issues a stop command when in the l2C master mode
=) Linker i2c_pollg Returns a TRUE ifthe hardware has received a byte in the
=] Low Voltage Detect | buffer
=] Power PYM \_ yl
=] Program Eeprom Relevant Preprocessor:
=) psp #use i2c Configures the compiler to support !l2C™ to your
=] RS232 WO specifications
=] RTOS
=) spi Relevant Interrupts:
=) TimeroO #INT_SSP 12C or SPI activity
=] Timer1 #INT_BUSCOL Bus Collision
2] Timer2 im] #INT_I2C I2C Interrupt (Only on 14000) 4
III
www.dks.edu.vn
Trang 14A
The Future is Now
#tuse i2c(ché d6, t6c dé, sda = PIN C4, scl=PIN C3 )
Ché do: Master, multi master hay Slave Tốc d6: Slow (100KHz) hay Fast (400KHz)
SDA va SCL là các chân I2c tương ứng của PIC
-i2c_isr_state(): Théng bao trang thai giao tiép 12C
- i2c_start(): Tao diéu kién START( master mode) -i2c_stop(): Tao diéu kién STOP( master mode) -i2c_read(): Doc giá trị từ thiết bị I2C, trả về giá trị 8 bit
-i2c_write(): Ghi giá trị 8 bit đến thiết bị I2C -i2c_ poll(): trả về TRUE nếu đã nhận được 1 byte trong
bộ đệm
www.dks.edu.vn
> Pa
<
ay
Z
—
I
<
=
=
a
>
Trang 15>
= Pa
=
a
“
—
a
<
=)
=
G)
=
Bal toan
The Future is Now
VDD
" 1
[=| RESY RES]
VDD
| +
4.7K
A ¿+ SDA 114 pba
Ùh ` SQW/JOUIT =e SCL
DS1307(8)
sa len BTI —
BATTERY 3V
[]-
2 39 768KHz
www.dks.edu.vn
Trang 16Sơ đồ
The Future is Now
Hiển thị ra may tính thời gian
|
>
=
= Khoi tạo I2C ỚI1 Tao
“
ri |
mm
`“ Khoi tao DS1307
—_
Q Thiết lập thời gian
BH cho DS1307
>
Đọc thời gian tử
DS150?
www.dks.edu.vn
Trang 17
The Future is Now
#include <16F8//a.h>
#device adc=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000,RESTART_WDT)
#use rs232(baud=9600, parity=N,xmit=PIN_C6,rcv=PIN_C/7,bits=8)
#include <ds1307.c>
void main()
{
int8 sec,min, hrs,day,month, yr,dow;
ds1307_init();// khoi tao /ƒ Set date : 29-8-2008 //¡ Set time : thứ 6 - 10 giờ, 10 phút 10 giây ds1307_ set _date_time(29,8,8,6,10,10,10);
while(1)
{
> Pa
VI
DIEU
KHIEN
PIC
delay_ms(1000);
ds1307_ get_time(hrs,min,sec);
printf('Ngay:%02dA3%02dA3%02dtn",day,month,yr);
printf("Thoi gian:%02dA%02dA%02d\r\n"", hrs,min,sec);
}
Trang 18
Giao tiệp giữa 2 vi điều khiển PIC: Master gửi 1 byte
xudng Slave, Slave nhan va hién thị lên PORTB Giá trị này lại được gửi lại cho Master, Master nhận và
hién thi
= Pa
VI
DIEU
KHIEN
PIC
www.dks.edu.vn