You are on page 1of 48

ĐỒ ÁN 2

HỌC VIỆN KỸ THUẬT MẬT MÃ


KHOA ĐIỆN TỬ - VIỄN THÔNG
--------------------------------

ĐỒ ÁN 2

Đề tài: “Nghiên cứu sử dụng I2C giao tiếp RTC trong


STM8S005K6”

Giảng viên hướng dẫn: Thầy Đặng Văn Hải


Nhóm sinh viên thực hiên:
1. Trần Minh Cường – DT010104
2. Nguyễn Thu Hòa – DT010112
3. Nguyễn Thi Trang – DT010139

Hà Nội, 1/2021
ĐỒ ÁN 2

HỌC VIỆN KỸ THUẬT MẬT MÃ


KHOA ĐIỆN TỬ - VIỄN THÔNG
--------------------------------

ĐỒ ÁN 2

Đề tài: “Nghiên cứu sử dụng I2C giao tiếp RTC trong


STM8S005K6”

Giảng viên hướng dẫn: Thầy Đặng Văn Hải


Nhóm sinh viên thực hiên:
1. Trần Minh Cường – DT010104
2. Nguyễn Thu Hòa – DT010112
3. Nguyễn Thi Trang – DT010139

Hà Nội, 1/2021
ĐỒ ÁN 2

NHIỆM VỤ ĐỒ ÁN
Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đồ án 1
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Các số liệu cần thiết để thiết kế
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
ĐỒ ÁN 2

PHẦN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN


Tinh thần của các sinh viên trong quá trình làm đồ án:
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Đánh giá chất lượng của khóa luận (so với yêu cầu đã đề ra trong nhiệm vụ đồ án
trên các mặt lý luận thực tiễn, tính toán,...):
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Cho điểm của cán bộ hướng dẫn (ghi cả số và chữ):
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Hà Nội, ngày 18 tháng 1 năm 2021
Giảng viên hướng dẫn 
 (Ký và ghi rõ họ tên)
ĐỒ ÁN 2

PHẦN NHẬN XÉT TÓM TẮT CỦA NGƯỜI CHẤM PHẢN BIỆN
Đánh giá chất lượng của khóa luận (so với yêu cầu đã đề ra trong nhiệm vụ đồ án
trên các mặt lý luận thực tiễn, tính toán,...):
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Cho điểm của cán bộ hướng dẫn (ghi cả số và chữ):
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Hà Nội, ngày 18 tháng 1 năm 2021
Người chấm phản biện
ĐỒ ÁN 2

LỜI CẢM ƠN
Trong thời gian làm đồ án 2, nhóm chúng em đã nhận được sự giúp đỡ nhiệt
tình và đóng góp của thầy cô và các bạn.
Chúng em xin gửi lời cảm ơn chân thành nhất đến Thầy Đặng Văn Hải đã là
người hướng dẫn, chỉ bảo cho nhóm chúng em trong suốt thời gian tìm hiểu về đồ án 2
lần nay.
Nhóm chúng em cũng cảm ơn chân thành đến các thầy cô giáo trong trường
Học viện kỹ thuật Mật Mã nói chung và các thầy cô giáo trong khoa DTVT nói riêng
đã cho chúng em một nền tảng vững về kiến thức đại cương cũng như nền móng về
chuyên ngành và cũng tạo điều kiện giúp đỡ chúng em trong suốt quá trình học tập và
quá trình làm đồ án này.
Cuối cùng em xin cảm ơn đến gia đình, bạn bè, đã tạo điều kiện quan tâm, giúp đỡ,
động viên chúng em trong suốt quá trình hoàn thành làm đồ án 1.
Hà Nôi, ngày 18 tháng 1 năm 2021
ĐỒ ÁN 2

MỤC LỤC

MỤC LỤC
LỜI CẢM ƠN........................................................................................................i
MỤC LỤC.............................................................................................................ii
LỜI NÓI ĐẦU......................................................................................................v
DANH MỤC HÌNH ẢNH...................................................................................vi
DANH MỤC BẢNG BIỂU...............................................................................viii
CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C.....................................................1
1.1 Khái niệm..................................................................................................1
1.2 Đặc điểm...................................................................................................1
1.3 Cấu tạo và nguyên lý hoạt động..................................................................1
1.3.1 Bus vật lý I2C.......................................................................................1
1.3.2 Thiết bị chủ (Master) và tớ (Slave)......................................................2
1.3 Các chế độ hoạt động, cách hoạt động của I²C.........................................2
1.3.1 Chế độ hoạt động..................................................................................2
1.3.2 Cách thức hoạt động.............................................................................4
1.5 Giao thức truyền dữ liệu..............................................................................7
1.5.1 Điều kiện bắt đầu (Start Condition).....................................................7
1.5.2 Khối địa chỉ..........................................................................................8
1.5.3 Bit Read / Write....................................................................................8
1.5.4 Bit ACK / NACK.................................................................................8
1.5.5 Khối dữ liệu..........................................................................................8
1.5.6 Điều kiện kết thúc (Stop condition).....................................................8
1.5.7 Thuật toán truyền nhận dữ liệu............................................................8
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...................................................................11
2.1 Giao tiếp SPI.............................................................................................11
2.1.1 Khái niệm...........................................................................................11
2.1.2 Cơ chế hoạt động................................................................................11
2.1.3 Các chế độ hoạt động.........................................................................12
ĐỒ ÁN 2

2.2 STM8S005K6............................................................................................12
2.2.1 Giới thiệu về STM8S005K6...............................................................13
2.2.2 Đặc điểm của STM8S005K6..............................................................13
2.2.3 Sơ đồ khối..........................................................................................15
2.2.4 Bộ xử lý trung tâm STM8..................................................................15
2.2.5 Bộ giao tiếp đơn (SWIM) và bộ gỡ lỗi (DM)....................................16
2.2.6 Bộ điều khiển ngắt..............................................................................17
2.2.7 Bộ nhớ chương trình Flash và dữ liệu EEPROM...............................17
2.2.8 Bộ điều khiển xung............................................................................18
2.2.9 Quản lý nguồn....................................................................................18
2.2.10 Bộ điều chỉnh timers........................................................................19
2.2.11 Bộ đếm tự khởi động........................................................................19
2.2.12 Beeper...............................................................................................19
2.2.13 TIM1 – Bộ timer điều khiển nâng cao 16bit....................................19
2.2.14 TIM2, TIM3 – Bộ timer 16bit..........................................................19
2.2.15 TIM4 – Bộ timers 8bit cơ bản..........................................................20
2.2.16 Bộ chuyển đổi tương tự - số (ADC1)...............................................20
2.2.17 Giao tiếp ngoại vi.............................................................................20
2.2.18 Tổ chức bộ nhớ.................................................................................21
2.3 IC74HC595...............................................................................................22
2.3.1 Khái niệm...........................................................................................22
2.3.2 Sơ đồ chân..........................................................................................22
2.3.3 Thông số kỹ thuật...............................................................................23
2.3.4 Hoạt động...........................................................................................24
2.3.5 SPI với IC74HC595...........................................................................24
2.4 Ma trận bàn phím......................................................................................25
2.4.1 Khái niệm...........................................................................................25
2.4.2 Nguyên lý...........................................................................................25
2.5 IC thời gian thực DS3231.........................................................................25
2.6 Module 4 led 7 đoạn..................................................................................26
ĐỒ ÁN 2

