Tải bản đầy đủ (.docx) (36 trang)

Thiết kế KIT học tập MSP430 gồm module TimerCounter, ADC, I2C, UART

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.98 MB, 36 trang )

Mục Lục
I

Tổng quan đề tài

8

II

Mô tả các Module cơ bản của MSP430G2553 được tích hợp trên

9

KIT
1

Tổng quan vi điều khiển MSP430

9

2

Module GPIO

10

2.1

Khái niệm GPIO

10



2.2

Module GPIO trong vi điều khiển MSP430

10

a

Module GPIO điều khiển 8 led

10

b

Module GPIO với led 7 đoạn

11

c

Module GPIO với LCD 16x2

14

Module Timer – Counter

16

3.1


Giới thiệu

16

3.2

Tổng quan Module Timer trong vi điều khiển MSP430

17

3.3

Ứng dụng Timer – Counter trên KIT

19

Module ADC

20

4.1

Giới thiệu

20

4.2

Cấu trúc ADC


21

4.3

Hoạt động của ADC

22

4.4

Module ADC trên KIT

23

Module I2C

25

5.1

Giới thiệu chung về I2C

25

5.2

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

25


5.3

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

27

5.4

I2C trong vi điều khiển MSP430

28

5.5

Giao tiếp I2C của MSP430 với BQ32000

30

Module UART

31

3

4

5

6


1


6.1

Truyền thông nối tiếp

31

6.2

Truyền thông nối tiếp đồng bộ

32

6.3

Truyền thông nối tiếp không đồng bộ UART

33

6.4

Truyền thông không đồng bộ nối tiếp với MSP430.

35

6.5


Module UART trên KIT MSP430.

36

Thực nghiệm

38

7.1

Test các module

38

7.2

Thiết kế mạch nguyên lý của KIT

38

7.3

Thiết kế PCB

39

7.4

Hoàn thiện mạch


41

7.5

Test mạch và xây dựng code mẫu

41

7

Danh mục hình ảnh
Figure 1: Tổng quan MSP430
Figure 2: Mạch nguyên lý module GPIO với 8 led của KIT Figure
3 : Cấu tạo của led 7 thanh
Figure 4: Led 7 thanh Anode chung
Figure 5: Bảng sự thật của led 7 thanh Anode chung
Figure 6: Mạch nguyên lý Module GPIO với led 7 thanh 4 bits của KIT
Figure 7 : Cấu tạo led 7 thanh 4 bits
Figure 8 : LCD16x2 và sơ đồ khối của IC HD44780
Figure 9 : Mạch nguyên lý Module GPIO với LCD của KIT.
Figure 10 : Sơ đồ khối của module Timer A
Figure 11 : Sơ đồ khối của module Timer B
2


Figure 12 : Mạch nguyên lý Module Timer/Counter với Loa của KIT
Figure 13 : Sơ đồ khối của module ADC
Figure 14 : ADC nhanh 3 bits
Figure 15 : Sơ đồ khối và mạch nguyên lý Module ADC của KIT. Figure
16 : Bus I2C và các thiết bị ngoại vi.

Figure 17 : Đặc điểm giao tiếp I2C
Figure 18 : Truyền dữ liệu giữa Master và Slave bằng giao thức I2C
Figure 19 : Điều kiện START và STOP của bus I2C
Figure 20 : Dữ liệu truyền trên bus I2C
Figure 21 : Quá trình truyền 1 bit dữ liệu.
Figure 22 : Sơ đồ khối của module I2C Figure
23 : Sơ đồ khối của BQ32000.
Figure 24 : Mạch nguyên lý Module Real Time Clock với BQ32000 trên KIT
Figure 25 : Các mức điện áp trong truyền thông UART
Figure 26 : So sánh truyền 8 bits theo phương pháp song song và nối tiếp Figure
27 : Vị trí các bit trong khung truyền
Figure 28 : Sơ đồ khối của module USCI – UART
Figure 29 : Sơ đồ khối module UART trên KIT. Figure
30 : Kết nối PL2303 với các thiết bị ngoại vi Figure 31 :
Mạch nguyên lý của KIT MSP430

Lời nói đầu
3


