คำถามติดแท็ก i2c

I²C (Inter-Integrated Circuit) เป็นบัสอนุกรมหลายตัวที่คิดค้นโดย Philips (ตอนนี้ NXP) สำหรับการสื่อสารระหว่างไอซีบน PCB เดียวกันนั่นคือระยะทางสั้น ๆ

8
เหตุใดจึงต้องใช้ EEPROM อนุกรมมากกว่า EEPROM แบบขนาน
ในหน้าวิกิพีเดียสำหรับ EEPROM: http://en.wikipedia.org/wiki/EEPROMระบุไว้ว่า "อุปกรณ์ EEPROM แบบขนานมักจะมีบัสข้อมูล 8 บิตและบัสแอดเดรสกว้างพอที่จะครอบคลุมหน่วยความจำที่สมบูรณ์" และยัง "การทำงานของ EEPROM แบบขนานนั้นง่ายและรวดเร็วเมื่อเปรียบเทียบกับ EEPROM แบบอนุกรม" ในกรณีนั้นเหตุใด EEPROM อนุกรมจึงเป็นที่นิยมมากกว่าขนาน EEPROM
17 serial  i2c  memory  eeprom 


7
มีคำแนะนำ pin-out I2C ที่ชัดเจนหรือไม่? ไม่ได้มองหา“ มาตรฐาน”
แก้ไข:นี่ถูกทำซ้ำหลายครั้งดังนั้นวางไว้ด้านบน: ใช่เป็นที่รู้จักกันดีว่าไม่มี "มาตรฐาน"สำหรับการเชื่อมต่อระหว่างอุปกรณ์ I2C แต่แน่นอนชุมชนนี้สามารถกำหนดรายการของ "แนวทาง" คะแนนสำหรับการทำ การเชื่อมต่อระหว่างกันดังกล่าวขึ้นอยู่กับพฤติกรรมของสัญญาณการลดเสียงรบกวนและการลดความเสี่ยงเนื่องจากการเชื่อมต่อที่ไม่ถูกต้อง NXP กำหนดมาตรฐาน I2Cโดยไม่ระบุ pin-out สำหรับตัวเชื่อมต่อ I2C คือความเข้าใจของฉัน คำแนะนำเดียวจาก NXP ดูเหมือนจะเป็นการกล่าวถึงการวางกราวด์และ / หรือ Vss ระหว่าง SDA และ SCL หาก Vss / Gnd ดำเนินการข้ามการเชื่อมต่อระหว่างกัน การสั่งซื้อโมดูล I2C ต่างๆทำให้ฉันมีความหลากหลายของ I2C pin-outs และภารกิจเล็กน้อยในการติดตามการเปลี่ยนริบบิ้นสายเคเบิลเล็ก ๆ น้อย ๆ ที่ฉันต้องทำเพื่อพวกเขา เช่น โมดูลโมโน OLED: SCL, SDA, GND, 5V (เห็นได้ชัดว่าไม่เหมาะเนื่องจากนาฬิกาและข้อมูลอยู่ติดกัน เซนเซอร์โล่สำหรับ Arduino: …

4
ฉันควรเลือกที่อยู่ I2C ใด
ตอนนี้ฉันรู้แล้วว่าจะต้องมีที่อยู่ I2C สำรองไว้สำหรับตัวคุณเองคุณต้องจ่ายเงินให้กับคนของ I2C แต่ฉันไม่ต้องการทำสิ่งนี้ ฉันขอคำแนะนำเกี่ยวกับที่อยู่ที่ฉันควรเลือกให้กับทาสและ MCU ของฉันในโครงการของฉัน นอกจากนี้ยังจะมี EEPROM บนกระดาน ดังนั้นฉันจะหลีกเลี่ยงการใช้ที่อยู่ของ EEPROM ฉันวางแผนให้อาจารย์เชื่อมต่อกับเซ็นเซอร์หลากหลายประเภทรวมถึงไจโรและเครื่องเร่งความเร็วและอุปกรณ์หน่วยความจำเพิ่มเติม มีบล็อกที่อยู่ใดบ้างที่ฉันควรพักชัดเจน? ฉันคิดว่าแค่ใช้ 0x00 กับเจ้านายและ 0x01 สำหรับทาสเพราะดูเหมือนว่าจะไม่ค่อยได้ใช้ คำถามอื่น: เป็นความคิดที่ดีหรือไม่ที่จะผสมอุปกรณ์ 10 บิตและอุปกรณ์ 7 บิตบนบัสเดียวกัน ฉันกำลังพิจารณาถึงความเป็นไปได้ในการให้ MCUs ของฉันสื่อสารกับการกำหนดแอดเดรส 10 บิต แต่ใช้ที่อยู่ 7 บิตสำหรับเซ็นเซอร์เท่านั้น
16 i2c 

9
ทำไมI²Cมีตัวต้านทานแบบดึง (คำถามสัมภาษณ์) เท่านั้น?
ผู้สัมภาษณ์ต้องการทราบว่าเหตุใดจึงใช้ตัวต้านทานแบบดึงขึ้นในSDA และ SCLเมื่อสามารถใช้ตรรกะตรงกันข้ามได้ มีคำอธิบายว่าทำไมการใช้ตัวต้านทานแบบดึงขึ้นคือการออกแบบที่เลือก?

3
HDMI และฉัน
ฉันกำลังดูpinout HDMIและฉันคิดว่า: ทำไมพวกเขาจะใช้ I 2 C สำหรับการสื่อสารกับโฮสต์การแสดงผล คำถามของฉันที่นี่เกี่ยวกับตัวชี้วัดการออกแบบที่นำไปสู่ทางเลือกนี้22^2 HDMI คือค่อนข้างที่ผ่านมาตรฐานในขณะที่ผม2ซีเป็นรอบตั้งแต่1982 ฉัน2 C มีไว้สำหรับการสื่อสารแบบชิปต่อชิปและยิ่งไปกว่านั้นมาตรฐานยังอนุญาตให้อุปกรณ์หลายชิ้นเชื่อมต่อกับบัสเดียวกัน สาย HDMI อาจมีความยาว15 เมตรดังนั้นสัญญาณI 2 C น่าจะใช้แรงดันไฟฟ้าสูงกว่าปกติเพื่อหลีกเลี่ยงสัญญาณรบกวนมากเกินไปซึ่งเป็นการเพิ่มความจำเป็นของผู้ใช้ tranceivers ทั้งสองด้าน เกี่ยวกับอุปกรณ์หลายอย่างฉันคิดไม่ออกเลยว่าคุณจะแนบจอภาพมากกว่าหนึ่งจอเข้ากับพอร์ต HDMI เดียวได้อย่างไรถ้าคุณไม่ได้มาตรฐานมาก ๆ22^222^222^2 ฉันไม่ใช่ผู้เชี่ยวชาญในโปรโตคอลการสื่อสาร แต่ฉันคิดว่า RS485, CAN หรือจุดต่อจุด, full duplex, SNR โปรโตคอลที่สูงขึ้นน่าจะดีกว่านี้ แล้วทำไมพวกเขาถึงเลือกฉัน2 C?22^2 หมายเหตุ:ฉันรู้ว่านี่อาจถูกระบุว่าเป็น "อิงตามความคิดเห็น" ฉันหวังว่าคนรอบข้างจะนึกถึง / รู้เกี่ยวกับเหตุผลวัตถุประสงค์บางประการ

4
วิธีการย้อนกลับโปรโตคอล I2C และ SPI วิศวกร
หากฉันมีอุปกรณ์ที่ไม่เป็นที่รู้จักซึ่งพูดถึง I2C หรือ SPI ฉันจะทำวิศวกรรมย้อนกลับโปรโตคอลได้อย่างไร โดยทั่วไปฉันกำลังมองหาบางสิ่งบางอย่างที่คล้ายกันเป็นสอดแนมหรือtcpdump สำหรับซอฟต์แวร์ที่เป็นที่ต้องการของ Mac แต่ยังสามารถเรียกใช้พีซีภายใต้แนวขนานได้

3
ความเร็วสัญญาณนาฬิกาขั้นต่ำ I2C และความน่าเชื่อถือ
มีการกำหนดอัตรานาฬิกาขั้นต่ำโดย I2C หรือไม่ ฉันรู้ว่าอัตราสัญญาณนาฬิกาที่ใช้กันอย่างแพร่หลายคือ 100kHz และมีโหมด "เร็ว" ที่ 400kHz ที่รองรับโดยอุปกรณ์บางอย่างและโหมดที่เร็วขึ้นยังรองรับโดยอุปกรณ์อื่น ๆ (ฉันคิดว่า 1MHz?) เนื่องจากสัญญาณ SCK ถูกสร้างขึ้นโดยมาสเตอร์ฉันคิดว่าใครสามารถทำงานที่ความเร็วช้ากว่าสัญญาณใด ๆ - มีขอบเขตที่ต่ำกว่าในทางปฏิบัติหรือไม่? อุปกรณ์ทาสสนใจในเรื่องของอัตรานาฬิกามากน้อยเพียงใด (เช่นเป็นเรื่องปกติที่อุปกรณ์เหล่านั้นจะมีช่วงเวลาสั้น ๆ )? เหตุผลที่ฉันถามคือฉันสงสัยว่าอาจเรียกใช้ I2C ในระยะทางที่ยาวกว่า (เช่น 20 ฟุต) เพื่อตั้งโปรแกรม I2C EEPROMs ได้อย่างน่าเชื่อถือในการตั้งค่าเครื่องมือทดสอบการผลิต ฉันสมมติว่ามันจะไม่ทำงานอย่างน่าเชื่อถือในระยะทางนั้นในอัตราข้อมูลมาตรฐาน

3
I2C: อุปกรณ์ 3.3V และ 5V ที่ไม่มีการเปลี่ยนระดับบนบัส 3.3V?
ฉันจะต้องเปลี่ยนระดับถ้าฉันใช้อุปกรณ์ที่ขับเคลื่อนด้วย 5V บนบัส I2C ที่มีการดึงไปยัง 3.3V หรือไม่ ในความเข้าใจของฉันอุปกรณ์จะดึงเส้น (SDA, SCL) ต่ำ (ลงกราวด์) และไม่ขับแรงดันไฟฟ้าของอุปทานไปยังบัส ดังนั้นฉันจึงไม่เห็นเหตุผลที่ตัวเปลี่ยนระดับตราบใดที่อุปกรณ์ทั้งหมดตรวจจับแรงดันไฟฟ้าจาก pull-ups (3.3V) ว่ามีค่าตรรกะสูง ควรเป็นกรณีที่อุปกรณ์ใช้ 5V เป็นแหล่งจ่าย ในกรณีของฉันฉันมีไอซีที่อินพุตไม่เป็นตัวต้านทานแรงดันไฟฟ้า5V เป็นหลักและฉันสามารถใช้พลังงานจากทาสของฉันด้วย 3.3V แต่การใช้ 5V นั้นง่ายกว่าในวงจรของฉันและอนุญาตให้อัตรานาฬิกาภายใน

5
เป็นไปได้ที่ความถี่ผสม I2C จะเป็นไปได้หรือไม่?
สมมติว่าเรามี 400 kHz I 2 C บัส มีเจ้านายคนหนึ่งและอุปกรณ์ทาสมากมาย เราอยากจะแนะนำอุปกรณ์ทาสเพิ่มอีกหนึ่งตัว แต่น่าเสียดายที่มันไปที่ 100 kHz เท่านั้น เห็นได้ชัดว่าตัวเลือกการออกแบบที่มั่นคงคือ: เพิ่งรันบัสนั้นที่ 100 kHz ใช้รถโดยสารแยกต่างหากสำหรับอุปกรณ์ต่อพ่วง 400 kHz และ 100 kHz แต่คำถามนั้นเกี่ยวกับการแฮ็ค: ถ้าเราใช้บัสหนึ่งบัสแล้วจัดการกับอุปกรณ์ 400 kHz ที่ 400 kHz และเปลี่ยนบัสเป็น 100 kHz เมื่อพูดกับทาส 100 kHz? หรือทาสที่ทำงานช้าลงอาจทำงานผิดพลาดในการตอบสนองต่อแฮช 400 kHz ที่เห็นบนสาย I 2 C เพราะมันคิดผิดพลาดว่ามันกำลังแก้ไขอยู่หรือไม่? เราสามารถพึ่งพาอุปกรณ์ 100 kHz ที่ยังคงสามารถประมวลผลสัญญาณ 400 kHz …
12 i2c 

1
การระบุแอดเดรสรีจิสเตอร์ด้วยไลบรารี I2C STM32F0 HAL
ฉันใหม่มากที่ใช้ห้องสมุด CUBE และ HAL_l ฉันกำลังใช้ไมโครคอนโทรลเลอร์ STM32F0 กับ 32 พิน แผนผังสำหรับ I2C นั้นถูกต้อง ดังนั้นฉันต้องการความช่วยเหลือเล็กน้อยที่นี่ ฉันมีเซ็นเซอร์ capacitive ( FDC1004 ) ที่ใช้การสื่อสาร I2C ฉันต้องเขียนรีจิสเตอร์เหล่านี้เพื่ออ่านข้อมูล ฉันจะส่งต้นแบบแบบฟอร์มคำขอเริ่มไปยังทาสอย่างถูกต้องได้อย่างไร (ที่อยู่สลาฟคือ A0) วิธีการตั้งค่าพอยน์เตอร์เป็น 0x0C register? แผ่นข้อมูลเห็น (ลงทะเบียน 0x0C: บิต [7: 4]) ถึง 1) ฉันไม่รู้วิธีการทำเช่นนั้น? และในที่สุดวิธีการอ่านจากการลงทะเบียนเดียวกัน? นอกจากนี้ฉันต้องรอฟิลด์ DONE_x (ลงทะเบียน 0x0C: บิต [3: 0]) ก่อนที่ฉันจะอ่านหรือไม่ แต่ฉันไม่รู้ว่าฉันกำลังพูดถึงทะเบียนที่ถูกต้องหรือไม่! เพราะฉันไม่ได้รับข้อมูลใด ๆ กลับมาจากเซ็นเซอร์! นี่คือรหัสของฉัน: …

