giao tiếp i2c

10
 Người báo cáo: Nguyn Chí  Linh Tài liu: TUT02.01 Ngày: 9/8/2006 Trang:  1/10 Tutorial n o  02.01 Gi đế n: www.picvietnam.com Ni dung: Chuẩ n giao tiế p I2C  I2C trong PIC  MICROSOFT  WORD  Tóm t ắ t: Gii thiệ u chung vI2C  Đặ c đ iể m chung vI2C:  giao thứ c, địa ch Các chế độ hot độ ng: masterslave,  multimaster  Module I2C trong Vi đ iề u khiể n PIC  Cấ u trúc  phầ n cứ ng  Chế độ hot độ ng:  Master, Slave,  Multimaster 1. Gii thiu chung vI2C 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  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: thanphong2008

Post on 06-Jul-2015

275 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 1/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 1/10

Tutorial no 02.01

Gửi đế n: www.picvietnam.com Nội dung: Chuẩ n giao tiế p I2C – I2C trong PIC

MICROSOFT WOR

Tóm t ắ t:

Giới thiệ u chung về I2C

‐ Đặ c đ iể m chung về I2C: giao thứ c, địa chỉ

‐ Các chế độ hoạt độ ng: master‐slave, multi‐master

Module I2C

trong

Vi

đ iề u

khi

ể n

PIC

‐ Cấ u trúc 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ể nmộ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,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ạ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ípnhớ 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

Page 2: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 2/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 2/10

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à đườn

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ộ

đ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ế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 dđộ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ẽ đượ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 binà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ế tchủ 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ế pthì 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ố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.

Page 3: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 3/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 3/10

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ữ licó 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 cthể lên tới 400Kbits/s – Chế độ nhanh (Fast mode) và cao nhấ t là 3,4Mbits/s – Chế độ ca

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ịmuố 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 địnđị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ữ litừ 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 gihai 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ô đ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ứccao (SDA = SCL = HIGH). Lúc này bus I2C được coi là dỗi (“bus free”), sẵn sàng cho mộ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

Page 4: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 4/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 4/10

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ườdươ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 đanở 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ộ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à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 xungACK ứng với xung clock thứ 9 trên dây SDA để báo hiệu đã nhận đủ 8 bit. Thiế t bị truyề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.

Page 5: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 5/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 5/10

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

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

Buffer = databit

BufferFull ?

Read Buffer

Send ACK

NO

YES

SDA = data_bit

Clock = 8 ?

ACK ?

Next_byte or STOP

STOP

NO

YES

YES

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

Page 6: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 6/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 6/10

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 qutrì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ộ

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 bigiữ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 tacó 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 bI2C, nó sẽ gửi 7 bit địa chỉ của thiế t bị đó ra bus ngay sau xung START. Byte đầ u tiên đượ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 đó có thể là cố định hay thay đổ i. Riêng bit điề u khiể n hướng sẽ quy định chiề u truyề n dliệ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ủ đế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

đế 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á tđó 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ướntừ chủ đế n tớ hay ngược lại. Hướng truyề n được quy định bởi bit thứ 8 trong byte đầtiên được truyề n đi.

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

Page 7: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 7/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 7/10

• 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 đề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ế ttớ , 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ủ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.

Page 8: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 8/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 8/10

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ề uloạ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ế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ể nchâ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ạ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

(MSSP) hoạt động ở chế độ I2C. Khố i I2C có dầ y đủ chức năng, hoạt động ở cả 2 chế độ lMASTER (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ỉ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

Page 9: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 9/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 9/10

‐ 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 đượcThanh 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ô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ỉ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

Page 10: Giao tiếp I2C

5/8/2018 Giao tiê p I2C - slidepdf.com

http://slidepdf.com/reader/full/giao-tiep-i2c-559abe946ddef 10/10

Người báo cáo: Nguyễn Chí Linh Tài liệu: TUT02.01

Ngày: 9/8/2006 Trang: 10/10

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ế pi2c với các thiế t bị ngoại vi khác.

Còn tiế p nữa…

3. Kế t luận