Ngày nay, nhân loại đang đứng trước nguy cơ thiếu hụt năng lượng nghiêm trọng.
Vì vậy, các thiết bị tiết kiệm năng lượng ngày càng được ưa chuộng và sử dụng rộng rãi,
đặc biệt là trong lĩnh vực công nghệ. Texas Instrument (TI) là một tập đoàn linh kiện của
Mỹ, đi đầu trong lĩnh vực chế tạo ra các dòng vi xử lý tiết kiệm năng lượng. MSP430 là
một dòng vi điều khiển tiêu biểu cho ưu điểm tiết kiệm năng lượng của TI và bước đầu
được sử dụng ở Việt Nam. Hiện nay, bộ môn Đồ Án Thiết Kế 2 đã chọn MSP430 là chủ
đề cho các sinh viên của viện Điện Tử Viễn Thông nghiên cứu.
Và để đáp ứng nhu cầu nghiên cứu dòng vi điều khiển MSP430 của sinh viên, chúng em
đã quyết định nghiên cứu và thiết kế ra bộ KIT học tập MSP430 sử dụng
MSP430G2553.

Bộ KIT bao gồm các module cơ bản như GPIO, ADC, Timer/Counter, I2C,
UART, SPI. Học viên sử dụng KIT sẽ học được cách điều khiển các LED bằng các
lệnh vào ra cơ bản, cách điều khiển led 7 thanh, LCD 16x2, biết cách lập trình cho
Timer, PWM, ADC đồng thời có thể giao tiếp với máy tính cũng như các cảm biến
khác.

I.

Tổng quan đề tài
1. Mục tiêu
• Nâng cao kiến thức về MSP430.



Thiết kế được KIT MSP430G2553 có đầy đủ các module cơ bản,

phục vụ cho việc học tập.
• Củng cố kinh nghiệm và cách xây dựng hoàn thành 1 đề tài.
• Nâng cao khả năng thiết kế mạch một cách chuyên nghiệp
2. Nền tảng cơ bản
• Làm việc một cách chuyên nghiệp và tuần tự
• Có khả năng tìm và đọc tài liệu trên mạng
• Biết thiết kế một mạch hoàn chỉnh từ sơ đồ nguyên lý đến PCB
a. Yêu cầu hệ thống
i. Yêu cầu chức năng
4


Thiết kế được các module phục vụ việc học tập MSP430
ii. Yêu cầu phi chức năng

• KIT được trang bị đầy đủ các module cơ bản
• Sắp xếp khoa học, hợp lý và đơn giản
• KIT chạy bền và ổn định trong thời gian dài
• Tiêu thụ ít năng lượng và tiết kiệm diện tích

II.

Mô tả các module cơ bản của vi điều khiển MSP430 được
tích hợp trên KIT
1. Tổng quan vi điều khiển MSP430

Figure 1
Bên trên là sơ đồ tổng quan của vi điều khiển MSP430G2553. Dòng vi điều khiển
MSP430 của TI có một số đặc điểm nổi bật như sau:
• Cấu trúc 16 bits RISC, thiết kế theo cấu trúc Von Neumann
• Nguồn cung cấp 1.8 – 3.6 V
• Công suất tiêu tán rất thấp
• Tốc độ CPU tối đa 25 MHz tùy Chip
5


• Có nhiều xung Clock để lựa chọn
• 4 Chế độ tiết kiệm năng lượng


12 Bits ADC 200kbps với nguồn tham chiếu nội, Sample, Hold,

Autoscan
• Wake up nhanh từ chế độ Stand by (thời gian <6us)
• USCI hỗ trợ UART, I2C, SPI

2. Module GPIO
2.1 Khái niệm cơ bản về GPIO
GPIO là viết tắt của General Purpose Input Output, GPIO chính là cửa
ngõ để giao tiếp giữa vi điều khiển với thế giới bên ngoài. GPIO, đúng như
tên gọi của nó, có chức năng cơ bản là Input và Output. Trước khi một PIN
nào đó của vi điều thực hiện chức năng đó, nó phải được định nghĩa là
Input hoặc Output.
Một số ứng dụng cơ bản của GPIO có thể kể đến đó là điều khiển nháy
LED, quét phím, điều khiển led 7 thanh, led ma trận và điều khiển LCD.
2.2 Module GPIO trong vi điều khiển MSP430
Module GPIO của TI cũng tuân theo nguyên lý cơ bản bên trên đã trình
bày. Trong vi điều khiển MSP430G2553 dạng 20 chân DIP, các chân có chức
năng cơ bản là GPIO bao gồm toàn bộ các chân của Port 1 (P1.0 đến P1.7) và
2 chân P2.6 và P2.7 của Port 2.
a. Module GPIO điều khiển 8 led
Module này được thiết kế nhằm giúp người học có khả năng điều khiển
các led bằng các lệnh I/O đơn giản, làm nhấp nháy 8 led.

