ชิ้นส่วน: เครื่องวัดอุณหภูมิดิจิตอล I2C (TC74)

Microchip’s TC74 เป็นเซ็นเซอร์อุณหภูมิดิจิตอลราคาไม่แพงพร้อมอินเตอร์เฟส I2C ขั้นพื้นฐาน มีความละเอียด 1 องศาเซลเซียสและความหลากหลายของ -40 ถึง +125 องศา นี่เป็นวิธีที่ง่ายในการเพิ่มการวัดอุณหภูมิให้กับงานโดยไม่มีอะนาล็อกเป็นตัวแปลงดิจิตอล เราจะแสดงวิธีใช้ประโยชน์จาก TC74 ด้านล่าง

Microchip TC74 เซ็นเซอร์อุณหภูมิดิจิตอล (การค้นหา Octopart เริ่มต้นที่ $ 0.88)

TC74 มีให้บริการในแพคเกจ Hole Through-Hole และ Surface Mount ให้ดูแผ่นข้อมูล TC74 (PDF) เราไม่พบรอยเท้า Cadsoft Eagle สำหรับส่วนใดรุ่นนี้หากคุณรู้หนึ่งโปรดลิงค์ไปยังความคิดเห็น

รุ่นต่าง ๆ ของ TC74 ถูกปรับเทียบสำหรับแรงดันไฟฟ้าบางอย่าง แต่ทำงานได้จาก 2.7-5Volts TC74A5 ที่เราใช้มีความแม่นยำมากเมื่อทำงานที่ 5volts แต่เราขับเคลื่อนจากอุปทาน 3.3volt การเชื่อมต่อ I2C ต้องการตัวต้านทานแบบดึงขึ้น 2 ตัวที่จะถือบัสสูง (R1, R2), 2k-10k ต้องทำงาน C1 เป็นตัวเก็บประจุ 0.1uf decoupling

เราใช้อินเตอร์เฟซ Serial Serial Bus Pirate Universal ในโหมด I2C เพื่อทดสอบไดรฟ์ TC74 แต่อาจใช้หลักการเดียวกันกับไมโครคอนโทรลเลอร์ใด ๆ เราขับเคลื่อน TC74 จากการจัดหา 3.3volt ของรถบัสโจรสลัดและใช้ตัวต้านทานแบบดึงขึ้นบนกระดานเพื่อรองรับรถบัส I2C สูง

สั่งการ
ค่า

เลือกการลงทะเบียนอุณหภูมิ
0x00

เลือกการลงทะเบียนการกำหนดค่า
0x01

ที่อยู่ในการเขียนของ TC74 คือ 0x9A และที่อยู่ที่ตรวจสอบแล้ว 0x9b มันมีสองการลงทะเบียนหนึ่งไบต์ ลงทะเบียนที่อยู่ 0 ถือการอ่านอุณหภูมิลงทะเบียน 1 ถือการตั้งค่าการกำหนดค่า

การกำหนดค่าการลงทะเบียน

Bit 6 ของการลงทะเบียนการกำหนดค่าคือ 0 ที่ Power-on และการปรับเปลี่ยนเป็น 1 เมื่อมีการอ่านอุณหภูมิที่ถูกต้องครั้งแรก Bit 7 สามารถเขียนได้และวาง TC74 ในโหมดสแตนด์บายการประหยัดพลังงาน การอ่านการลงทะเบียนรวมถึงสองขั้นตอน: ใช้คำสั่งเขียนบางส่วนเพื่อเลือกการลงทะเบียนจากนั้นใช้คำสั่งที่ตรวจสอบแล้วเพื่อดึงค่า

I2C> {0x9A 1}
210 I2C สภาพเริ่มต้น
220 i2c เขียน: 0x9a got ack: แน่นอน <-write ที่อยู่ 220 i2c เขียน: 0x01 Got ACK: แน่นอน <-Select Config ลงทะเบียน 240 เงื่อนไขหยุด i2c ก่อนอื่นเราเลือกการลงทะเบียนการกำหนดค่าด้วยคำสั่งเขียนบางส่วน นี่ไม่ใช่การเขียนค่าจริง ๆ มันจะเลือกการลงทะเบียนเพื่อตรวจสอบและเขียน {สร้างเงื่อนไขการเริ่มต้น I2C ปฏิบัติตามด้วยที่อยู่ของ TC74 Compose (0x9A) และคำสั่งเลือกการกำหนดค่าการลงทะเบียน (0x01) } ปัญหาสภาพ I2C หยุดและสิ้นสุดการทำธุรกรรม ตอนนี้เราสามารถตรวจสอบเนื้อหาของการลงทะเบียน i2c> {0x9b r}
210 I2C สภาพเริ่มต้น
220 i2c เขียน: 0x9b ได้ ack: แน่นอน <-read ที่อยู่ 230 I2C อ่าน: 0x40 <- ค่าการลงทะเบียน (01000000) 240 เงื่อนไขหยุด i2c I2C>

ที่อยู่ที่เช็คเอาต์ (0x9b) ส่งคืนค่าการลงทะเบียนไบต์หนึ่งไบต์ (R) ค่าการลงทะเบียนการกำหนดค่า, 0x40 หรือ 01000000 แสดงให้เห็นว่าอุปกรณ์หมดสแตนด์บาย (บิต 7 = 0) และการอ่านอุณหภูมิที่ถูกต้องพร้อมใช้งาน (บิต 6 = 1)