CHƯƠNG 3: THIẾT KẾ KIT HỌC TẬP SỬ DỤNG GIAO TIẾP I2C.............28


3.1 Sơ đồ nguyên lý.........................................................................................28
3.2 Sơ đồ mạch in............................................................................................29
3.3 Chương trình điều khiển............................................................................30
3.4 Mô phỏng chương trình và hướng phát triển............................................30
3.4.1 Kết quả chạy thử KIT.........................................................................30
3.4.2 Hướng phát triển................................................................................30
KẾT LUẬN.........................................................................................................28
TÀI LIỆU THAM KHẢO...................................................................................28
ĐỒ ÁN 2

LỜI NÓI ĐẦU


Ngày nay cùng với sự phát triển của nhanh chóng của khoa học kỹ thuật thì các
lĩnh vực ứng dụng kỹ thuật công nghệ cao ngày càng phát triển và ngành Điện tử Viễn
thông đang ngày càng khẳng định vai trò to lớn của mình.
Ngoài việc tiếp thu các kiến thức từ thầy cô, sách vở, thì việc thực hành rất quan
trọng. Nó giúp củng cố kiến thức và giúp sinh viên có nhiều trải nghiệm thực tế.
Không thể không nói đến lợi ích của các KIT học tập, ví dụ như: KIT 8051, Arduino,

Và từ đó, nhóm chúng em chọn đề tài: “Nghiên cứu sử dụng I2C và ứng dụng
thiết kế kit học tập” để nghiên cứu giao tiếp I2C cũng như thiết kế ra một KIT học tập
có ứng dụng thực tế.
Bố cục đồ án chia làm 3 chương: 
 CHƯƠNG 1: TỔNG QUAN VỀ GIAO TIẾP I2C
 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
 CHƯƠNG 3: THIẾT KẾ KIT HỌC TẬP SỬ DỤNG GIAO TIẾP I2C
ĐỒ ÁN 2

DANH MỤC HÌNH ẢNH


Hình 1.1: Sơ đồ kết nối các thiết bị trên mạng I2C...............................................1
Hình 1.2: Sơ đồ kết nối I2C..................................................................................2
Hình 1.3: Đánh địa chỉ trong I2C..........................................................................3
Hình 1.4: Một Master nhiều Slave........................................................................3
Hình 1.5: Nhiều Master nhiều Slave.....................................................................4
Hình 1.6: Thiết bị Master gửi điều kiện bắt đầu đến tất cả các thiết bị Slave.......4
Hình 1.7: Slave so sánh địa chỉ được gửi từ thiết bị Master.................................5
Hình 1.8: Thiết bị Master gửi hoặc nhận khung dữ liệu.......................................5
Hình 1.9: Gửi báo hiệu..........................................................................................6
Hình 1.10: Gửi tín hiệu dừng truyền.....................................................................6
Hình 1.11: Master gửi dữ liệu đến thiết bị Slave..................................................7
Hình 1.12: Master nhận dữ liệu đến thiết bị Slave................................................7
Hình 1.13: Cấu trúc khung dữ liệu........................................................................7
Hình 1.14: Start Condition....................................................................................8
Hình 1.15: Quá trình truyền nhận dữ liệu.............................................................9
Hình 1.16: Lưu đồ thuậ toán truyền nhận dữ liệu.................................................9
Hình 2.1: Giao diện SPI......................................................................................11
Hình 2.2: Quá trình truyền dữ liệu......................................................................12
Hình 2.3: Các chế độ hoạt động của SPI.............................................................12
Hình 2.4: STM8S005K6.....................................................................................13
Hình 2.5: Sơ đồ khối...........................................................................................15
Hình 2.6: Sơ đồ chân...........................................................................................15
Hình 2.7: Tổ chức bộ nhớ Flash..........................................................................17
Hình 2.8: Sơ đồ tổ chức bộ nhớ..........................................................................21
Hình 2.9: Sơ đồ chân 74HC595..........................................................................23
Hình 2.10: Nguyên lý hoạt động.........................................................................24
Hình 2.11: Ma trận phím 4x4..............................................................................25
Hình 2.12: IC thời gian thực DS3231.................................................................26
Hình 2.13: Sơ đồ 4 led 7 đoạn.............................................................................26
Hình 2.14: Module 4 led 7 đoạn..........................................................................27
Hình 3.1: Khối MCU, RTC và SENSOR............................................................28
ĐỒ ÁN 2

Hình 3.2: Khối PSU, USB...................................................................................28


Hình 3.3: Khối led và ma trận phím....................................................................29
Hình 3.4: Sơ đồ 2D..............................................................................................29
Hình 3.5: Mạch 3D..............................................................................................30
Hình 3.6: Mạch thực tế........................................................................................30
ĐỒ ÁN 2

DANH MỤC BẢNG BIỂU

Bảng 2.1: Đặc điểm của STM8S005K6..............................................................14


Bảng 2.2: Phép gán bit định vị xung nhịp ngoại vi trong thanh ghi
CLK_PCKENR1/2..............................................................................................18
Bảng 2.3: Đặc điểm timer TIM...........................................................................20
Bảng 2.4: Địa chỉ bộ nhớ Flash, EEPROM và RAM..........................................22
Bảng 2.5: Tổ chức vector ngắt............................................................................22
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C


1.1 Khái niệm
I²C, viết tắt của từ tiếng Anh “Inter-Integrated Circuit”, là một loại bus nối tiếp
được phát triển bởi hãng sản xuất linh kiện điện tử Philips. Ban đầu, loại bus này chỉ
được dùng trong các linh kiện điện tử của Philips. Sau đó, do tính ưu việt và đơn giản
của nó, I²C đã được chuẩn hóa và được dùng rộng rãi trong các mô đun truyền thông
nối tiếp của vi mạch tích hợp ngày nay.
Đây là một loại giao thức giao tiếp nối tiếp đồng bộ. Nó có nghĩa là các bit dữ liệu
được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi một tín
hiệu đồng hồ tham chiếu.
1.2 Đặc điểm
- Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC nào trên
mạng I2C.
- Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART. Vì
vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết.
- Cơ chế đơn giản để xác thực dữ liệu được truyền.
- Sử dụng hệ thống địa chỉ 7bit để xác định một thiết bị / IC cụ thể trên bus I2C.
- Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối đơn giản với
hai đường bus chung I2C.
1.3 Cấu tạo và nguyên lý hoạt động
I²C sử dụng hai đường truyền tín hiệu:
- Một đường xung nhịp đồng hồ(SCL) chỉ do Master phát đi (thông thường ở 100kHz
và 400kHz. Mức cao nhất là 1Mhz và 3.4MHz).
- Một đường dữ liệu(SDA) theo 2 hướng.
1.3.1 Bus vật lý I2C
Bus I2C (dây giao tiếp) chỉ gồm hai dây và được đặt tên là Serial Clock Line
(SCL) và Serial Data Line (SDA). Dữ liệu được truyền đi được gửi qua dây SDA và
được đồng bộ với tín hiệu đồng hồ (clock) từ SCL. Tất cả các thiết bị trên mạng I2C
được kết nối với cùng đường SCL và SDA như sau:

Hình 1.1: Sơ đồ kết nối các thiết bị trên mạng I2C


ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

