1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình hoàn chỉnh vi điều khiển PIC 6

9 13 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 207,08 KB

Nội dung

CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600.

2.12.2.1.2 SPI SLAVE MODE Ở chế độ SPI truyền nhận liệu có xung đồng xuất chân SCK Khi truyền nhận xong bit liệu cuối cùng, cờ ngắt SSPIF set Slave mode hoạt động vi điều khiển chế độ sleep, ngắt truyền nhận cho phép “đánh thức” vi điều khiển Khi cần nhận liệu, ta ấn định RC5/SDO ngõ vào (set bit TRISC) Slave mode cho phép tác động chân điều khiển (SSPCON = 0100) Khi chân mức thấp, chân RC5/SDO cho phép xuất liệu mức cao, liệu chân RC5/SDO bị khóa, đồng thời SPI reset (bộ đếm bit liệu gán giá trị 0) Hình 2.22 Giản đồ xung chuẩn giao tiếp SPI (Slave mode) Các ghi liên quan đến chuẩn giao tiếp SPI bao gồm: Thanh ghi INTCON (địa 0Bh, 8Bh, 10Bh, 18Bh): chứa bit cho phép toàn ngắt (GIE PEIE) Thanh ghi PIR1 (địa 0Ch): chứa ngắt SSPIE Thanh ghi PIE1 (địa 8Ch): chứa bit cho phép ngắt SSPIE Thanh ghi TRISC (địa 87h): điều khiển xuất nhập PORTC Thanh ghi SSPBUF (địa 13h): ghi đệm liệu Thanh ghi SSPCON (địa 14h): điều khiển chuẩn giao tiếp SPI Thanh ghi SSPSTAT (địa 94h): chứa bit thị trạng thái chuẩn giao tiếp SPI Thanh ghi TRISA (địa 85h):điều khiển xuất nhập chân Chi tiết ghi trình bày cụ thể phụ lục 2.12.2.2 I2C Đây dạng khác MSSP Chuẩn giao tiếp I2C có hai chế độ Master, Slave kết nối với ngắt I2C sử dụng pin để truyền nhận liệu: RC3/SCK/SCL: chân truyền dẫn xung clock RC4/SDI/SDA: chân truyền dẫn liệu Các khối sơ đồ khối I2C nhiều khác biệt so với SPI Tuy nhiên I2C có thêm khối phát bit Start bit Stop liệu (Start and Stop bit detect) khối xác định địa (Match detect) Các ghi liên quan đến I2C bao gồm: Thanh ghi SSPCON SSPCON2: Hình 2.23 Sơ đồ khối MSSP (I2Cslave điều khiển MSSP mode) Thanh ghi SSPSTAT: ghi chứa trạng thái hoạt động MSSP Thanh ghi SSPBUF: buffer truyền nhận nối tiếp Thanh ghi SSPSR: ghi dịch dùng để truyền nhận liệu Thanh ghi SSPADD: ghi chứa địa giao diện MSSP Các ghi SSPCON, SSPCON2 cho phép đọc ghi Thanh ghi SSPSTAT cho phép đọc ghi bit đầu, bit lại cho phép đọc Thanh ghi SSPBUF chứa liệu truyền nhận đóng vai trò ghi đệm cho ghi dịch liệu SSPSR Thanh ghi SSPADD chứa địa thiết bị ngoại vi cần truy xuất liệu I2C hoạt động Slave mode Khi hoạt động Master mode, ghi SSPADD chứa giá trị tạo tốc độ baud cho xung clock dùng để truyền nhận liệu Trong trình nhận liệu, sau nhận byte liệu hoàn chỉnh, ghi SSPSR chuyển liệu vào ghi SSPBUF Thanh ghi SSPSR không đọc ghi được, trình truy xuất ghi phải thông qua ghi SSPBUF Trong trình truyền liệu, liệu cần truyền đưa vào ghi SSPBUF đồng thời đưa vào ghi SSPSR Chi tiết ghi trình bày cụ thể phụ lục I2C có nhiều chế độ hoạt động điều khiển bit SSPCON, bao gồm: I2C Master mode, xung clock = fosc/4*(SSPADD+1) I2C Slave mode, bit địa I2C Slave mode, 10 bit địa I2C Slvae mode, bit địa chỉ, cho phép ngắt phát bit Start vaø bit Stop I2C Slave mode, 10 bit địa chỉ, cho phép ngắt phát bit Start bit Stop I2C Firmware Control Master mode Địa truyền bao gồm bit địa bit hay ghi liệu) với đối tượng cần truy xuất liệu để xác định thao tác (đọc Khi lựa chọn giao diện I2C set bit SSPEN, pin SCL SDA trạng thái cực thu hở Do trường hợp cần thiết ta phải sử dụng điện trở kéo lên bên vi điều khiển, bên cạnh cần ấn định giá trị phù hợp cho bit TRISC (bit điều khiển xuất nhập chân SCL SDA) 2.12.2.2.1 I2C SLAVE MODE Việc trước tiên phải set pin SCL vaø SDA laø input (set bit TRISC) I2C vi điều khiển điều khiển vi điều khiển thiết bị ngoại vi khác thông qua địa Khi địa đến vi điều khiển, thời điểm thời điểm để báo hiệu kết liệu truyền nhận xong sau đó, vi điều khiển tạo xung thúc liệu, giá trị ghi SSPSR đưa vào ghi SSPBUF Tuy nhiên không tạo trường hợp sau xảy ra: xung Bit BF (SSPSTAT) báo hiệu buffer đầy set trước trình truyền nhận xảy Bit SSPOV (SSPCON) set trước trình truyền nhận xảy (SSPOV set trường hợp byte khác nhận vào liệu ghi SSPBUF trước chưa lấy ra) Trong trường hợp trên, ghi SSPSR không đưa giá trị vào ghi SSPBUF, bit SSPIF (PIR1)sẽ set Để trình truyền nhận liệu tiếp tục, cần đọc liệu từ ghi SSPBUF vào trước, bit BF tự động xóa, bit SSPOV phải xóa chương trình Khi MSSP kích hoạt, chờ tín hiệu để bắt đầu hoạt động Sau nhân tín hiệu bắt đầu hoạt động (cạnh xuống pin SDA), liệu bit dịch vào ghi SSPSR Các bit đưa vào lấy mẫu cạnh lên xung clock Giá trị nhận từ ghi SSPSR so sánh với giá trị ghi SSPADD cạnh xuống xung clock thứ Nếu kết so sánh nhau, tức I2C Master định đối tượng giao tiếp vi điều khiển chế độ Slave mode (ta gọi tượng address match), bit BF SSPOV xóa gây tác động sau: Giá trị ghi SSPSR đưa vào ghi SSPBUF Bit BF tự động set Một xung tạo Cờ ngắt SSPIF set (ngắt kích hoạt cho phép trước đó) cạnh xuống xung clock thứ Khi MSSP chế độ I2C Slave mode 10 bit địa chỉ, vi điều khiển cần phải nhận vào (SSPSTAT) phải xóa phép nhận 10 bit địa để so sánh Bit byte địa Byte có định dạng ‘11110 A9 A8 0‘ A9, A8 hai bit MSB 10 bit địa Byte thứ bit địa lại Quátrình nhận dạng địa MSSP chế độ I2C Slave mode 10 bit địa sau: Đầu tiên bit MSB 10 bit địa nhận trước, bit SSPIF, BF UA (SSPSTAT) set (byte địa có định dạng ‘11110 A9 A8 0’) Cập nhật vào bit địa thấp ghi SSPADD, bit UA xóa vi điều khiển để khởi tạo xung clock pin SCL sau trình cập nhật hoàn tất Đọc giá trị ghi SSPBUF (bit BF xóa 0) xóa cờ ngắt SSPIF Nhận bit địa cao, bit SSPIF, BF UA set Cập nhật bit địa nhận vào bit địa cao ghi SSPADD, địa nhận (address match), xung clock chân SCL khởi tạo bit UA set Đọc giá trị ghi SSPBUF (bit BF xóa 0) xóa cờ ngắt SSPIF Nhận tín hiệu Start Nhận byte địa cao (bit SSPIF BF set) Đọc giá trị ghi SSPBUF (bit BF xóa 0) xóa cờ ngắt SSPIF Trong bươcù 7,8,9 xảy trình truyền liệu chế độ Slave mode Xem giản đồ xung I2C để có hình ảnh cụ thể bước tiến hành trình nhận dạng địa Xét trình nhận liệu chế độ Slave mode, bit địa I2C Master đưa vào trước Khi bit bit địa có giá trị (bit nhận dạng sau bit địa nhận xong) địa định (address match), bit ghi SSPSTAT xóa đường liệu SDI đưa mức logic thấp (xung ) Khi bit SEN (SSPCON) set, sau byte liệu nhận, xung clock từ chân RC3/SCK/SCL đưa xuống mức thấp, muốn khởi tạo lại xung clock ta set bit CKP (SSPCON) Điều làm cho tượng tràn liệu không xảy bit SEN cho phép ta điều khiển xung clock dịch liệu thông qua bit CKP (tham khảo giản đồ xung để biết thêm chi tiết) Khi tượng tràn liệu xảy ra, bit BF bit SSPOV set Ngắt xảy byte liệu nhận xong, cờ ngắt SSPIF set phải xóa chương trình Hình 2.24 Giản đồ xung I2C Slave mode bit địa trình nhận liệu (bit SEN = 0) Hình 2.25 Giản đồ xung I2C Slave mode 10 bit địa trình nhận liệu (bit SEN = 0) Hình 2.26 Giản đồ xung I2C Slave mode bit địa trình nhận liệu (bit SEN = 1) Hình 2.27 Giản đồ xung I2C Slave mode 10 bit địa trình nhận liệu (bit SEN = 1) Xét trình truyền liệu, bit bit liệu mang giá trị địa ghi SSPSTAT set Các bit địa định (address match), bit tạo ra, xung clock nhận trước đưa vào ghi SSPBUF Sau xung chân RC3/SCK/SCL đưa xuống mức thấp bất chấp trạng thái bit SEN Khi I2C Master không đưa xung clock vào I2C Slave liệu ghi SSPSR trạng thái wsẵn sảng cho trình truyền liệu (dữ liệu đưa vào ghi SSPBUF đồng thời đưa vào ghi SSPSR) Tiếp theo cho phép xung pin RC3/SCK/SCL cách set bit CKP (SSPCON) Từng bit byte liệu dịch cạnh xuống xung clock Như liệu sẵn sàng ngõ xung clock mức logic cao, giúp cho I2C Master nhận liệu cạnh lên xung clock Như trình truyền liệu bit SEN không đóng vai trò quan trọng trình nhận liệu Tại cạnh lên xung clock thứ 9, liệu dịch hoàn toàn vào I2C Master, xung tạo I2C Master, đồng thời pin SDA giữ mức logic cao Trong trường hợp xung chốt I2C Slave, ghi SSPSTAT reset I2C Slave chờ tín hiệu bit Start để tiếp tục truyền byte liệu (đưa byte liệu vào ghi SSPBUF set bit CKP Ngắt MSSP xảy byte liệu kết thúc trình truyền, bit SSPIF set cạnh xuống xung clock thứ phải xóa chương trình để đảm bảo set byte liệu truyền xong Hình 2.28 Giản đồ xung I2C Slave mode bit địa trình truyền liệu Hình 2.29 Giản đồ xung I2C Slave mode 10 bit địa trình truyền liệu Quá trình truyền nhận bit địa cho phép I2C Master chọn lựa đối tượng I2C Slave cần truy xuất liệu Bên cạnh I2C cung cấp thêm địa GCA (General Call Address) cho phép chọn tất I2C Slave Đây địa đặc biệt protocol I2C Địa định dạng chuỗi ‘0’ với =0 cho phép cách set bit GCEN (SSPCON2) Khi địa nhận vào so sánh với ghi SSPADD với địa GCA Hình 2.30 Giản đồ xung I2C Slave nhận địa GCA Quá trình nhận dạng địa GCA tương tự nhận dạng địa khác khác biệt rõ ràng I2C hoạt động chế độ địa bit hay 10 bit 2.12.2.2.2 I2C MASTER MODE I2C Master mode xác lập cách đưa giá trị thích hợp vào bit SSPM ghi SSPCON set bit SSPEN Ở chế độ Master, pin SCK SDA điều khiển phần cứng MSSP ... TRISC) I2C vi điều khiển điều khiển vi điều khiển thiết bị ngoại vi khác thông qua địa Khi địa đến vi điều khiển, thời điểm thời điểm để báo hiệu kết liệu truyền nhận xong sau đó, vi điều khiển tạo... sử dụng điện trở kéo lên bên vi điều khiển, bên cạnh cần ấn định giá trị phù hợp cho bit TRISC (bit điều khiển xuất nhập chân SCL SDA) 2.12.2.2.1 I2C SLAVE MODE Vi? ??c trước tiên phải set pin... ‘11110 A9 A8 0’) Cập nhật vào bit địa thấp ghi SSPADD, bit UA xóa vi điều khiển để khởi tạo xung clock pin SCL sau trình cập nhật hoàn tất Đọc giá trị ghi SSPBUF (bit BF xóa 0) xóa cờ ngắt SSPIF

Ngày đăng: 09/05/2021, 14:48

w