TC74 มีโหมดสแตนด์บายพลังงานต่ำ เปิดใช้งานโดยการเขียน 1 ถึงบิต 7 ของการลงทะเบียนการกำหนดค่า

I2C> {0x9A 1 0B10000000}
210 I2C สภาพเริ่มต้น
220 i2c เขียน: 0x9a got ack: แน่นอน <-write ที่อยู่ 220 i2c เขียน: 0x01 Got ACK: แน่นอน <-Select Config ลงทะเบียน 220 I2C เขียน: 0x80 ได้รับ ACK: แน่นอน <-Value เขียน (01000000) 240 เงื่อนไขหยุด i2c I2C>

การลงทะเบียนเขียนด้วยคำสั่งสามไบต์เดียว ครั้งแรกที่เราส่งที่อยู่เขียน (0x9a) ปฏิบัติตามโดยลงทะเบียนให้เลือก (0x01) และในที่สุดค่าในการเขียน (0x80) เพียงเล็กน้อย 7 ของการลงทะเบียนการกำหนดค่าที่เขียนได้ค่าของบิต 6-0 จะถูกละเว้น

อ่านการลงทะเบียนอีกครั้งเพื่อยืนยันว่าคำสั่งทำงาน

i2c> {0x9A 1} {0x9b r}
210 i2c สภาพเริ่มต้น <-first ชุดคำสั่งลงทะเบียน 220 i2c เขียน: 0x9a got ack: แน่นอน <-write ที่อยู่ 220 i2c เขียน: 0x01 Got ACK: แน่นอน <-Config Register (1) 240 I2C หยุดเงื่อนไข <-End คำสั่งแรก 210 I2C เริ่มสภาพ <-Begin คำสั่งที่สอง 220 i2c เขียน: 0x9b ได้ ack: แน่นอน <-read ที่อยู่ 230 I2C อ่าน: 0x80 <- ค่าการลงทะเบียน (10000000) 240 i2c หยุดเงื่อนไข <- ขั้นตอนที่สอง I2C>

มูลค่าการลงทะเบียน, 10,000,000 ตอนนี้แสดงให้เห็นว่าอุปกรณ์อยู่ในโหมดสแตนด์บาย (บิต 7 = 1) สังเกตว่าบิต 6 คือตอนนี้ 0 ไม่มีข้อมูลอุณหภูมิ

ชัดเจนบิต 7 เพื่อออกจากสแตนด์บายจากนั้นรอสักครู่ 6 เพื่อกลับไปที่ 1 ก่อนอ่านการลงทะเบียนอุณหภูมิ

I2C> {0x9A 1 0B00000000}
210 I2C สภาพเริ่มต้น
220 i2c เขียน: 0x9a got ack: แน่นอน <-write ที่อยู่ 220 I2C เขียน: 0x01 ได้ ack: ใช่ <-select config ลงทะเบียน 220 I2C เขียน: 0x00 Got ACK: ใช่ <-Value เพื่อแต่ง (00000000) 240 เงื่อนไขหยุด i2c I2C>

ข้อมูลอุณหภูมิเตรียมเมื่อค่าการลงทะเบียนการกำหนดค่ากลับไปที่ 0x40 (01000000)

อุณหภูมิ

การลงทะเบียนอุณหภูมิจะถูกตรวจสอบในสองขั้นตอน ครั้งแรกคำสั่งเขียนบางส่วนเลือกการลงทะเบียนอุณหภูมิ (0) จากนั้นลำดับที่ตรวจสอบแล้วส่งคืนเนื้อหา

i2c> {0x9a 0} {0x9b r}
210 I2C สภาพเริ่มต้น
220 i2c เขียน: 0x9a got ack: แน่นอน <-write ที่อยู่ 220 I2C เขียน: 0x00 Got ACK: แน่นอน <- เลือกทะเบียนอุณหภูมิ 240 เงื่อนไขหยุด i2c 210 I2C สภาพเริ่มต้น 220 i2c เขียน: 0x9b ได้ ack: แน่นอน <-read ที่อยู่ 230 i2c อ่าน: 0x18 <-Grab หนึ่งไบต์ 240 เงื่อนไขหยุด i2c I2C>

อุณหภูมิเป็นค่าจำนวนเต็มขององศาเซลเซียสตัวเลขลบจะแสดงเป็นส่วนเสริม TWOS ค่าบวกจาก 0 ถึง 127 องศาเซลเซียสเป็นตัวแทนของค่านั้น อุณหภูมิเชิงลบมีบิต 7 ชุดและความหลากหลายจาก -1 ถึง -65 (255-128) ดูตารางที่ 4.4 ในหน้า 8 ของแผ่นข้อมูล ค่าเลขฐานสิบหก 0x18 เท่ากับ 24 เป็นทศนิยมดังนั้นการอ่านอุณหภูมิคือ 24C (75F)

ชอบโพสต์นี้ไหม ตรวจสอบบทความชิ้นส่วนที่คุณอาจพลาดไป

Author: found

Leave a Reply

Your email address will not be published. Required fields are marked *