chuẩn giao tiếp i2c - cách kết nối giữa các ic với nhau

10
http://codientu.org Tác gi: Nguyn Chí Linh Tóm t ắ t: Gii thiệ u chung vI2C Đặ c đ iể m chung vI2C:  giao thứ c, địa ch Cc chế độ hot độ ng: masterslave, multi master  Module I2C trong Vi đ iề u khiể n PIC Cấ u trc  phầ n cứ ng Chế độ hot độ ng:  Master,  Slave,  Multi master 1. Gii thiu chung v  ề I2C Ngày nay trong các hthố ng đin thin đại, rấ t nhi  ều ICs hay thiế t  bngoi vi c  ần phi giao tiế p vi các ICs hay thiế t  bkhác  giao tiế p vi thế gii  bên ngoài. Vói mc tiêu đạt được hiu qucho ph  ần cng tố t nhấ t vi mch đin đơn gin, Phillips đã phát triể n mt chuẩ n giao tiế p nố i tiế p 2 dây được gi  I2C. I2C là tên viế t tt ca cm tInter ‐ Intergrated Circuit  Bus giao tiế p gia các IC vi nhau. Lch sI2C  Thêm vào đây…(Ph  ần này sthêm sau…) I2C mc  được phát triể n  bi Philips, nhưng  đã được rấ t nhi  ều nhà sn xuấ t IC trên thế gii sdng. I2C trthành mt chuẩ n công nghip cho các giao tiế p đi  ều khiể n,  thkra đây mt vài tên tuổ i ngoài Philips như: Texas Intrument (TI), MaximDallas, analog Device, National Semiconductor  Bus I2C được sdng làm  bus giao tiế p ngoi vi cho rấ t nhi  ều loi IC khác nhau như các loi Vi  đi  ều khiể n 8051, PIC, AVR, ARM, chíp nhnhư RAM t  ĩ nh (Static Ram), EEPROM,  bchuyể n đổ i tương ts(ADC), stương t(DAC), IC điể u khiể n LCD, LED…  Hình 1.1. BUS I2C  các thiế  t  bngoi vi 

Upload: tho-huynh-doan

Post on 10-Feb-2018

237 views

Category:

Documents


2 download

TRANSCRIPT

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 1/10

http://codientu.org Tác giả: Nguyễn Chí Linh

Tóm t ắ t: Giới thiệ u chung về I2C

‐ Đặ c đ iể m chung về I2C: giao thứ c, địa chỉ ‐ Cc chế độ hoạt độ ng: master‐slave, multi‐master Module I2C trong Vi đ iề u khiể n PIC ‐ Cấ u trc phầ n cứ ng ‐ Chế độ hoạt độ ng: Master, Slave, Multi‐master

1. Giới thiệu chung v ề I2C

Ngày nay trong các hệ thố ng điện tử hiện đại, rấ t nhi ều ICs hay thiế t bị ngoại vi c ần phải giao tiế p với các ICs hay thiế t bị khác – giao tiế p với thế giới bên ngoài. Vói mục tiêu

đạt được hiệu quả cho ph ần cứng tố t nhấ t với mạch điện đơn giản, Phillips đã phát triể n một chuẩ n giao tiế p nố i tiế p 2 dây được gọi là I2C. I2C là tên viế t tắt của cụm từ Inter ‐Intergrated Circuit – Bus giao tiế p giữa các IC với nhau.

Lịch sử I2C – Thêm vào đây…(Ph ần này sẽ thêm sau…)

I2C mặc dù được phát triể n bới Philips, nhưng nó đã được rấ t nhi ều nhà sản xuấ t IC trên thế giới sử dụng. I2C trở thành một chuẩ n công nghiệp cho các giao tiế p đi ều khiể n, cóthể kể ra đây một vài tên tuổ i ngoài Philips như: Texas Intrument (TI), Maxim‐Dallas, analog Device, National Semiconductor … Bus I2C được sử dụng làm bus giao tiế p ngoại vi cho rấ t nhi ều loại IC khác nhau như các loại Vi đi ều khiể n 8051, PIC, AVR, ARM, chíp