Cả hai đường bus I2C (SDA, SCL) đều hoạt động như các bộ lái cực máng hở
(open drain). Nó có nghĩa là bất kỳ thiết bị / IC trên mạng I2C có thể lái SDA và SCL
xuống mức thấp, nhưng không thể lái chúng lên mức cao. Vì vậy, một điện trở kéo lên
(khoảng 1 kΩ đến 4,7 kΩ) được sử dụng cho mỗi đường bus, để giữ cho chúng ở mức
cao (ở điện áp dương) theo mặc định.
Lý do sử dụng một hệ thống cực máng hở (open drain) là để không xảy ra hiện
tượng ngắn mạch, điều này có thể xảy ra khi một thiết bị cố gắng kéo đường dây lên
cao và một số thiết bị khác cố gắng kéo đường dây xuống thấp.
1.3.2 Thiết bị chủ (Master) và tớ (Slave)
Các thiết bị kết nối với bus I2C được phân loại hoặc là thiết bị Chủ (Master)
hoặc là thiết bị Tớ (Slave). Ở bất cứ thời điểm nào thì chỉ có duy nhất một thiết bị
Master ở trang thái hoạt động trên bus I2C. Nó điều khiển đường tín hiệu đồng hồ SCL
và quyết định hoạt động nào sẽ được thực hiện trên đường dữ liệu SDA.
Tất cả các thiết bị đáp ứng các hướng dẫn từ thiết bị Master này đều là Slave.
Để phân biệt giữa nhiều thiết bị Slave được kết nối với cùng một bus I2C, mỗi thiết bị
Slave được gán một địa chỉ vật lý 7-bit cố định. Khi một thiết bị Master muốn truyền
dữ liệu đến hoặc nhận dữ liệu từ một thiết bị Slave, nó xác định địa chỉ thiết bị Slave
cụ thể này trên đường SDA và sau đó tiến hành truyền dữ liệu. Vì vậy, giao tiếp có
hiệu quả diễn ra giữa thiết bị Master và một thiết bị Slave cụ thể. Tất cả các thiết bị
Slave khác không phản hồi trừ khi địa chỉ của chúng được chỉ định bởi thiết bị Master
trên dòng SDA.

Hình 1.2: Sơ đồ kết nối I2C

1.3 Các chế độ hoạt động, cách hoạt động của I²C
1.3.1 Chế độ hoạt động
- Chế độ chuẩn (standard mode) hoạt động ở tốc độ 100 Kbit/s.
- Chế độ tốc độ thấp (low-speed mode) hoạt động ở tốc độ 10 Kbit/s.
Tần số xung nhịp đồng hồ có thể xuống 0 Hz. I²C sử dụng 7bit để định địa chỉ, do đó
trên một bus có thể định địa chỉ tới 112 nút, 16 địa chỉ còn lại được sử dụng vào mục
đích riêng. Bit còn lại quy định việc đọc hay ghi dữ liệu (1 là write, 0 là read)
Ví dụ 1.1:
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

Địa chỉ của một thiết bị là 0x20. Khi cần đọc vào thiết bị này thì thanh ghi sẽ có
giá trị 0x40 (thêm bit 0) còn khi ghi thì giá trị là 0x41 (thêm vào 0). Điểm mạnh của
I²C chính là hiệu suất và sự đơn giản của nó: một khối điều khiển trung tâm có thể điều
khiển cả một mạng thiết bị mà chỉ cần hai lối ra điều khiển. Ngoài ra I2C còn có chế
độ 10bit địa chỉ:

Hình 1.3: Đánh địa chỉ trong I2C

Nếu chia theo quan hệ chủ tớ:


- Một Master một Slave.
- Một Master nhiều Slave.
- Nhiều Master nhiều Slave.
Một Master nhiều Slave
Bởi vì I2C sử dụng địa chỉ, nhiều thiết bị Slave có thể được điều khiển từ một
thiết bị Master duy nhất. Với 7bit địa chỉ tương ứng 128 (27) địa chỉ duy nhất có sẵn. 
Để kết nối nhiều thiết bị Slave với một một thiết bị Master duy nhất, hãy nối dây như
hình bên dưới, với các điện trở kéo lên 4.7 kΩ kết nối các đường SDA và SCL với
Vcc:

Hình 1.4: Một Master nhiều Slave

Nhiều Master nhiều Slave.


Nhiều thiết bị Master có thể được kết nối với một thiết bị Slave đơn hoặc nhiều
thiết bị Slave. Vấn đề với nhiều thiết bị Master trong cùng một hệ thống xuất hiện khi
hai thiết bị Master cố gắng gửi hoặc nhận dữ liệu cùng một lúc trên dòng SDA. Để giải
quyết vấn đề này, mỗi thiết bị Master cần phát hiện xem đường SDA thấp hay cao
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

trước khi truyền một thông điệp. Nếu đường SDA thấp, điều này có nghĩa là một thiết
bị Master khác có quyền điều khiển bus và thiết bị Master còn lại phải đợi để gửi tin
nhắn. Nếu đường SDA cao thì an toàn để truyền tải thông điệp. Để kết nối nhiều thiết
bị Master với nhiều thiết bị Slave, hãy sử dụng sơ đồ sau đây, với điện trở kéo lên 4.7
kΩ kết nối các đường SDA và SCL với Vcc:

Hình 1.5: Nhiều Master nhiều Slave.

1.3.2 Cách thức hoạt động


Trình tự hoạt động sau đây diễn ra khi một thiết bị Master gửi dữ liệu đến một
thiết bị Slave cụ thể thông qua bus I2C:
- Thiết bị Master gửi điều kiện bắt đầu đến tất cả các thiết bị Slave
- Thiết bị Master gửi 7bit địa chỉ của thiết bị Slave mà thiết bị Master muốn giao tiếp
cùng với bit Read/Write

Hình 1.6: Thiết bị Master gửi điều kiện bắt đầu đến tất cả các thiết bị Slave
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

Mỗi thiết bị Slave so sánh địa chỉ được gửi từ thiết bị Master đến địa chỉ riêng
của nó. Nếu địa chỉ trùng khớp, thiết bị Slave gửi về một bit ACK bằng cách kéo
đường SDA xuống thấp và bit ACK / NACK được thiết lập là ‘0’. Nếu địa chỉ từ thiết
bị Master không khớp với địa chỉ riêng của thiết bị Slave thì đường SDA ở mức cao và
bit ACK / NACK sẽ ở mức ‘1’ (mặc định).

Hình 1.7: Slave so sánh địa chỉ được gửi từ thiết bị Master

Thiết bị Master gửi hoặc nhận khung dữ liệu. Nếu thiết bị Master muốn gửi dữ
liệu đến thiết bị Slave, bit Read / Write là mức điện áp thấp. Nếu thiết bị Master đang
nhận dữ liệu từ thiết bị Slave, bit này là mức điện áp cao.

Hình 1.8: Thiết bị Master gửi hoặc nhận khung dữ liệu

Nếu khung dữ liệu được thiết bị Slave nhận được thành công, nó sẽ thiết lập bit
ACK / NACK thành ‘0’, báo hiệu cho thiết bị Master tiếp tục.
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

Hình 1.9: Gửi báo hiệu

Sau khi tất cả dữ liệu được gửi đến thiết bị Slave, thiết bị Master gửi điều kiện
dừng để báo hiệu cho tất cả các thiết bị Slave biết rằng việc truyền dữ liệu đã kết thúc.

Hình 1.10: Gửi tín hiệu dừng truyền