6


Figure 2
b. Module GPIO với led 7 đoạn.
Module này được thiết kế nhằm giúp học viên có khả năng lập trình được
cho led 7 đoạn. Trước hết, ta đi vào cách điều khiển led 7 thanh bằng các
lệnh vào ra đơn giản.
Led 7 đoạn (7segment): Được cấu tạo bởi 7 led đơn xếp như ở Figure 3

7



Figure 3
Dựa vào cách mắc mà người ta phân loại 7segment ra thành 2 loại đó là
loại Anode chung và Cathode chung. Mỗi loại lại có cách mắc khác nhau. Do
đó sẽ có cách điều khiển khác nhau nhưng đều dựa trên cùng 1 phương pháp
phân tích.

Ta sẽ phân tích nguyên lý hoạt động của 7segment loại Anode chung như
sau:

Figure 4
Loại 7segment có các chân Anode của 7 led được nối chung với nhau và
nối lên VCC (mức logic “1”) gọi là Led 7 thanh Anode chung. Để thanh
nào đó sáng, ta lấy ví dụ với thanh A, thì rõ ràng mức Logic ở A phải bằng
“0”. Chân DIP (dấu chấm) nếu mặc định để tắt, ta sẽ xây dựng được bảng sự
thật sau đây:

8


Figure 5
Tương tự như vậy ta sẽ phân tích được nguyên lý và cách điều khiển hoạt
động của led 7 thanh loại Cathode chung.

Ở KIT MSP430, chúng em đã thiết kế module GPIO với 7segment như sau:

Module bao gồm 2 phần chính:
Figure 6

9





Phần 1: Gồm 4 Transitor PNP mắc theo kiểu E chung, nhằm

khuếch đại dòng điện cung cấp cho khối hiển thị ở phần 2


Phần 2: Phần hiển thị, là 1 led 7 thanh 4 Bits. Cách điều khiển

led 7 thanh 4 bits khá giống với điều khiển led 7 thanh bình thường, khác ở điểm
khi muốn led nào sáng trong 4 led này ta cần điều khiển các chân điều khiển cấp
nguồn cho led (trên hình là chân 6 8 9 12).

Figure 7
c. Module GPIO với LCD 16x2
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng
trong rất nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so với
các dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan
(chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao
thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ. Như
vậy, mục đích chúng em thiết kế module này đó là làm sao giúp cho học
viên có khả năng lập trình điều khiển được LCD 16x2.
LCD 16x2: Được tích hợp IC HD44780 và được nối các chân điều
khiển ra bên ngoài.

10



Figure 8
Chân

Mô tả


hiệu

1

Vss

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của
mạch điều khiển

2

VDD

Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC=5V của mạch điều khiển

3

VEE

Điều chỉnh độ tương phản của LCD.

11



4

RS

Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND)
hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế
độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong
LCD.

5

R/W

Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để
LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

6

E

Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7,
các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh
ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín
hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện
cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi

nào chân E xuống mức thấp.

7 - 14

DB0 DB7

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế
độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit
DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit
MSB là DB7

15

-

Nguồn dương cho đèn nền

16

-

GND cho đèn nền

Dựa vào đây, chúng em đã thiết kế module LCD 16x2 dưới chế độ 4 bits như sau:

12