nhớ như RAM t ĩ nh (Static Ram), EEPROM, bộ chuyể n đổ i tương tự số (ADC), số tương tụ(DAC), IC điể u khiể n LCD, LED…

Hình 1.1. BUS I2C và các thiế t bị ngoại vi

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 2/10

http://codientu.org Tác giả: Nguyễn Chí Linh

1.1. Đặc điể m giao tiế p I2C

Một giao tiế p I2C g ồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL). SDA là đường

truy ền dữ liệu 2 hướng, còn SCL là đường truy ền xung đồng h ồ và chỉ theo một hướng. Như hình vẽ trên, khi một thiế t bị ngoại vi kế t nố i vào đường I2C thì chân SDA của nó sẽnố i với dây SDA của bus, chân SCL sẽ nố i với dây SCL.

Hình 1.2. K ế t nố i thiế t bị vào bus I2C ở chế độ chuẩ n (Standard mode)

và chế độ nhanh (Fast mode)

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 (pull‐up resistor). Sự c ần thiế t của các điện trở kéo này là vì chân giao tiế p I2C của các thiế t bị ngoại vi thường là dạng cực máng hở (open‐drain or open‐collector). Giá trị của các điện trở này khác nhau tùy vào từng thiế t bị và chuẩ n giao tiế p, thường dao động trong khoảng 1KΩ đế n 4.7KΩ.

Trở lại với hình 1.1, ta thấ y có rấ t nhi ều thiế t bị (ICs) cùng được kế t nố i vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nh ầm lẫn giữa các thiế t bị , bởi mỗi thiế t bị sẽ được nhận ra bởi một địa chỉ duy nhấ t với một quan hệ chủ/tớ t ồn tại trong suố t thời gian kế t nố i. Mỗi thiế t bị có thể hoạt đông như là thiế t bị nhận dữ liệu hay có thể vừa truy ền vừa nhận. Hoạt động truy ền hay nhận còn tùy thuộc vào việc thiế t bị đó là chủ (master) hay tớ(slave).

Một thiế t bị hay một IC khi kế t nố i với bus I2C, ngoài một địa chỉ (duy nhấ t) để phân biệt, nó còn được cấ u hình là thiế t bị chủ (master) hay tớ (slave). Tại sao lại có sự phân biệt này ? Đó là vì trên một bus I2C thì quy ền đi ều khiể n thuộc v ề thiế t bị chủ (master). Thiế t bịchủ nắm vai trò tạo xung đồng h ồ cho toàn hệ thố ng, khi giữa hai thiế t bị chủ/tớ giao tiế p thì thiế t bị chủ có nhiệm vụ tạo xung đồng h ồ và quản lý địa chỉ của thiế t bị tớ trong suố t quá trình giao tiế p. Thiế t bị chủ giữ vai trò chủ động, còn thiế t bị tớ giữ vai trò bị động trong viêc giao tiế p.

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 3/10

http://codientu.org Tác giả: Nguyễn Chí Linh

Hình 1.3. Truy ề n nhậ n dữ liệ u giữ a chủ /t ớ Nhìn hình trên ta thấ y xung đồng h ồ chỉ có một hướng từ chủ đế n tớ , còn lu ồng dữ liệu

có thể đi theo hai hướng, từ chủ đế n tớ hay ngược lại tớ đế n chủ.

V ề dữ liệu truy ền trên bus I2C, một bus I2C chuẩ n truy ền 8‐ bit dữ liệu có hướng trên đường truy ền với tố c độ là 100Kbits/s – Chế độ chuẩ n (Standard mode). Tố c độ truy ền có thể lên tới 400Kbits/s – Chế độ nhanh (Fast mode) và cao nhấ t là 3,4Mbits/s – Chế độ cao

tố c (High‐speed mode).