Hình dưới đây thể hiện toàn bộ các bit dữ liệu được gửi trên đường SDA và thiết bị
điều khiển chúng khi thiết bị Master gửi dữ liệu đến thiết bị Slave.
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

Hình 1.11: Master gửi dữ liệu đến thiết bị Slave

Hình dưới đây thể hiện toàn bộ các bit dữ liệu được gửi trên đường SDA và thiết bị
điều khiển chúng khi thiết bị Master nhận dữ liệu đến thiết bị Slave.

Hình 1.12: Master nhận dữ liệu đến thiết bị Slave

1.5 Giao thức truyền dữ liệu


Dữ liệu được truyền giữa thiết bị Master và các thiết bị Slave thông qua một
đường dữ liệu SDA duy nhất, thông qua các chuỗi có cấu trúc gồm các số 0 và 1 (bit).
Mỗi chuỗi số 0 và 1 được gọi là giao dịch (transaction) và dữ liệu trong mỗi giao dịch
có cấu trúc như sau:

Hình 1.13: Cấu trúc khung dữ liệu

1.5.1 Điều kiện bắt đầu (Start Condition)


Bất cứ khi nào một thiết bị chủ / IC quyết định bắt đầu một giao dịch, nó sẽ
chuyển mạch SDA từ mức điện áp cao xuống mức điện áp thấp trước khi đường SCL
chuyển từ cao xuống thấp. Khi điều kiện bắt đầu được gửi bởi thiết bị Master, tất cả
các thiết bị Slave đều hoạt động ngay cả khi chúng ở chế độ ngủ (sleep mode) và đợi
bit địa chỉ.
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

Hình 1.14: Start Condition

1.5.2 Khối địa chỉ


Nó bao gồm 7bit và được lấp đầy với địa chỉ của thiết bị Slave đến / từ đó thiết
bị Master cần gửi / nhận dữ liệu. Tất cả các thiết bị Slave trên bus I2C so sánh các bit
địa chỉ này với địa chỉ của chúng.
1.5.3 Bit Read / Write 
Bit này xác định hướng truyền dữ liệu. Nếu thiết bị Master / IC cần gửi dữ liệu
đến thiết bị Slave, bit này được thiết lập là ‘0’. Nếu IC Master cần nhận dữ liệu từ thiết
bị Slave, bit này được thiết lập là ‘1’.
1.5.4 Bit ACK / NACK
ACK / NACK là viết tắt của Acknowledged/Not-Acknowledged. Nếu địa chỉ
vật lý của bất kỳ thiết bị Slave nào trùng với địa chỉ được thiết bị Master phát, giá trị
của bit này được set là ‘0’ bởi thiết bị Slave. Ngược lại, nó vẫn ở mức logic ‘1’ (mặc
định).
1.5.5 Khối dữ liệu
Nó bao gồm 8bit và chúng được thiết lập bởi bên gửi, với các bit dữ liệu cần
truyền tới bên nhận. Khối này được theo sau bởi một bit ACK / NACK và được set
thành ‘0’ bởi bên nhận nếu nó nhận thành công dữ liệu. Ngược lại, nó vẫn ở mức logic
‘1’. Sự kết hợp của khối dữ liệu theo sau bởi bit ACK / NACK được lặp lại cho đến
quá trình truyền dữ liệu được hoàn tất.
1.5.6 Điều kiện kết thúc (Stop condition)
Sau khi các khung dữ liệu cần thiết được truyền qua đường SDA, thiết bị
Master chuyển đường SDA từ mức điện áp thấp sang mức điện áp cao trước khi đường
SCL chuyển từ cao xuống thấp.
1.5.7 Thuật toán truyền nhận dữ liệu
Bước1: Host xác định thiết bị cần giao tiếp và chế độ giao tiếp là read hay là write.
việc này được thực hiện bằng cách gửi 7bit địa chỉ thiết bị và thêm bit cuối cùng, 0 nếu
read và 1 nếu write.
ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

Bước 2: Reset chế độ bằng cách thực hiện liên tiếp việc start và stop.

Hình 1.15: Quá trình truyền nhận dữ liệu

Bước 3: Gửi địa chỉ thanh ghi cần truy nhập của thiết bị cũng như chế độ read hay
write.
Bước 4: Gửi hoặc nhận 1byte dữ liệu. Sau khi truyền 1byte dữ liệu, bên nhận đc dữ
liệu sẽ gửi lại 1bit ACK để xác nhận đã nhận được dữ liệu và tiếp tục truyền hoặc bit
NACK để báo nhận đc dữ liệu nhưng kết thúc quá trình truyền.

Hình 1.16: Lưu đồ thuậ toán truyền nhận dữ liệu

Chú ý: ASK là bit do slave truyền chứ ko phải do master truyền