2
ระดับ I2C ขยับ
ขณะนี้ฉันกำลังออกแบบวงจรที่สามารถบันทึกข้อมูลจากเซ็นเซอร์และบันทึกข้อมูลที่บันทึกไว้ใน EEPROM อุปกรณ์ทั้งสองของฉัน (EEPROM และเพื่อการทดสอบ RTC) เชื่อมต่อผ่านบัส I2C กับ PIC16F887 µC อย่างไรก็ตามช่วงการทำงานของแรงดันไฟฟ้าของอุปกรณ์ทั้งสองนั้นไม่เหมือนกัน (5v สำหรับ EEPROM, 3.3 สำหรับ RTC) และแบตเตอรี่ของฉันคือแบตเตอรี่ 9V ดังนั้นฉันจึงออกแบบวงจรอิเล็กทรอนิกส์ที่มีตัวเปลี่ยนระดับซึ่งประกอบด้วย MOSFET สำหรับการเดินสาย SDA / SDL ยิ่งไปกว่านั้นฉันได้เพิ่มตัวควบคุมแรงดัน LM317 สองตัวเพื่อให้พลังงานแก่อุปกรณ์ (9V-> 3.3V และ 9V-> 5V) เนื่องจากฉันไม่ใช่ผู้เชี่ยวชาญในการออกแบบสิ่งต่าง ๆ ฉันจะขอบคุณถ้าคุณสามารถดูสิ่งที่ฉันทำและบอกฉันว่าฉันทำอะไรผิดอย่างน่ากลัว!