Figure 9
3. Module Timer/Counter
3.1 Giới thiệu
Timer – Counter là một module có chức năng chính là định thời và đếm sự
kiện. Module Timer – Counter có các chức năng như sau:
• Chế độ định thời.
• Chế độ đếm sự kiện.
• Chế độ tạo xung điều rộng PWM
• Chế độ Input Capture
Một số khái niệm cơ bản về Timer/Counter mà ta cần nắm được khi tìm hiểu
về Timer-Counter đó là:
• BOTTOM: là giá trị thấp nhất mà một T/C có thể đạt được, giá trị này luôn là
0.
• MAX: là giá trị lớn nhất mà một T/C có thể đạt được, giá trị này được quy
định bởi bởi giá trị lớn nhất mà thanh ghi đếm của T/C có thể chứa được.
Ví dụ với một bộ T/C 8 bit thì giá trị MAX luôn là 0xFF (tức 255 trong hệ

13


thập phân), với bộ T/C 16 bit thì MAX bằng 0xFFFF (65535). Như thế
MAX là giá trị không đổi trong mỗi T/C.
• TOP: là giá trị mà khi T/C đạt đến nó sẽ thay đổi trạng thái, giá trị này
không nhất thiết là số lớn nhất 16 bit như MAX, giá trị của TOP có thể thay
đổi bằng cách điều khiển các bit điều khiển tương ứng hoặc có thể nhập trừ
tiếp thông qua một số thanh ghi.
3.2 Tổng quan các bộ Timer Counter trong vi điều khiển MSP430
Ở vi điều khiển MSP430G2553 có 2 bộ Timer/Counter là Timer A và
Timer B.
Timer A có các đặc điểm sau đây:

• 16bits timer/counter
• 3 thanh ghi compare/capture
• 4 mode hoạt động: Stop, up, continous, up/down
• 2 vector ngắt với sự kiện Capture/compare và ngắt tràn
• Có thể chọn và thay đổi nguồn cấp xung Clock
• Đầu vào không đồng bộ và chốt đầu ra.
• Timer A bắt đầu hoạt động bằng cách config bằng phần mềm do
chính người dùng kích hoạt

14


Figure 10
Timer B có các đặc điểm sau:
• 16 bits Timer – Counter không đồng bộ với 4 mode hoạt động.
• Có thể chọn và config nguồn xung cấp
• 3 hoặc 7 thanh ghi compare/capture


Thanh ghi chứa vector ngắt giúp việc giải mã tất cả các ngắt của

Timer B một cách nhanh chóng
• Độ dài khả trình của Timer B đó là 8, 10, 12 hoặc 16 Bits


Tất cả output của Timer B có thể đưa vào trạng thái trở kháng

mức cao



Timer B bắt đầu hoạt động bằng cách config bằng phần mềm do

chính người dùng kích hoạt

15


Figure 11
3.3 Ứng dụng của Module Timer – Counter trên KIT MSP430
Trong phạm vi ban đầu, chúng em đã quyết định thiết kế loa (còi chíp)
được điều khiển bằng xung PWM. Để điều khiển được loa này, học viên cần
điều chế được xung PWM ở các tần số thích hợp khác nhau. Từ đó tạo ra các
âm thanh ưng ý.

16


Figure 12
Module này bao gồm 2 phần chính:
Phần 1: Khuếch đại dòng điện, cấp cho phần 2
Phần 2: Phát ra âm thanh.
Với cách mắc mạch như thế này thì loa sẽ kêu khi P1.1 ở mức logic 1 và
ngược lại
4 Module ADC
4.1 Giới thiệu.
Trong các ứng dụng đo lường và điều khiển bằng vi điều khiển, bộ
chuyển đổi tương tự-số (ADC) là một thành phần rất quan trọng. Dữ liệu trong
thế giới của chúng ta là các dữ liệu tương tự (analog). Chẳng hạn nhiệt độ không
khí buổi sáng là 25oC và buổi trưa là 32oC, giữa hai mức giá trị này có vô số các
giá trị liên tục mà nhiệt độ phải “đi qua” để có thể đạt mức 32oC từ 25oC, đại

lượng nhiệt độ như thế gọi là một đại lượng analog.
Vi điều khiển là một thiết bị số (digital), như vậy nó sẽ không thể biểu diễn
trực tiếp các giá trị Analog được, mà phải chuyển đổi sang một dạng khác để biểu
diễn. Chẳng hạn, chúng ta muốn dùng một thanh ghi 8 bit trong vi điều
17


Báo cáo cuộc thi Project tốt nhất 2014 – Đề tài KIT học tập MSP430 – ESBK Team

18


khiển để lưu lại các giá trị nhiệt độ từ 0oC đến 255 oC. Một thanh ghi 8 bit
có thể chứa tối đa 256 (28) giá trị nguyên từ 0 đến 255, như thế các mức
nhiệt độ không nguyên như 28.123 oC sẽ không được ghi lại. Nói cách khác,
chúng ta đã “số hóa” (digitalize) một dữ liệu analog thành một dữ liệu
digital. Quá trình “số hóa” này thường được thực hiện bởi một thiết bị gọi là
“bộ chuyển đổi tương tự - số hay đơn giản là ADC (Analog to Digital
Converter).
4.2 Cấu trúc ADC:

