อัตราการฆ่า I2C คืออะไร


10

ฉันกำหนดค่า I 2 C บน PIC18 โดยใช้ฟังก์ชั่นในตัวของคอมไพเลอร์ C18 ดังที่อธิบายไว้ในส่วนที่ 2.4 ของเอกสาร :

void OpenI2C2( unsigned char sync_mode,
    unsigned char slew );

slewผมไม่แน่ใจว่าสิ่งที่ฉันควรจะทำอย่างไรกับ ฉันสามารถเลือกจากสองตัวเลือกที่กำหนดไว้ในi2c.h:

  • SLEW_OFF: อัตราการฆ่าไม่ทำงานสำหรับโหมด 100 kHz
  • SLEW_ON: เปิดใช้งานอัตรา Slew สำหรับโหมด 400 kHz

ในแผ่นข้อมูลในการลงทะเบียน 15-1 หน้า 257 ทั้งสองตัวเลือกมีการอธิบายรายละเอียดเพิ่มเติมเล็กน้อย:

  • 1 = การควบคุมอัตราการเลื่อนไม่ทำงานสำหรับโหมดความเร็วมาตรฐาน (100 kHz และ 1 MHz)
  • 0 = เปิดใช้งานการควบคุมอัตราสโลว์สำหรับโหมดความเร็วสูง (400 kHz)

ฉันไม่เข้าใจ - ฉันมีคำถามสองสามข้อ:

  1. อัตราการฆ่าคืออะไร?

  2. สำหรับฉันสองตัวเลือกไม่สมเหตุสมผล - ถ้าฉันต้องการปิดการใช้งานอัตราการฆ่าสำหรับ 400kHz และเปิดใช้งาน 100kHz แล้วล่ะ ทำไมนี้

  3. ฉันควรเลือกSLEW_OFFเมื่อใดและเมื่อSLEW_ONใด

pic  c  i2c  software  c18 

คำตอบ:


8

อัตราการฆ่าคือความเร็วที่สัญญาณเปลี่ยนจากต่ำไปสูงหรือในทางกลับกัน ด้วยการ จำกัด ช่วงการเปลี่ยนภาพอย่างกะทันหันนี้คุณสามารถลดเสียงเรียกเข้าจากการสะท้อนสัญญาณและ จำกัด crosstalk ระหว่างสายสัญญาณ

วิธีที่ใช้งานได้ดีคือที่ 100kHz อัตราสัญญาณจะช้ามากจนอัตราการฆ่าไม่สำคัญ ที่ 400kHz คุณอาจสามารถแก้ไขวงจรที่มีปัญหาเป็นอย่างอื่นได้โดย จำกัด แต่เมื่อคุณถึง 1MHz คุณจำเป็นต้องมีความเร็วการเปลี่ยนแปลงทั้งหมดที่คุณจะได้รับดังนั้นคุณต้องทำการจับคู่สัญญาณที่ดีและกำหนดเส้นทางของคุณให้ละเอียดยิ่งขึ้น

ปัญหาเล็กน้อยไม่ได้เป็นการเปิดใช้งานหรือปิดใช้งานคุณลักษณะนี้ ที่เหลือเป็นเพียงคำแนะนำ ความเร็วอยู่ในวงเล็บเนื่องจากเป็นเพียงข้อเสนอแนะ


ขอบคุณ! ดูเหมือนจะเป็นตัวเลือกที่ดี - ทำไมฉันจะไม่ใช้การควบคุมอัตราการฆ่า

2
@CamilStaps - ความเข้าใจของฉันดูเหมือนว่าคุณอาจตอบผิด การมีช่วงการเปลี่ยนภาพที่คมชัด (SLEW_ON) ทำให้เกิดสัญญาณรบกวน EMI และเสียงเรียกเข้าเพิ่มเติม การมีช่วงการเปลี่ยนภาพช้า (SLEW_OFF) จะลด EMI แต่จะลดความถี่ที่ใช้งานได้สูงสุดของลิงก์ มันเป็นการแลกเปลี่ยน
ทิม

@gbarry: อ่าเพื่อให้มีการควบคุมอัตราการฆ่าปิดสัญญาณจะใกล้เคียงกับตารางคลื่นเป็น UC สามารถทำให้มัน ด้วยการควบคุมอัตราการฆ่าในการเปลี่ยนคลื่นสูง / ต่ำจะมีความลาดเอียงมากขึ้น (= แนวตั้งน้อยกว่า) มากกว่าที่จะเป็นอย่างอื่น?
angelatlarge

1
ถูกต้องแม้ว่าฉันจะไม่แน่ใจว่ามันน่าทึ่งขนาดไหนบน PIC (ฉันควรตรวจสอบ) ข้อมูลย้อนหลัง: ข้อมูลจำเพาะ RS232 มีข้อ จำกัด ด้านอัตราการฆ่าดังนั้นบางคนจึงออกมาพร้อมกับชิปขับที่มีสัญญาณเอาท์พุตที่ดี แล้วเราก็เริ่มใช้อัตรา bps ที่เร็วขึ้นและเร็วขึ้นดังนั้นเราจึงไม่สามารถใช้ชิปนั้นได้ ...
gbarry

1
สามปีต่อมาและฉันมีคำถามเดียวกันนี้ แต่ฉันวัดได้จริง สำหรับการอ้างอิงในอนาคตบน PIC16F1454 กับ 4.7k ดึงอัพและเป็นทาสเดียวบนรถบัสตกเวลาคือ 2.9 ns การได้โดยไม่ต้องมีอัตราการฆ่า จำกัด (อาจจะถูก จำกัด โดยการสอบสวน 150 MHz ของฉัน) และ 151 ns การที่มีอัตราการฆ่า จำกัด มันไม่ได้ส่งผลกระทบต่อเวลาที่เพิ่มขึ้น
ท่อ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.