Một bus I2C có thể hoạt động ở nhi ều chế độ khác nhau:

- Một chủmột tớ (one master – one slave) - Một chủ nhi ều tớ (one master – multi slave)

- Nhi ều chủ nhi ều tớ (Multi master – multi slave)

Dù ở chế độ nào, một giao tiế p I2C đều dựa vào quan hệ chủ/tớ. Giả thiế t một thiế t bị Amuố n gửi dữ liệu đế n thiế t bị B, quá trình được thực hiện như sau:

‐ Thiế t bị A (Chủ) xác định đúng địa chỉ của thiế t bị B (tớ), cừng với việc xác định địa chỉ , thiế t bị A sẽ quyế t định việc đọc hay ghi vào thiế t bị tớ

‐ Thiế t bị A gửi dữ liệu tới thiế t bị B

‐ Thiế t bị A kế t thúc quá trình truy ền dữ liệu

Khi A muố n nhận dữ liệu từ B, quá trình diễn ra như trên, chỉ khác là A sẽ nhận dữ liệtừ B. Trong giao tiế p này, A là chủ còn B vẫn là tớ. Chi tiế t việc thiế t lập một giao tiế p giữhai thiế t bị sẽ được mô tả chi tiế t trong các mục dưới đây.

1.2. START and STOP conditions

START và STOP là những đi ều kiện bắt buộc phải có khi một thiế t bị chủmuố n thiế t

lập giao tiế p với một thiế t bị nào đó trong mạng I2C. START là đi ều kiện khởi đầu, báo hiệu bắt đầu của giao tiế p, còn STOP báo hiệu kế t thúc một giao tiế p. Hình dưới đây mô tảđi ều kiện START và STOP.

Ban đầu khi chưa thực hiện quá trình giao tiế p, cả hai đường SDA và SCL đều ởmức cao (SDA = SCL = HIGH). Lúc này bus I2C được coi là dỗi (“bus free”), sẵn sàng cho một giao tiế p. Hai đi ều kiện START và STOP là không thể thiế u trong việc giao tiế p giữa các thiế t bị I2C với nhau

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 4/10

http://codientu.org Tác giả: Nguyễn Chí Linh

Hình 1.4. Đi ề u kiệ n START và STOP của bus I2C

Đi ều kiện START: một sự chuyể n đổ i trạng thái từ cao xuố ng thấ p trên đường SDA trong khi đường SCL đang ởmức cao (cao = 1; thấ p = 0) báo hiệu một đi ều kiện START

Đ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.

Cả hai đi ều kiện START và STOP đều được tạo ra bởi thiế t bị chủ. Sau tín hiệu START, bus I2C coi như đang trong trang thái làm việc (busy). Bus I2C sẽ rỗi, sẵn sàng cho một giao tiế p mới sau tín hiệu STOP từ phía thiế t bị chủ.

Sau khi có một đi ều kiện START, trong qua trình giao tiế p, khi có một tín hiệu START được lặp lại thay vì một tín hiệu STOP thì bus I2C vẫn tiế p tục trong trạng thái bận. Tín hiệu START và lặp lại START đều có chức năng giố ng nhau là khởi tạo một giao tiế p.

1.3. Định dạng dữ liệu truy ền

Dữ liệu được truy ền trên bus I2C theo từng bit, bit dữ liệu được truy ền đi tại mỗi sườndương của xung đồng h ồ trên dây SCL, quá trình thay đổ i bit dữ liệu xảy ra khi SCL đangởmức thấ p.

Hình 1.5. Quá trình truy ề n 1 bit dữ liệ u

Mỗi byte dữ liệu được truy ền có độ dài là 8 bits. Số lượng byte có thể truy ền trong một l ần là không hạn chế . Mỗi byte được truy ền đi theo sau là một bit ACK để báo hiệu đã nhận dữ liệu. Bit có trọng số cao nhấ t (MSB) sẽ được truy ền đi đầu tiên, các bít sẽ được truy ền đi l ần lượt. Sau 8 xung clock trên dây SCL, 8 bit dữ liệu đã được truy ền đi. Lúc này 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 ứng với xung clock thứ 9 trên dây SDA để báo hiệu đã nhận đủ 8 bit. Thiế t bị truy ền khi nhận được bit ACK sẽ tiế p tục thực hiện quá trình truy ền hoặc kế t thúc.

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 5/10

