Microchip’s TC74 là cảm biến nhiệt độ kỹ thuật số giá cả phải chăng với giao diện I2C cơ bản. Nó có độ phân giải 1 độ C và nhiều loại -40 đến +125 độ. Đây là một phương pháp dễ dàng để thêm phép đo nhiệt độ vào một công việc mà không cần bộ chuyển đổi analog sang kỹ thuật số. Chúng tôi sẽ chỉ cho bạn cách sử dụng TC74 bên dưới.
Cảm biến nhiệt độ kỹ thuật số Microchip TC74 (tìm kiếm Octopart, bắt đầu từ $ 0,88)
TC74 có sẵn trong các gói Five Pin qua lỗ và bề mặt, xem biểu dữ liệu TC74 (PDF). Chúng tôi không thể tìm thấy một dấu chân đại bàng cadsoft cho bất kỳ phiên bản nào của phần này, nếu bạn biết về một phiên bản vui lòng liên kết với nó trong các ý kiến.
Các phiên bản khác nhau của TC74 được hiệu chuẩn cho một số điện áp nhất định, nhưng tất cả đều hoạt động từ 2,7-5Volts. TC74A5 Chúng tôi sử dụng rất nhiều chính xác khi hoạt động ở 5Volts, nhưng chúng tôi cung cấp năng lượng cho nó từ nguồn cung cấp 3.3Volt. Kết nối I2C cần 2 điện trở kéo lên để giữ xe buýt cao (R1, R2), 2K-10K phải hoạt động. C1 là một tụ điện tách 0,1uf.
Chúng tôi sử dụng giao diện nối tiếp Cướp biển Bus ở chế độ I2C để kiểm tra ổ đĩa TC74, nhưng chính xác các hiệu trưởng áp dụng cho bất kỳ vi điều khiển nào. Chúng tôi cung cấp cho TC74 từ nguồn cung cấp 3.3Volt của Pirate của Bus và sử dụng các điện trở kéo lên trên bo mạch để giữ bus I2C cao.
Yêu cầu
Giá trị
Chọn Đăng ký nhiệt độ
0x00.
Chọn Đăng ký cấu hình
0x01.
Địa chỉ sáng tác của TC74 là 0x9a và địa chỉ được kiểm tra 0x9b. Nó có hai đăng ký một byte. Đăng ký Địa chỉ 0 Giữ đọc nhiệt độ, đăng ký 1 Giữ cài đặt cấu hình.
Đăng ký cấu hình
Bit 6 của thanh ghi cấu hình là 0 khi bật nguồn và sửa đổi thành 1 khi khả dụng đọc nhiệt độ hợp lệ đầu tiên. Bit 7 có thể ghi được và đặt TC74 trong chế độ chờ tiết kiệm năng lượng. Đọc Sổ đăng ký bao gồm hai bước: Sử dụng một lệnh sáng tác một phần để chọn thanh ghi, sau đó sử dụng lệnh Đã kiểm tra để lấy giá trị.
I2C> {0x9a 1}
210 I2C Bắt đầu điều kiện
220 I2C Viết: 0x9A GOT ACK: Thật vậy <-Đọc địa chỉ
220 I2C Viết: 0x01 GOT ACK: Thực sự <-Chọn đăng ký cấu hình
Điều kiện dừng 240 I2C
Đầu tiên, chúng tôi chọn thanh ghi cấu hình với một lệnh sáng tác một phần. Điều này không thực sự tạo ra một giá trị, nó sẽ chọn thanh ghi để kiểm tra và viết. {tạo điều kiện bắt đầu I2C, được tuân thủ bởi địa chỉ sáng tác TC74 (0x9a) và lệnh Chọn Đăng ký Cấu hình (0x01). } Vấn đề Điều kiện dừng I2C và kết thúc giao dịch.
Bây giờ chúng ta có thể kiểm tra nội dung của thanh ghi.
I2c> {0x9b r}
210 I2C Bắt đầu điều kiện
220 I2C Viết: 0x9b GOT ACK: Thật vậy <-Đọc địa chỉ
230 I2C Đọc: 0x40 <- Giá trị đăng ký (01000000)
Điều kiện dừng 240 I2C
I2C >.
Địa chỉ được kiểm tra (0x9b) trả về giá trị đăng ký một byte (R). Giá trị thanh ghi cấu hình, 0x40 hoặc 01000000, cho thấy thiết bị nằm ngoài chế độ chờ (bit 7 = 0) và khả năng đọc nhiệt độ hợp lệ (bit 6 = 1).
TC74 có chế độ chờ công suất thấp. Kích hoạt nó bằng cách soạn 1 đến bit 7 của thanh ghi cấu hình.
I2C> {0x9a 1 0b10000000}
210 I2C Bắt đầu điều kiện
220 I2C Viết: 0x9A GOT ACK: Thật vậy <-Đọc địa chỉ
220 I2C Viết: 0x01 GOT ACK: Thực sự <-Chọn đăng ký cấu hình
220 I2C Viết: 0x80 Got Ack: Thật vậy <-Value để soạn thảo (01000000)
Điều kiện dừng 240 I2C
I2C >.
Sổ đăng ký được viết bằng lệnh ba byte đơn. Đầu tiên chúng tôi gửi địa chỉ sáng tác (0x9a), được tuân thủ bởi thanh ghi để chọn (0x01) và cuối cùng là giá trị để soạn thảo (0x80). Chỉ có bit 7 của thanh ghi cấu hình là có thể ghi, các giá trị của bit 6-0 bị bỏ qua.
Đọc lại sổ đăng ký để xác nhận rằng lệnh đã hoạt động.
I2C> {0x9a 1} {0x9b r}
210 I2C Bắt đầu Điều kiện <-First Bộ lệnh đăng ký
220 I2C Viết: 0x9A GOT ACK: Thật vậy <-Đọc địa chỉ
220 I2C Viết: 0x01 GOT ACK: Thực sự <-config Đăng ký (1)
240 I2C Dừng điều kiện <-Vend lệnh đầu tiên
210 I2C Bắt đầu điều kiện <-Begin lệnh thứ hai
220 I2C Viết: 0x9b GOT ACK: Thật vậy <-Đọc địa chỉ
230 I2C Đọc: 0x80 <- Giá trị đăng ký (10000000)
Điều kiện dừng 240 I2C <-rend lệnh thứ hai
I2C >.
Giá trị đăng ký, 10000000, hiện hiển thị rằng thiết bị nằm trong chế độ chờ (bit 7 = 1). Lưu ý rằng bit 6 hiện là 0, không có dữ liệu nhiệt độ.
Xóa bit 7 Để thoát chế độ chờ, sau đó đợi trên bit 6 để quay lại 1 trước khi đọc thanh ghi nhiệt độ.
I2C> {0x9A 1 0B00000000}
210 I2C bắt đầu điều kiện
220 I2C Viết: 0x9A GOT ACK: Thật vậy <-Đọc địa chỉ
220 I2C Viết: 0x01 GOT ACK: Có <-Chọn đăng ký cấu hình
220 I2C Viết: 0x00 GOT ACK: Có <-Value để soạn thảo (00000000)
Điều kiện dừng 240 I2C
I2C >.
Dữ liệu nhiệt độ được chuẩn bị khi giá trị thanh ghi cấu hình trở về 0x40 (01000000).
Nhiệt độ
Thanh ghi nhiệt độ được kiểm tra trong hai bước. Đầu tiên, một lệnh so sánh một phần chọn thanh ghi nhiệt độ (0), sau đó một chuỗi đã kiểm tra trả về nội dung.
I2c> {0x9a 0} {0x9b r}
210 I2C Bắt đầu điều kiện
220 I2C Viết: 0x9A GOT ACK: Thật vậy <-Đọc địa chỉ
220 I2C Viết: 0x00 GOT ACK: Thật vậy <-ChọnĐĂNG KÝ NHIỆT ĐỘ.
Điều kiện dừng 240 I2C
210 I2C Bắt đầu điều kiện
220 I2C Viết: 0x9b GOT ACK: Thật vậy <-Đọc địa chỉ
230 I2C Đọc: 0x18 <-Grab One Byte
Điều kiện dừng 240 I2C
I2C >.
Nhiệt độ là một giá trị nguyên của độ Celsius, số âm được biểu thị dưới dạng twos bổ sung. Các giá trị tích cực từ 0 đến 127 độ C chỉ được thể hiện bằng giá trị đó. Nhiệt độ âm có bit 7 bộ, và sự đa dạng từ -1 đến -65 (255-128), xem Bảng 4.4 trên trang 8 của biểu dữ liệu. Giá trị thập lục phân 0x18 bằng 24 trong thập phân, do đó đọc nhiệt độ là 24C (75F).
Như bài đăng này? Kiểm tra các bài viết các bộ phận bạn có thể đã bỏ lỡ.