Figure 13
4.3 Hoạt động của ADC
Có rất nhiều phương pháp chuyển đổi ADC nhưng phương pháp phổ biến nhất
là chuyển đổi trực tiếp hoặc flash ADC. Đây là phương pháp chuyển đổi có tốc độ
19


cao nhưng sơ đồ mạch phức tạp hơn các loại mạch khác. Bộ chuyển đổi theo
phương pháp này được cấu thành một dãy các bộ so sánh, các bộ so sánh được

mắc song song và kết nối trực tiếp với bộ chuyển đổi. Một điện áp tham
chiếu(reference) và một mạch chia áp được sử dụng để tạo ra các mức điện áp so
sánh khác nhau cho mỗi bộ so sánh.

Figure 14: Sơ đồ của 1 ADC nhanh 3 bit
ADC nhanh có độ phân giải 3 bit. Kích thước bậc thang là 1V. Bộ chia điện thế
thiết lập ở mức quy chiếu cho từng bộ so sánh để có được 7 mức ứng với 1V(trọng số
của LSB), 2V, 3V, ..., 7V(đầy thang). Đầu vào tương tự VA được nối với đầu vào còn
lại của từng bộ so sánh. Với đầu vào VA< 1V thì tất cả đầu ra của bộ so sánh đều lên
mức cao. Nếu 1 < VA < 2V thì đầu ra C1 sẽ xuống mức thấp, còn lại mức cao. Đầu ra
của sẽ được đưa vào mã hóa ưu tiên tích cực ở mức thấp, mã đầu ra sẽ ứng với đầu ra
có số thứ tự cao nhất của bộ so sánh. Ta có bảng sau khi mã hóa:
Ngõ ra của bộ so sánh

Đầu vào

Ngõ ra số

tương tự
VA

C1

C2

C3

C4

C5


C6

C7

C

B

A

0-1V

1

1

1

1

1

1

1

0

0


0

1-2V

0

1

1

1

1

1

1

0

0

1

2-3V

0

0


1

1

1

1

1

0

1

0

20


3-4V

0

0

0

1


1

1

1

0

1

1

4-5V

0

0

0

0

1

1

1

1


0

0

5-6V

0

0

0

0

0

1

1

1

0

1

6-7V

0


0

0

0

0

0

1

1

1

0

>7V

0

0

0

0

0


0

0

1

1

1

Độ phân giải(resolution): như ví dụ trên nếu mạch điện có 7 bộ so sánh
thì ngõ ra số sẽ có 8 mức giá trị. Với 8 mức giá trị này ta cần 3 bit để mã
hóa hết 8 giá trị này. Ta nói mạch chuyển đổi ADC này có độ phân giải
là 3 bit. Vậy độ phân giải của ADC chính là số bit cần thiết để mã hóa
hết các giá trị ở ngõ ra số. Với mạch ADC có độ phân giải n bit thì sẽ có
2n giá trị ngõ ra số. Độ phân giải liên quan trực tiếp tới chất lượng
chuyển đổi ADC, vì vậy cần lựa chọn độ phân giải phù hợp với độ chính
xác yêu cầu và khả năng xử lí của bộ điều khiển.
Điện áp tham chiếu(reference voltage): là giá trị lớn nhất mà bộ
ADC có thể chuyển đổi. Điện áp tham chiếu ảnh hưởng tới độ chính xác
của quá trình chuyển đổi, bởi vậy cần tính toán để chọn 1 điện áp tham
chiếu phù hợp.
4.4 Modul ADC trong MSP430

Figure 15
Chi tiết từng khối:
Khối cảm biến nhiệt:


Khối cảm biến nhiệt có chức năng thu nhận tín hiệu tương tự


(nhiệt độ) rồi gửi đến khối chuyển đổi ADC dưới dạng điện.
21