http://lab3i.com Tác giả: Nguyễn Chí Linh

Hình 1.6. Dữ liệ u truy ề n trên bus I2C

Hình 1.7. Bit ACK trên bus I2C

Truy ề n Nhậ n

SDA = data_bit Buffer = databit

Kiể m tra xem đã truy ền đủ8 bit chưa

Clock = 8 ? NO

YES

ACK ? NO

BufferFull ? NO

YES

Send ACK

YESNext_byte or STOP

STOP

Read Buffer

Hình 1.8. Lư u đồ thuậ t toán quá trình truyêng nhậ n dữ liệ u

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 6/10

hhttp://lab3i.co Tác giả: Nguyễn Chí Linh

Một byte truy ền đi có kèm theo bit ACK là đi ều kiên bắt buộc, nhằm đảm bảo cho quá trình truy ền nhận được diễn ra chính xác. Khi không nhận được đúng địa chỉ hay khi muố n kế t thúc quá trình giao tiế p, thiế t bị nhận sẽ gửi một xung Not‐ACK (SDA ởmức cao) để báo cho thiế t bị chủ biế t, thiế t bị chủ sẽ tạo xung STOP để kế t thúc hay lặp lại một

xung START để bắt đầu quá trình mới.

1.4. Định dạng địa chỉ thiế t bị

Mỗi thiế t bị ngoại vi tham gia vào bus i2c đều có một địa chỉ duy nhấ t, nhằm phân biệt giữa các thiế t bị với nhau. Độ dài địa chỉ là 7 – bit, đi ều đó có ngh ĩ a là trên một bus I2C ta có thể phân biệt tố i đa 128 thiế t bị. Khi thiế t bị chủmuố n giao tiế p với ngoại vi nào trên busI2C, nó sẽ gửi 7 bit địa chỉ của thiế t bị đó ra bus ngay sau xung START. Byte đầu 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.

Hình 1.8. Cấ u trúc byte dữ liệ u đầ u tiên

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. Địa chỉđó có thể là cố định hay thay đổ i. Riêng bit đi ều khiể n hướng sẽ quy định chi ều truy ền dữliệu. Nế u bit này bằng “0” có ngh ĩ a là byte dữ liệu tiế p theo sau sẽ được truy ền từ chủ đế n tớ , còn ngược lại nế u bằng “1” thì các byte theo sau byte đầu tiên sẽ là dữ liệu từ con tớ gửiđế n con chủ. Việc thiế t lập giá trị cho bit này do con chủ thi hành, con tớ sẽ tùy theo giá trịđó mà có sự phản h ồi tương ứng đế n con chủ.

1.5. Truy ền dữ liệu trên bus I2C, chế độ Master‐Slave

Việc truy ền dữ liệu diễn ra giữa con chủ và con tớ. Dữ liệu truy ền có thể theo 2 hướngtừ chủ đế n tớ hay ngược lại. Hướng truy ền được quy định bởi bit thứ 8 trong byte đầutiên được truy ền đi.

Hình 1.9. Quá trình truy ề n dữ liệ u

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 7/10

hhttp://lab3i.co Tác giả: Nguyễn Chí Linh

• Truy ền dữ liệu từ chủ đế n tớ (ghi dữ liệu): Thiế t bị chủ khi muố n ghi dữ liệu đế n con tớ , quá trình thực hiện là:

‐ Thiế t bị chủ tạo xung START

‐ Thiế t bị chủ gửi địa chỉ của thiế t bị tớmà nó c ần giao tiế p cùng với bit = 0 ra bus và đợi xung ACK phản h ồi từ con tớ