ĐỒ ÁN 2 CHƯƠNG 1: TỔNG QUAN GIAO TIẾP I2C

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.
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giao tiếp SPI
2.1.1 Khái niệm
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do
hãng Motorola đề xuất. Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip
Master điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master
vì thế truyền thông chỉ xảy ra giữa Master và Slave. SPI là một cách truyền song công
(full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra
đồng thời. SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp
trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI
(Master Ouput Slave Input) và SS (Slave Select).
- SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần 1
đường giữ nhịp, mỗi nhịp trên chân SCK báo 1bit dữ liệu đến hoặc đi. Đây là điểm
khác biệt với truyền thông không đồng bộ mà chúng ta đã biết trong chuẩn UART. Sự
tồn tại của chân SCK giúp quá trình truyền ít bị lỗi và vì thế tốc độ truyền của SPI có
thể đạt rất cao. Xung nhịp chỉ được tạo ra bởi chip Master.
- MISO – Master Input / Slave Output: nếu là chip Master thì đây là đường Input còn
nếu là chip Slave thì MISO lại là Output.
- MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường Output còn
nếu là chip Slave thì MOSI là Input. MOSI của Master và các Slaves được nối trực
tiếp với nhau.
- SS – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip Slave đường
SS sẽ ở mức cao khi không làm việc. Nếu chip Master kéo đường SS của một Slave
nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó. Chỉ có 1
đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển SS trên Master, tùy
thuộc vào thiết kế của người dùng.

Hình 2.17: Giao diện SPI

2.1.2 Cơ chế hoạt động


ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits. Cứ mỗi xung nhịp
do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi dữ liệu của Master
được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của
chip Slave cũng được truyền qua Master trên đường MISO. Do 2 gói dữ liệu trên 2
chip được gởi qua lại đồng thời nên quá trình truyền dữ liệu này được gọi là “song
công”.

Hình 2.18: Quá trình truyền dữ liệu

2.1.3 Các chế độ hoạt động


- Cực của xung giữ nhịp (Clock Polarity): được gọi tắt là CPOL là khái niệm dùng chỉ
trạng thái của chân SCK ở trạng thái nghỉ. Ở trạng thái nghỉ (Idle), chân SCK có thể
được giữ ở mức cao (CPOL=1) hoặc thấp (CPOL=0).
- Phase (CPHA): dùng để chỉ cách mà dữ liệu được lấy mẫu (sample) theo xung giữ
nhịp. Dữ liệu có thể được lấy mẫu ở cạnh lên của SCK (CPHA=0) hoặc cạnh xuống
(CPHA=1).
Sự kết hợp của SPOL và CPHA làm nên 4 chế độ hoạt động của SPI.

Hình 2.19: Các chế độ hoạt động của SPI


ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

2.2 STM8S005K6

Hình 2.20: STM8S005K6

2.2.1 Giới thiệu về STM8S005K6


Bộ vi điều khiển 8-bit dòng giá trị STM8S005K6 gồm 32 Kbyte bộ nhớ chương
trình Flash, cộng với 128byte EEPROM dữ liệu. Chúng được gọi là thiết bị mật độ
trung bình trong họ của dòng vi điều khiển STM8S (RM0016). Tất cả các thiết bị
thuộc dòng giá trị STM8S005K6 cung cấp những tính năng sau: hiệu suất, độ bền,
giảm chi phí hệ thống và chu kỳ phát triển ngắn. Hiệu suất và độ bền của thiết bị được
đảm bảo bởi dữ liệu thực EEPROM hỗ trợ lên đến 100000 chu kỳ ghi/xóa, lõi và thiết
bị ngoại vi tiên tiến được sản xuất theo công nghệ hiện đại ở tần số xung nhịp 16 MHz,
I/Os mạnh mẽ, cơ quan giám sát độc lập với xung nhịp riêng biệt nguồn và hệ thống
bảo mật xung nhịp. Chi phí hệ thống được giảm xuống nhờ mức độ tích hợp hệ thống
cao với bộ dao động bên trong, bộ điều chỉnh và reset brown-out. Sơ đồ chân, bản đồ
bộ nhớ và thiết bị ngoại vi mô-đun tương thích cho phép khả năng mở rộng ứng dụng
và giảm chu kỳ phát triển. Tất cả các sản phẩm hoạt động từ điện áp cung cấp 2,95 V
đến 5,5 V.
2.2.2 Đặc điểm của STM8S005K6
Đặc điểm STM8S005K6
Số chân 32
Số chân GPIOs tối đa (I/O) 25
Chân ngắt ngoài 23
Timer CAPCOM 8
Đầu ra Timer 3
Chuyển đổi A/D 7
High-sink I/Os 12
Bộ nhớ Flash (bytes) 32K
Dữ liệu EEPROM (bytes) 128
RAM (bytes) 2K
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Bộ ngoại vi TIM1, TIM2 và TIM3, TIM4, SPI,


I2C, UART, Window WDG,
independent WDG, ADC
Bảng 2.1: Đặc điểm của STM8S005K6

Lõi
- Tần số CPU tối đa: 16MHz
- Lõi STM8 nâng cao với cấu trúc Harvard và đường ống dãn 3 gai đoạn
Bộ nhớ
- Giá trị trung bình của Flash/EEPROM
+ Bộ nhớ chương trình: 32Kbytes bộ nhớ Flash, dữ liệu tồn tại được 20 năm ở 55 độ C
sau 100 chu kỳ
+ Bộ nhớ dữ liệu: 128byte dữ liệu EEPROM, tuổi thọ lên tới 100000 chu kì ghi/xóa.
- RAM: 2Kbytes
Xung nhịp, reset và nguồn cung cấp
- Điện áp hoạt động từ 2.95V đến 5.5V.
- Điều khiển xung và 4 nguồn xung chính.
- Hệ thông bảo mật dao động với bộ điểu khiển dao động.
- Quản lý nguồn cung cấp.
Quản lý ngắt
- Bộ điều khiển ngắt lồng nhau với 32 ngắt.
- Lên đến 37 ngắt ngoài với 6 vector.
Timers
- 2x16bit bộ Timers, với 2+3 các kênh CAPCOM (IC, OC hoặc PWM).
- Bộ Timers nâng cao: 16bit, 4 kênh CAPCOM, 3 đầu ra bổ sung.
- Bộ định thời 8 bit.
- Bộ định thời tự hoạt động.
- Bộ định thời Window và bộ điều chỉnh timer riêng biệt.
Giao tiếp ngoại vi
- UART với đầu ra xung đồng bộ, SmartCard, IrDA, LIN.
- Giao tiếp SPI lên đến 8Mbit/s.
- Giao tiếp I2C lên đến 400kbit/s.
- Bộ chuyển đổi tương tự - số (ADC)
-10bit ADC, ±1 LSB ADC ghép lên tới 10 kênh, chế độ quét và bộ điều chỉnh tương
tự.
I/Os
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

- Gồm 25 chân I/O gồm 12 chân high-sink.


Hỗ trợ phát triển
- Module dây đơn được nhúng (SWIM) để lập trình nhanh trên chip và gỡ lỗi không
cần giao tiếp.
2.2.3 Sơ đồ khối

Hình 2.21: Sơ đồ khối


ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 2.22: Sơ đồ chân

2.2.4 Bộ xử lý trung tâm STM8


- STM8 lõi 8bit gồm 6 thanh ghi bên trong, 20 chế độ địa chỉ gồm địa chỉ gián tiếp và
các chế độ địa chỉ trực tiếp và 80 lệnh.
Cấu tạo và thanh ghi
- Cấu trúc Harvard.
- Ống dẫn 3 giai đoạn.
- Bộ nhớ chương trình rộng 32bit – nập chương trình đơn cho hầu hết các lệnh.
- Thanh ghi X và Y 16bit cho phép các chế độ địa chỉ có hoặc không offset và các thao
tác dữ liệu sửa đổi đọc-ghi.
- Bộ tích lũy 8 bit.
- Bộ đếm chương trình 24 bit – không gian bộ nhớ tuyến tính 16Mbytes.
- Con trỏ ngăn xếp truy cập từ 16bit – 64Kbit.
- Thanh ghi mã điều kiện 8bit – 7 cờ điều kiện cho kết quả của lệnh cuối cùng.
Địa chỉ
- 20 chế độ địa chỉ.
- Chế độ địa chỉ gián tiếp chỉ tới bất kì đâu trong không gian địa chỉ.
- Chế độ địa chỉ trực tiếp trỏ tới các biến cục bộ và truyền tham số.
Bộ thực thi lệnh
- 80 lệnh với kích thước trung bình là 2 byte
- Chuyển đổi dữ liệu và các hàm logic/số học.
- 8bit x 8bit.
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

- 8bit x 16bit và 16bit x 16bit.


- Thao tác bit.
- Truyền dữ liệu giữa ngăn xếp và bộ lưu trữ (push/pop) với quyền truy cập ngăn xếp
trực tiếp.
- Truyền dữ liệu bằng thanh ghi X và Y hoặc truyền trực tiếp từ bộ nhớ sang bộ nhớ.
2.2.5 Bộ giao tiếp đơn (SWIM) và bộ gỡ lỗi (DM)
Bộ giao tiếp đơn và bộ gỡ lỗi cho phép gỡ lỗi không truy cập, thời gian thực và lập
trình bộ nhớ.
SWIM
Bộ giao tiếp đơ truy cập trực tiếp vào bộ gỡ lỗi và bộ nhớ chương trình. Giao tiếp có
thể thực hiện trong tất cả các chế độ hoạt động của thiết bị. Tốc độ truyền dữ liệu tối
đa là 145byte/ms.
Bộ gỡ lỗi
- R/W tới RAM và thanh ghi ngoại vi trong thời gian thực.
- R/W truy cập vào tất cả các tài nguyên bằng cách ngừng hoạt động của CPU.
- Các điểm ngắt trên tất cả các lệnh trong bộ nhớ chương trình.
- Có 2 điểm ngắt nâng cao, 23 cấu hình được xác định trước.
2.2.6 Bộ điều khiển ngắt
- Các ngắt lồng nhau với 3 mức ưu tiên phần mềm.
- 32 vector ngắt với ưu tiên phần cứng.
- Lên đến 37 ngắt ngoài trên 6 vector bao gồm TLI.
- Lỗi và đặt lại ngắt.
2.2.7 Bộ nhớ chương trình Flash và dữ liệu EEPROM
- 32Kbyte bộ nhớ chương trình Flash.
- Đọc trong khi ghi: Có thể ghi trong bộ nhớ dữ liệu trong khi thực thi lệnh trong bộ
nhớ chương trình.
- Vùng byte tùy chọn người dùng.
Write protected (WP)
- WP của bộ nhớ chương trình Flash và dữ liệu EEPROM được dùng để tránh ghi đè
bộ nhớ do sự cố phần mềm của người dung.
- Có 2 cấp độ WP:
+ Mức đầu tiên được gọi là MASS (truy cập bộ nhớ hệ thống an ninh). MASS luôn
được bật để bảo vệ bộ nhớ chương trình Flash chính, bộ nhớ dữ liệu EEPROM và các
byte tùy chọn.
+ Cấp độ thứ hai có thể được kích hoạt để bảo vệ thêm UBC (mã khởi động của người
dùng).
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 2.23: Tổ chức bộ nhớ Flash

2.2.8 Bộ điều khiển xung


Bộ điều khiển xung phân bố xung từ các bộ dao động khác nhau đến lõi và thiết
bị ngoại vi và quản lý xung của các chế độ năng lượng thấp và đẩm bảo tính duy trì
của xung
Đặc điểm
- Bộ đếm xung: Để có được sự tương thích tốt nhất giữa tốc độ và mức tiêu thụ tần số
xung cho CPU và các thiết bị ngoại vi có thể được điều chỉnh bằng bộ định mức có thể
lập trình được.
- Chuyển đổi xung an toàn: Nguồn xung có thể được thay đổi một ccash an toàn khi
đang hoạt động thông qua một thanh ghi cấu hình. Tín hiệu xung không được chuyền
cho đến khi nguồn xung sẵn sàng, thiết kế đảm bảo chuyển đổi không bị trục trặc
- Quản lý xung: Để giảm tiêu thụ điện năng, bộ điều khiển xung có thể dừng xung đến
lõi, thiết bị ngoại vi riêng lẻ hoặc bộ nhớ
- Nguồn xung chính: 4 nguồn xung nhịp khác nhau có thể được sử dụng để điều khiển
xung:
+ Dao động thạch anh với tốc độ cao từ 1 – 16MHz (HSE)
+ Xung người dùng bên ngoài có tốc độ cao lên đến 16MHz (HSE user-ext)
+ Bộ dao động RC bên trong tốc độ cao 16MHz (HSI)
+ RC bên trong tốc độ thấp 128kHz (LSI)
- Xung khởi động: Sau khi đặt lại, bộ vi điều khiển khởi động lại theo mặc định với
xung 2MHz bên trong (HSI/8). Chương trình ứng dụng có thể thay đổi tỷ lệ bộ định
mức trước và nguồn xung nhịp ngay khi bắt đầu thực thi mã
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

- Hệ thống bảo mật xung (CSS): Tính năng này có thể được kích hoạt bằng phần mềm.
Nếu một HSE lỗi xung nhịp xảy ra, RC bên trong (16MHz/8) được CSS tự động chọn
và ngắt có thể được tạo tùy chọn.
- Đầu ra xung chính có thể định cấu hình (CCO): Đầu ra xung bên ngoài để sử dụng
bởi ứng dụng.

Bảng 2.2: Phép gán bit định vị xung nhịp ngoại vi trong thanh ghi CLK_PCKENR1/2

2.2.9 Quản lý nguồn


- Chế độ chờ: Ở chế độ này, CPU bị dừng nhưng các thiết bị ngoại vi vẫn tiếp tục
chạy. Khởi động được thực hiện bởi một ngắt hoặc reset bên trong hoặc bên ngoài.
- Chế độ tạm dừng hoạt động khi bật bộ điều chỉnh: Ở chế độ này, CPU và xung nhịp
ngoại vi sẽ dừng. Khởi động nội bộ được tạo theo các khoảng thời gian có thể lập trình
được bởi đơn vị tự động khởi động (AWU). Bộ điều chỉnh điện áp chính được tiếp tục
bật nguồn, do đó mức tiêu thụ dòng điện cao hơn so với ở chế độ tạm dừng hoạt động
với bộ điều chỉnh tắt, nhưng thời gian khởi động nhanh hơn. Khởi động được kích hoạt
bởi ngắt AWU bên trong, ngắt bên ngoài hoặc reset.
- Chế độ tạm dừng hoạt động với bộ điều chỉnh tắt: Chế độ này giống như chế độ tạm
dừng hoạt động khi bộ điều chỉnh được bật, ngoại trừ việc bộ điều chỉnh điện áp chính
bị tắt, vì vậy thời gian khởi động chậm hơn
- Chế độ tạm dừng: Ở chế độ này, bộ vi điều khiển sử dụng ít năng lượng nhất. CPU
và xung nhịp ngoại vi bị dừng, bộ điều chỉnh điện áp chính bị tắt. Khởi động được
kích hoạt bởi kích thích bên ngoài hoặc reset.
2.2.10 Bộ điều chỉnh timers
Hệ thống điều chỉnh dựa trên hai bộ timers độc lập cung cấp bảo mật tối đa cho các
ứng dụng. Việc kích hoạt bộ điều chỉnh timers được điều khiển bởi các byte tùy chọn
hoặc bằng phần mềm. Sau khi được kích hoạt, các bộ điều chỉnh không thể bị vô hiệu
hóa bởi chương trình người dùng mà không thực hiện cài lại.
- Window watchdog timer.
- Independent watchdog timer.
2.2.11 Bộ đếm tự khởi động
- Được dử dụng để tự khởi động từ chế độ tạm dừng hoạt động
- Nguồn xung nhịp: Bộ dao động RC tần số thấp 128KHz hoặc xung nhịp bên ngoài
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

2.2.12 Beeper
- Chức năng phát ra tín hiệu trên chân BEEP để tạo âm thanh. Tín hiệu trong phạm vi
1,2 đến 4 kHz
- Đầu ra beeper chỉ khả dụng thông qua bit tùy chọn bit AFR7
2.2.13 TIM1 – Bộ timer điều khiển nâng cao 16bit
- Bộ đếm 16bit lên/ xuống với 16bit cho trước
- Bốn kênh nối tiếp/song song độc lập (CAPCOM) có thể cấu hình như đầu vào nối
tiếp, đầu ra song song, tạo PWM (chế độ căn chỉnh cạnh và trung tâm) và đầu ra chế
độ xung đơn
- Module đồng bộ hóa để điều khiển bộ timers với tín hiều bên ngoài
- Ngắt đầu vào để buộc các đầu ra của bộ timers ở trạng thái xác định
- Ba đầu ra bổ sung vào thời gian chết có thể điều chỉnh
- Chế độ mã hóa
- Nguồn ngắt: 3 x đầu vào nối tiếp/đầu ra song song, 1 x overflow/update, 1x break
2.2.14 TIM2, TIM3 – Bộ timer 16bit
- Bộ đếm lên 16 bit (AR)
- Bộ đếm 15bit có thể điều chỉnh thành công suất cố định của 2 tỷ lệ 1...32768
- Chế độ PWM
- Nguồn ngắt: 2 hoặc 3 đầu vào nối tiếp/ đầu ra song song, 1 x overflow/update
2.2.15 TIM4 – Bộ timers 8bit cơ bản
- Nguồn xung: Xung CPU
- Nguồn ngắt: 1 x overflow/update

Bảng 2.3: Đặc điểm timer TIM

2.2.16 Bộ chuyển đổi tương tự - số (ADC1)


Dòng STM8S00K6 có bộ chuyển đổi A/D xấp xỉ 10bit liên tiếp (ADC1) với tối đa 10
kênh đầu vào được ghép và các tính năng chính sau:
- Điện áp đầu vào: 0 đến 10V
- Thời gian chuyển đổi: 14 chu kỳ xung
- Chế độ chuyển đổi đơn, liên tục và có bộ đệm
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

- Kích thước bộ đệm (10x10 bit)


- Chế độ quét để chuyển đổi đơn lẻ và liên tục một chuỗi các kênh
- Điều chỉnh ngắt tường tự
- Đầu vào tác động bên ngoài
- Tác động từ TIM1 TRGO
- Kết thúc ngắt chuyển đổi (EOC)
2.2.17 Giao tiếp ngoại vi
- UART2: Đầy đủ tính năng UART, chế độ đồng bộ, chế độ SPI, chế độ SmartCard,
chế độ IrDA, LIN2.1 master/salve
- SPI: Full-duplex và half-duplex, 8Mbit/s
+ Tốc độ tối đa: 8Mbit/s ( f MASTER /2) cho cả master và slave
+ Truyền đồng bộ song công hoàn toàn
+ Truyền đồng bộ Simplex trên 2 luồng với một luồng dữ liệu 2 chiều
+ Master hoặc salve có thể lựa chọn bằng hardward hoặc software
+ Tính toán CRC
+ Bộ đệm Tx và RX 1 byte
+ Chân đầu vào có thể chọn master/slave
−I 2 C : Lên đến 400Kbit/s
Các tính năng chính của I 2 C
+ Chế độ xung nhịp
+ Chế độ bắt đầu và dừng
Tính năng I 2 C slave
+ Phát hiện địa chỉ chương trình I 2 C
+ Dừng phát hiện bit
Tạo và phát hiện địa chỉ 7 bit/10bit và gọi
Hỗ trợ các tốc độ giao tiếp khác nhau
+ Tốc độ tiêu chuẩn (lên đến 10kHz)
+ Tốc độ nhanh (lên đến 400kHz)
2.2.18 Tổ chức bộ nhớ
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 2.24: Sơ đồ tổ chức bộ nhớ

Vùng nhớ byte Địa chỉ nguồn Địa chỉ đích


Bộ nhớ Flash 32K 0x00 8000 0x00 FFFF
RAM 2K 0x00 0000 0x00 07FF
EEPROM 128 0x00 4000 0x00 407F
Bảng 2.4: Địa chỉ bộ nhớ Flash, EEPROM và RAM

2.2.19 Vector ngắt


ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Bảng 2.5: Tổ chức vector ngắt

2.3 IC74HC595
2.3.1 Khái niệm
74HC595 là IC ghi dịch 8bits kết hợp chốt dữ liệu, đầu vào nối tiếp, đầu ra song
song. Thường dùng trong các mạch điều khiển LED 7 đoạn, quét LED ma trận,…để
tiết kiệm số chân Vi điều khiển tối đa (chỉ dùng 3 chân). Có thể mở rộng số ngõ ra của
Vi điều khiển bao nhiêu tùy thích bằng việc mắc nối tiếp đầu vào dữ liệu các IC với
nhau.
2.3.2 Sơ đồ chân
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 2.25: Sơ đồ chân 74HC595

- Các chân từ 1 tới 7 và chân số 15 là ngõ ra của IC (ứng với Q 0, Q 1, …,Q 7)


- Chân DS (chân số 14) là ngõ vào của IC.
- Chân 16 - VCC là chân cấp nguồn dương (từ 2V đến 6V)
- Chân số 8 GND là chân cấp Ground – cực (-) của nguồn.
- Chân SHCP là chân đưa xung clock (xung nhịp) vào IC và khi có cạnh lên của xung
thì IC đưa tín hiệu ở ngõ vào vào bộ nhớ của IC để chờ xử lý.
- Chân STCP là chân đưa xung clock vào IC để khi có cạnh lên của xung thì IC đưa
toàn bộ 8 bit data đã được lưu (đã nói ở chân SHCP) ra ngõ ra của IC.
- Chân MR
´ là chân reset IC (tức là trả IC về trạng thái ban đầu – giống như khi ta ghost
máy tính vậy – khi chân này tích cực thì toàn bộ bộ nhớ của IC sẽ bị xoá tất cả bằng 0,
tuy nhiên lưu ý là lúc này tín hiệu ở ngõ ra không bị xoá mà vẫn giữ nguyên giá trị
trước đó) và chân này tích cực mức thấp (LOW active) có nghĩa là muốn reset IC thì
phải đưa 0V vào chân này.
- Chân EO
´  là chân Output Enable chân khi được tích cực thì mới cho phép ta điều
chỉnh được giá trị ngõ ra.
IC 74HC595 đầu ra hoạt động ở 2 mức 0 &1 dòng ra tầm 35mA, điện áp hoạt động <=
7V. Công suất trung bình 500mW.
IC 74HC595 chỉ hoạt động ổn định khi xung kích lớn hơn 0,5uS.
2.3.3 Thông số kỹ thuật
- Điện áp hoạt động: 2 – 6V.
- 8bits serial vào, 8bits serial hoặc song song ra.
- Thanh ghi lưu trữ với 3 trạng thái ra.
- Thanh ghi dịch với xóa trực tiếp.
- Tần số quét 100Mhz.
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

- Khả năng xuất: Xuất song song (điều khiển bus), Xuất Serial.


2.3.4 Hoạt động

Hình 2.26: Nguyên lý hoạt động

Ta đặt dữ liệu vào chân DS, và tạo một xung SHCP thì dữ liệu tại chân DS sẽ
được dịch vào thanh ghi 8-STAGE SHIFT REGISTER. Lần lượt làm như trên 8 lần
(dịch bit cao trước), thì ta được 8bit trong thanh ghi 8-STAGE SHIFT REGISTER.
Sau đó ta tạo một xung STCP thì 8bit trong thanh ghi 8-STAGE SHIFT REGISTER sẽ
được sao chép sang thanh ghi 8-BIT STORAGE REGISTER. Lúc này nếu chân OE ở
mức thấp thì ngõ ra sẽ bằng với giá trị thanh ghi 8-BIT STORAGE REGISTER, còn
nếu chân OE ở mức cao thì ngõ ra ở trạng thái tổng trở cao (Hi-Z).
Chú ý:
- Khi dịch dữ liệu vào thanh ghi 8-STAGE SHIFT REGISTER, và chưa tạo xung
STCP thì thanh ghi 8-BIT STORAGE REGISTER sẽ giữ nguyên trạng thái và ngõ ra
cũng giữ nguyên trạng thái.
- Khi chân MR ở mức 0 thì dữ liệu trên thanh ghi 8-STAGE SHIFT REGISTER sẽ bị
xóa, còn thanh ghi 8-BIT STORAGE REGISTER sẽ giữ nguyên trạng thái và ngõ ra
cũng giữ nguyên trạng thái.
2.3.5 SPI với IC74HC595
Giao tiếp SPI với IC 595 gồm 3 đường:
- DATA: Dữ liệu từ MCU sẽ đưa vào chân này, dữ liệu được đưa vào theo kiểu nối
tiếp. Để dễ hình dung, bạn có thể hiểu giống như bạn đưa các đồng xu vào ống vậy.
Tức dữ liệu sẽ được đẩy dồn vào các ngăn nhớ của 595.
- CLK: Đây là tín hiệu đồng bộ quá trình giao tiếp giữa MCU và IC 595. Cứ mỗi bit
dữ liệu được gửi đi đồng nghĩa với việc gửi đi 1 xung clock. Tức khi có 1 xung tích
cực ở sườn dương (từ 0 lên 1) thì 1bit sẽ được dịch vào IC.
- SCK: Là chân Shift Clock, dùng để chốt dữ liệu. Khi có 1 xung tích cực ở sườn
dương thì dữ liệu ở trong IC 595 sẽ được đẩy ra các chân Output tương ứng.
2.4 Ma trận bàn phím
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

2.4.1 Khái niệm


Ma trận bàn phím 4x4 bao gồm 16 phím bấm, chúng được kết nối với nhau tạo thành 4
hàng, 4 cột và cho ra 8 chân kết nối (4 chân hàng ngang (Row: R1-> R4), và 4 chân
cột dọc (Column: C1-> C4)). Bình thường để đọc được phím từ 16 phím đơn, ta cần
phải dùng đến 16 chân của Vi điều khiển, tuy nhiên cách mắc thành ma trận phím 4x4
dưới đây sẽ giúp ta rút gọn còn 8 chân kết nối.

Hình 2.27: Ma trận phím 4x4

Khi ta nhấn một phím bất kỳ, 1 dây hàng ngang sẽ được thông với 1 dây hàng dọc
tương ứng của nó.
2.4.2 Nguyên lý
- Đầu tiên, khi không có nút nào được nhấn, tất cả các chân cột được giữ ở mức CAO
và tất cả các chân hàng được giữ ở mức THẤP.
- Khi một nút được nhấn, chân cột được kéo xuống THẤP vì vậy dòng điện từ cột mức
CAO chảy sang chân hàng mức THẤP.
- MCU bây giờ biết nút nhấn nào nằm trong cột, vì vậy bây giờ nó chỉ cần tìm hàng
của nút nhấn đó. Nó thực hiện điều này bằng cách chuyển đổi từng chân của hàng
CAO, đồng thời đọc tất cả các chân cột để phát hiện chân cột nào trở về CAO.
- Khi chân cột trở lại CAO, Arduino đã tìm thấy chân hàng được kết nối với nút nhấn
đó.
2.5 IC thời gian thực DS3231
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 2.28: IC thời gian thực DS3231

DS3231 là IC thời gian thực I2C (RTC) cực kỳ chính xác với bộ tạo dao động
tinh thể bù nhiệt tích hợp (TCXO). RTC duy trì giây, phút, giờ, ngày, ngày, thông tin
tháng và năm.  Mạch so sánh và tham chiếu điện áp bù nhiệt độ chính xác theo dõi
trạng thái của VCC để phát hiện sự cố mất điện, để cung cấp đầu ra thiết lập lại và để
tự động chuyển sang nguồn dự phòng khi cần thiết.
Thông số kỹ thuật
- Là loại linh kiện dán
- Dải điện áp hoạt động: 2.3V - 5.5V
- Dải nhiệt độ hoạt đông: -40°C ~ 85°C
- Số chân: 16 chân
- Công dụng: Là IC tích hợp cho thời gian bởi vì tính chính xác về thời gian tuyệt đối
cho thời gian.
2.6 Module 4 led 7 đoạn

Hình 2.29: Sơ đồ 4 led 7 đoạn


ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 2.30: Module 4 led 7 đoạn

Đặc điểm kỹ thuật


- A chung (A anode) hoặc K chung
- 4 Dot
- 12 chân
- Điện áp rơi trên LED là 2.2V
- Dòng tối đa chạy qua mỗi LED là 25mA
- Dòng chạy bình thường: 10mA. Nếu nguồn 5V thì mỗi Led phải nối với 1 điện trở
220R (dòng chạy qua mỗi led 13mA).
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

CHƯƠNG 3: THIẾT KẾ KIT HỌC TẬP SỬ DỤNG GIAO TIẾP I2C


3.1 Sơ đồ nguyên lý

Hình 3.31: Khối MCU, RTC và SENSOR

Hình 3.32: Khối PSU, USB


ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 3.33: Khối led và ma trận phím

3.2 Sơ đồ mạch in

Hình 3.34: Sơ đồ 2D
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

Hình 3.35: Mạch 3D

3.3 Chương trình điều khiển


(Xem tại Phụ lục)
3.4 Mô phỏng chương trình và hướng phát triển.
3.4.1 Kết quả chạy thử KIT

Hình 3.36: Mạch thực tế

3.4.2 Hướng phát triển


ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

- Bổ sung nhiều tính năng hơn cho bộ KIT


- Tối ưu hơn về phần cứng cũng như phần mền để KIT ổn định hơn…
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

KẾT LUẬN
Sau một quá trình nghiên cứu học hỏi, được sự giúp đỡ tận tình của thầy cô trong
khoa Điện Tử -Viễn Thông nói chung, thầy Đặng Văn Hải nói riêng trong việc thực
hiển đồ án của chúng em và sau đây là kết quả em đã đạt được trong quá trình làm đồ
án: 
 Hiểu rõ hơn về giao tiếp I2C.
 Có thêm nhiều kinh nghiệm về các phần mền thiết kế mạch chuyên nghiệp.
Từ những kết quả đạt được chúng em mong muốn sẽ phát triển và khai thác
thêm các đề tài lớn hơn đối với kit, để có thể giải quyết những bài toán, và ứng dụng
thực tế, thiết thực hơn trong đời.
Mặc dù em đã nỗ lực và cố gắng để hoàn thiện đồ án một cách tốt nhất, nhưng em vẫn
không thể tránh khỏi những sai sót trong quá trình làm đồ án, rất mong nhận được sự
góp ý của các thầy cô trong hội đồng và các bạn trong khoa để hoàn thiện đồ án tốt
hơn… Cuối cũng, chúng em xin chân thành cảm ơn các thầy cô đã dạy bảo nhóm trong
suốt quá trình học tập tại trường, đặc biệt là thầy Đặng Văn Hải và các thành viên
ĐT1- khoa Điện tử Viễn thông đã giúp chúng em hoàn thành tốt đồ án này.    
Nhóm chúng em xin chân thành cảm ơn !
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

TÀI LIỆU THAM KHẢO


Các Website tham khảo:
1. Datasheet - STM8S005C6 STM8S005K6 - Value line, 16 MHz STM8S 8-bit
MCU, 32-Kbyte Flash memory, data EEPROM, 10-bit ADC, timers, UART,
SPI, I²C
2. I2C Primer: What is I2C? (Part 1) | Analog Devices
3. Wikipedia – Wikipedia tiếng Việt
ĐỒ ÁN 2 TÀI LIỆU THAM KHẢO

You might also like