7
ที่อยู่ทาส I2C ไม่ได้รับการยอมรับ (บางครั้ง)
ฉันพยายามสื่อสารกับ FRAM (FM24C04 จาก Ramtron) ที่เชื่อมต่อจากระยะไกลโดยใช้ I2C หน่วยความจำนี้ถูกฝังอยู่ในบอร์ดที่สามารถเสียบและถอดออกได้ตลอดเวลาถึง / จากระบบ (การสื่อสารถูกยกเลิกอย่างเหมาะสมก่อนที่จะลบหน่วยความจำ) ปัญหาคือ: หลังจากใส่การ์ดที่มีเฟรมบางครั้งก็ไม่ยอมรับที่อยู่ การวัดสัญญาณ ฉันวัดสัญญาณเพื่อดูว่าเกิดอะไรขึ้นและดูเหมือนว่าการกำหนดเวลาจะใช้ได้ในทั้งสองกรณี (ทำงานและไม่ทำงาน) การสื่อสาร I2C ที่ถูกต้อง (อ่าน 3 ไบต์): ที่อยู่ I2C FRAM ไม่ได้รับการยอมรับ (ที่อยู่สลาฟถูกส่งอย่างถูกต้อง): การทำงานได้ดำเนินการแล้วเพื่อแก้ไขปัญหานี้ (ไม่สำเร็จ) เพิ่มความล่าช้าหลังจากใส่การ์ดที่มี FRAM ในตัวเพื่อให้แน่ใจว่าลำดับพลังงานนั้นได้รับการเคารพ I2C หยุดการสร้างหลังจากการตรวจจับสลาฟแอดเดรสไม่ได้รับการยอมรับ การกำหนดค่าบัส I2C ต้นแบบหนึ่ง (ไมโครคอนโทรลเลอร์ STM32F205 จาก ST) สามทาส (EEPROM 24AA1025 จาก Microchip, RTC DS1339C จาก Maxim …

1
accelerometer BMA180 มันจะจัดการแบ่งปันพินระหว่าง I2C และ SPI ได้อย่างไร
accelerometer BMA180 สามารถเป็น SPI slave หรือ I 2 C slave ก็ได้ พินสำหรับรถโดยสารทั้งสองนั้นใช้ร่วมกัน SPI mode I2C mode --------------------------------------------------- SDI input SDA bidirectional (!) SDO output ADDR address bit, input SCLK input SCL input CSB chip select, input I2C mode select, input ตามแผ่นข้อมูล (ดูบทที่ 8)การเลือกระหว่างรถเมล์จะทำผ่านพิน CSB เมื่อ CSB ต่ำอุปกรณ์จะเป็นทาส SPI เมื่อ CSB …
11 spi  i2c 

4
ฉันสามารถใส่ vias ในการกำหนดเส้นทางการติดตามเส้น I2C บน FR4 PCB ได้หรือไม่
ฉันกำลังใช้ไมโครคอนโทรลเลอร์ MSP430FR2633 และ ADS122C04IPWR DAC ผ่าน I2C ที่ 100kHz ฉันสามารถกำหนดเส้นทาง I2C ผ่าน vias ใน 2 Layer PCB ได้หรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.