‐ Khi nhận được xung ACK báo đã nhận diện đúng thiế t bị tớ , con chủ bắt đầu gửi dữ liệu đế n con tớ theo từng byte một. Theo sau mỗi byte này đều là một xung ACK. Số lượng byte truy ền là không hạn chế .

‐ Kế t thúc quá trình truy ền, con chủ sau khi truy ền byte cuố i sẽ tạo xung STOP báo hiệu kế t thúc.

Hình 1.10. Ghi dữ liệ u t ừ chủ đế n t ớ

• Truy ền dữ liệu từ tớ đế n chủ (đọc dữ liệu): Thiế t bị chủmuố n đọc dữ liệu từ thiế t bịtớ , quá trình thực hiện như sau:

‐ Khi bus rỗi, thiế t bị chủ tạo xung START, báo hiệu bắt đầu giao tiế p ‐ Thiế t bị chủ gửi địa chỉ của thiế t bị tớ c ần giao tiế p cùng với bit = 1 và

đợi xung ACK từ phía thiế t bị tớ

‐ Sau xung ACK d ầu tiên, thiế t bị tớ sẽ gửi từng byte ra bus, thiế t bị chủ sẽnhận dữ liệu và trả v ề xung ACK. Số lượng byte không hạn chế

‐ Khi muố n kế t thúc quá trình giao tiế p, thiế t bị chủ gửi xung Not‐ACK và tạo xung STOP để kế t thúc.

Hình 1.11. Đọc dữ liệ u t ừ thiế t bị t ớ

• Quá trình kế t hợp ghi và đọc dữ liệu: giữa hai xung START và STOP, thiế t bị chủ cóthể thực hiện việc đọc hay ghi nhi ều l ần, với một hay nhi ều thiế t bị. Để thực hiện việc đó, sau một quá trình ghi hay đọc, thiế t bị chủ lặp lại một xung START và lại gửi lại địa chỉ của thiế t bị tớ và bắt đầu một quá trình mới.

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 8/10

hhttp://lab3i.co Tác giả: Nguyễn Chí Linh

Hình 1.12.Quá trình phố i hợ p đọc/ghi dữ liệ u

Chế độ giao tiế p Master‐Slave là chế độ cơ bản trong một bus I2C, toàn bộ bus được quản lý bởi một master duy nhấ t. Trong chế độ này sẽ không xảy ra tình trạng xung đột bus hay mấ t đồng bộ xung clock vì chỉ có một master duy nhấ t có thể tạo xung clock.

1.6.

Chế độ

Multi‐Master

Trên bus I2C có thể có nhi ều hơn một master đi ều khiể n bus. Khi đó bus I2C sẽ hoạt động ở chế độMulti‐Master.

Vấ n đề này sẽ được bàn thảo sau.

2. Module I2C trong Vi đi ều khiể n PIC

Với những tiện ích đem lại, khố i giao tiế p I2C đã được tích hợp cứng trong khá nhi ều loại Vi đi ều khiể n khác nhau. Trong các loại Vi đi ều khiể n PIC dòng Mid‐range phổ biế n tại Việt Nam, chỉ từ 16F88 mới có hỗ trợ ph ần cứng I2C, còn các loại 16F84, 16F628 thì

không có. Với những loại Vi đi ều khiể n không có hỗ trợ ph ần cứng giao tiế p I2C, để sửdụng ta có thể dùng ph ần m ềm lập trình, khi đó ta sẽ viế t một chương trinh di ều khiể n 2 chân bấ t kỳ của Vi đi ều khiể n để nó thực hiện giao tiế p I2C (các hàm START, STOP, WRITE, READ). Trong bài viế t này ta đề cập đế n việc sử dụng giao tiế p I2C của các loại PIC có tích hợp khố i I2C sẵn trong nó, mà cụ thể là Vi đi ều khiể n PIC16F877A.

2.1. Đặc điể m ph ần cứng