• Chọn LM35 để đo nhiệt độ. Đặc điểm của LM35:
o Điện áp đầu vào từ 4- 30V
o Độ phân giải điện áp đầu ra là 10mV/0C
o Dải nhiệt độ đo được là – 55oC đến 150oC
Khối xử lí: Có chức năng nhận tín hiệu gửi đến sau đó xử lí để đưa ra khối hiển
thị.
Khối hiển thị: Có chức năng hiển thị kết quả đo. Dùng LCD, led 7 thanh.
Khối reset: Reset lại hệ thống
Khối nguồn: Cung cấp điện cho các khối trong sơ đồ
Nguyên lí hoạt động: Khi nhiệt độ tác động lên LM35, nó sẽ chuyển thành
điện áp. Cứ mỗi 1OC tương ứng với 10mV. Từ đây bộ ADC sẽ chuyển đổi giá
trị điện áp đó về dạng số thập phân, lưu trong thanh ghi chứa kết quả chuyển
đổi. Muốn hiển thị nhiệt độ, người lập trình phải biết cách xây dựng tỷ lệ
chuyển đổi cho bộ ADC. Rồi lấy kết quả ra, đưa ra các công cụ hiển thị.
5 Module I2C
5.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 IC hay các thiết
bị ngoại vi cần phải giao tiếp với các IC hau các thiết bị ngoại vi 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 với một chuẩn giao tiếp nối tiếp
2 dây gọi là I2C-Bus giao tiếp giữa các IC với nhau.I2C nhanh chóng trở
thành chuẩn công nghiệp cho các giao tiếp điều khiển.Bus I2C được sử dụng
làm bus giao tiếp ngoại vi cho rất nhiều IC khác nhau:Vi điều khiển
PIC,AVR,MSP430….


22


Figure 16
5.2 Đặ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à đường I2C thì chân SDA của nó sẽ được nối và dây
SDA của bus, chân SCL sẽ được nối vào dây SCL.

Figure 17
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.Giá trị của các điện trở khác nhau tùy thuộc vào
từng thiết bị và chuẩn giao tiếp thường dao động trong khoảng 1K đến 4K.
Trở lại với Figure 16 ta thấy có rất nhiều thiết bị 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 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ư thiết bị nhận hoặc truyền dữ liệu tùy thuộc
vào thiết bị đó là chủ(master) hay tớ(slave) .Thiết bị chủ có vai trò tao xung đồng
hồ và quản lý địa chỉ của thiết bị tớ trong suốt quá trình giao tiếp.

Figure 18
Về truyền dữ liệu trên 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) hoặc
23


400Kbist/s-chế độ nhanh(Fast mode) và cao nhất 3.4Mbits/s-chế độ cao tốc(Highspeed 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).

5.3 Định dạng truyền dữ liệu.
Figure 19
Điều kiện START: một sự chuyển đổi trạng thái từ mức cao xuống mức
thấp của đường SDA trong khi đường SCL vẫn đang ở mức cao.
Điều kiện STOP: một sự chuyển đổi trạng thái từ mức thấp lên mức cao
trên đường SDA trong khi đường SCL đang ở mức cao.
Cả 2 điều kiện START và STOP đều được tao ra bởi Master.

Figure 20
Đầu tiên sau tín hiệu START gói địa chỉ có định dạng 9 bit sẽ được truyền
đi trong đó 7 bit đầu( SLA được gửi đi liền sau điều kiện START) chứa địa chỉ
Slave, một bit R/W và 1 bit ACK-Acknowledgement(xác nhận). Bit R/W được
truyền sau 7 bit địa chỉ là bit báo cho Slave biết Master muốn đọc hay ghi vào
Slave.Nếu bit nàu bằng “0” thì quá trình “ghi” dữ liệu từ Master đến Slave được
yêu cầu. Nếu bit này bằng 1 thì Master muốn đọc dữ liệu từ Slave về. Bit ACK để
báo hiệu khi một Slave
24


nhận được thông báo từ Master nó sẽ kéo chân SDA cuốn mưc thấp ở bit thứ 9.

Figure 21
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ườn 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 đang ở mức thấp. Mỗi byte dữ liệu được truyền có độ dài là 8 bits. Số lượng
byte được truyền trong một lần là không hạn chế. Bit có trọng số cao nhất được
truyền trước. Sau khi đã nhận đủ 8 bit Slave sẽ kéo chân SDA xuống mưc thấp tạo
một xung ACK ứng với xung Clock thứ 9. Master sẽ 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.
5.4 I2C trong MSP430g2553
Figure 22

Khối tạo xung CLK đồng bộ: Nhận đầu vào từ các nguồn xung CLK có sẵn
(xung nội của Vi điều khiển) hoặc từ xung ngoại.Sau đó nguồn xung được chọn sẽ đi
qua bộ chia để cho ra tốc độ truyền nhân dữ liệu.
25


×