Hình dưới đây chỉ ra cấ u trúc ph ần cứng của khố i đi ều khiể n Giao tiế p nố i tiế p đồng bộ

(MSSP) hoạt động ở chế độ I2C. Khố i I2C có d ầy đủ chức năng, hoạt động ở cả 2 chế độ là MASTER (chủ) và SLAVE (tớ), có ngắt xảy ra khi có đi ều kiện START hay STOP xảy ra, nhằm định rõ đường I2C có dỗi hay khônơng ( chức năng Multi‐master ). Chế độ địa chỉ cóthể là 7‐ bit hay 10‐ bit.

Khố i I2C có 6 thanh ghi đi ều khiể n hoạt động, đó là:

‐ SSPCON: Thanh ghi đi ều khiể n

‐ SSPCON2: Thanh ghi đi ều khiể n thứ 2

‐ SSPSTAT: Thanh ghi trạng thái

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 9/10

hhttp://lab3i.co Tác giả: Nguyễn Chí Linh

‐ SSPBUF: Thanh ghi bộ đệm truy ền nhận

‐ SSPSR: Thanh ghi dịch

‐ SSPADD: Thanh ghi địa chỉ

Các thanh ghi SSPCON, SSPBUF, SSPADD và SSPSON2 có thể truy cập đọc/ghi được. Thanh ghi SSPSR không thể truy cập trực tiế p, là thanh ghi dich dữ liệu ra hay vào. Các thanh ghi SSPCON, SSPCON2 và SSPSTAT được định địa chỉ bit, mỗi bit có chức năng riêng. Ý ngh ĩ a của từng thanh ghi và của mỗi bit trong từng thanh ghi đã được đề cập kỹtrong tài liệu Datasheet của PIC và trong tài liệu TUT04.02.PVN.MAFD của bạn Mạnh, tôi không đề cập thêm ở đây. Trong tài liệu nayg tôi sẽ tập trung vào việc sử dụng khố i I2C của PIC ở các chế độMaster và Slave trong ph ần m ềm biên dịch C cho PIC là CCS

Hình2.1. Cấ u trúc khố i I2C trong PIC

2.2. Cách thức sử dụng Module I2C trong CCS

Trong việc lập trình cho PIC sử dụng giao tiế p I2C của nó trong các ứng dụng, người lập trình có thể thực hiện một cách dễ dàng với trình dịch CCS. Nói dễ dàng ở đây là chỉ v ềmặt cú pháp lệnh, ta không c ần sử dụng nhi ều câu lệnh khó nhớ như trong lập trình ASM.

7/22/2019 Chuẩn giao tiếp I2C - cách kết nối giữa các IC với nhau

http://slidepdf.com/reader/full/chuan-giao-tiep-i2c-cach-ket-noi-giua-cac-ic-voi-nhau 10/10

hhttp://lab3i.co Tác giả: Nguyễn Chí Linh

Việc khởi tạo, chọn chế độ hoạt động và thực hiện giao tiế p của I2C đã có các hàm dựng sẵn của CCS thực hiện. Các hàm liệt kê dưới đây là của phiên bản CCS 3.242, đó là:

‐ i2c_isr_state(): Thông báo trạng thái giao tiế p I2C

‐ i2c_start(): Tạo đi ều kiện START ‐ i2c_stop(): Tạo đi ều kiện STOP

‐ i2c_read(): Đọc 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

Để sử dụng khố i I2C ta sử dụng khai báo sau:

#use i2c(chế _độ , tố c độ , sda = PIN_C4, scl=PIN_C3)

‐ Chế độ: Master hay Slave

‐ Tố c độ: Slow (100KHz) hay Fast (400KHz)

‐ SDA và SCL là các chân i2c tương ứng của PIC

Sau khai báo trên, ta có thể sử dụng các hàm nêu trên để thực hiện, xử lý các giao tiế p i2c với các thiế t bị ngoại vi khác.

Còn tiế p nữa…

3. Kế t luận