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

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

8
แลกเปลี่ยนเมื่อพิจารณา SPI หรือ I2C
ฉันควรพิจารณาสิ่งใดบ้างเมื่อตัดสินใจใช้อินเทอร์เฟซ SPI หรือ I2C คณะกรรมการฝ่าวงล้อม accelerometer / ไจโรนี้มีสองรุ่นหนึ่งแบบสำหรับแต่ละอินเตอร์เฟส หนึ่งจะง่ายกว่าที่จะรวมเข้ากับโครงการ Arduino? http://www.sparkfun.com/products/11028
117 spi  i2c 

8
มีค่าความต้านทานที่ถูกต้องสำหรับตัวต้านทานแบบดึงขึ้น I2C หรือไม่
แผ่นข้อมูลของ 24LC256 EEPROM ระบุว่า: บัส SDA ต้องการตัวต้านทานแบบ pull-up ต่อ VCC (ปกติ 10 kΩสำหรับ 100 kHz, 2 kΩสำหรับ 400 kHz และ 1 MHz) ฉันคิดว่าตัวต้านทานใด ๆ ที่มีค่าkΩจะทำงานได้ (และดูเหมือนว่า EEPROM ของฉันจะทำงานได้ดีในความถี่ที่แตกต่างกันด้วยตัวต้านทาน 10 kΩ) คำถามของฉันคือ: มีค่าที่ถูกต้องสำหรับตัวต้านทานแบบดึงขึ้นหรือไม่ มีกฎหมาย / กฎในการกำหนดค่านี้หรือไม่? ค่าความต้านทานต่างกันมีผลต่อบัสข้อมูลI²Cอย่างไร
72 resistors  i2c  pullup 

8
วิธีแก้ไขการขัดแย้งกันของที่อยู่ I2C?
ฉันต้องการเชื่อมต่ออุปกรณ์ทาส I2C หลายตัวเข้ากับคอนโทรลเลอร์ขนาดเล็กทั้งหมดในชุดพินเดียวกัน แต่อุปกรณ์ I2C ทั้งหมดใช้ที่อยู่เดียวกันร่วมกัน ที่อยู่ได้รับการแก้ไขในฮาร์ดแวร์ มีวิธีการเชื่อมต่ออุปกรณ์หลายเครื่องด้วยที่อยู่เดียวกันหรือไม่? บางทีโมดูลการแปลที่อยู่ I2C บางประเภทกับแต่ละอุปกรณ์ที่มีที่อยู่ที่กำหนดค่าได้ดังนั้นฉันจึงสามารถกำหนดที่อยู่ของตัวเองให้กับแต่ละคนได้
39 serial  i2c 

5
ความยาวบัส I2C สูงสุด?
ความยาวสูงสุดของสายเคเบิลที่สามารถใช้เชื่อมต่ออุปกรณ์ I2C สองตัว (I2C master-> I2C slave) คืออะไร? ใช่ฉันรู้ว่า I2C ได้รับการออกแบบมาเพื่อการสื่อสารภายในบอร์ดจริงๆ ฉันได้รับมอบหมายให้ "เป้าหมายการออกแบบ" ในการใช้บัส I2C ทั่วไปสำหรับทาส I2C หลายตัวเพื่อรองรับการสาธิต เพื่อความชัดเจนลองใช้อัตราบัส I2C มาตรฐานที่ 100 kHz
38 i2c 

10
SPI หรือ I2C: ซึ่งใช้สำหรับบัสแบบ longish
ฉันใคร่ครวญโครงการที่ต้องใช้ AVR หลายเครื่องคุยกันผ่านบัส พวกมันจะแยกจากกันมากถึง 6 ฟุต ดูเหมือนว่าทั้ง I2C และ SPI สามารถให้ micros หลายชุดสื่อสารบนรถบัส แต่ฉันไม่ได้เห็นอะไรที่พูดถึงว่าจะต้องใช้เวลานานเท่าใด มีใครลองเชื่อมต่อโปรโตคอลเหล่านี้ในระยะทางหลายฟุตหรือไม่?

4
การแปลง I2C 3.3 เป็น 5.0 V
ฉันพยายามเชื่อมต่ออุปกรณ์ 3.3VI 2 C กับ 5V Arduino ฉันไม่มีปัญหากับสาย SCL ฉันสามารถใช้ตัวแบ่งแรงดันไฟฟ้าแบบง่าย ๆ แต่ฉันมีปัญหากับสาย SDA เนื่องจากนี่เป็นแบบสองทิศทาง ฉันไม่แน่ใจว่าจะจัดการเรื่องนี้อย่างไร แม้ว่าฉันจะมีการเพิ่มไดโอดคู่หนึ่งโดยมีตัวแบ่งแรงดันไฟฟ้าที่ด้านอินพุตของทาสและไม่มีอะไรเพิ่มเติมในอินพุตหลัก มีวิธีแก้ไขปัญหาอื่น ๆ อีกไหม?

7
จะเกิดอะไรขึ้นถ้าฉันละเว้นตัวต้านทาน pullup บนบรรทัด I2C
เพิ่งทราบว่าข้อมูลและสายสัญญาณI 2 C (SDA และ SCL) ต้องมีตัวต้านทานแบบดึงขึ้น ฉันได้สร้างนาฬิกาสองสามดวงโดยใช้ DS1307 RTC (ดูแผ่นข้อมูล ) ตามแผนผังด้านล่าง สังเกตว่าฉันได้ตัดตัวต้านทานแบบดึงขึ้นมาทั้งสองตัวแล้ว นาฬิกาทั้งสองทำงานได้ดีหนึ่งในนั้นทำงานมานานกว่า 3 เดือนแล้ว เป็นไปได้อย่างไร? ไม่ว่าในกรณีใดฉันอยากรู้ว่า: จะเกิดอะไรขึ้นเมื่อละเว้นการดึงข้อมูลI 2 C การขาด pullups มีแนวโน้มที่จะสร้างความเสียหายให้กับไอซีทั้งสองในบอร์ดของฉันหรือไม่? ฉันตอบหลังจากที่ระบุกรณีเฉพาะของฉันในการเชื่อมต่อ ATmega328P กับ DS1307 RTC เหมือนในแผนงานที่ฉันให้ แต่ถ้าคำถามไม่กว้างเกินไปมันจะมีประโยชน์ถ้ารู้ว่าจะเกิดอะไรขึ้นเมื่อดึงพูลทั่วไป เช่นในสถานการณ์อื่นของการดำเนินการI 2 C PS ฉันค้นหาเครือข่ายอินเทอร์เน็ตเพื่อค้นหาคำตอบ แต่สามารถหาบทความเกี่ยวกับการวัดขนาดการดึง อัปเดต:ฉันใช้ Arduino IDE 1.03 และเฟิร์มแวร์ของฉันจัดการ RTC โดยใช้DS1307RTC Arduino lib (ผ่านฟังก์ชั่นRTC.read()และRTC.write()) lib นั้นจะใช้Wire.hเพื่อพูดคุยกับ …
33 atmega  i2c  pullup  rtc 

4
วิธีการเชื่อมต่ออุปกรณ์ i2c-interface หลายตัวเข้ากับ A4 pin (SDA) และ A5 (SCL) บน Arduino เดียว
ฉันต้องการเพิ่มโมดูลนาฬิกาเรียลไทม์ในโครงการเล็ก ๆ ของฉัน ฉันต้องการแสดงทั้งวันและเวลาบนโมดูล LCD i2c 2x16 ที่มีอยู่ของฉัน ทั้งโมดูลนาฬิกาเรียลไทม์ของ i2c-interface และโมดูล LCD 2x16 ใช้ pin A4 (SDA) และ A5 (SCL) เดียวกันบน Arduino Uno หลังจากผ่านไปหลายชั่วโมงของการค้นหาบนเน็ตบัส i2c สามารถใช้อุปกรณ์ซีเรียลมากมาย สิ่งนี้เป็นไปได้เนื่องจากอุปกรณ์แต่ละเครื่องมีที่อยู่เฉพาะของตนเอง คำถามของฉันคือวิธีการเชื่อมต่ออุปกรณ์ i2c-interface สองตัวเข้ากับ A4 และ A5 เดี่ยวหรือไม่? ขอบคุณ
31 arduino  i2c 


5
ฉันสามารถใช้ I2C ผ่านสายเคเบิลยาว 2 มได้หรือไม่
ในโครงการปัจจุบันของฉันฉันต้องสื่อสารระหว่างไมโครคอนโทรลเลอร์และเซ็นเซอร์บางตัวผ่าน I2C หนึ่งในนั้นคือเซ็นเซอร์วัดอุณหภูมิซึ่งจะต้องอยู่ห่างจากไมโครคอนโทรลเลอร์ประมาณ 2 เมตร ฉันไม่สามารถเลือกโปรโตคอลอื่น (เซ็นเซอร์อยู่ในโมดูลที่มีตัวเชื่อมต่อ / พิน / โปรโตคอล) คุณคิดว่าเป็นไปได้ไหมที่จะสื่อสารในโครงแบบนี้? ฉันควรค้นหาข้อมูลใดเพื่อให้แน่ใจว่าสามารถทำได้หรือไม่สามารถทำได้ คุณมีคำแนะนำไหม? นี่เป็นครั้งแรกที่ฉันได้สื่อสารกับ IC นอก PCB

6
โปรโตคอลการ จำกัด / การซิงโครไนซ์เทคนิคแบบอนุกรม
เนื่องจากการสื่อสารแบบซีเรียลแบบอะซิงโครนัสแพร่กระจายอย่างกว้างขวางในอุปกรณ์อิเล็กทรอนิกส์ทุกวันนี้ฉันเชื่อว่าพวกเราหลายคนได้พบคำถามเช่นนี้เป็นครั้งคราว พิจารณาอุปกรณ์อิเล็กทรอนิกส์Dและคอมพิวเตอร์PCที่เชื่อมต่อกับสายอนุกรม (RS-232 หรือคล้ายกัน) และจำเป็นต้องมีการแลกเปลี่ยนข้อมูลอย่างต่อเนื่อง Ie PCกำลังส่งเฟรมคำสั่งแต่ละเฟรมX msและDกำลังตอบกลับด้วยรายงานสถานะ / เฟรม telemetry แต่ละรายการY ms(สามารถส่งรายงานเป็นการตอบสนองต่อคำขอหรือเป็นอิสระ - ไม่สำคัญเลยที่นี่) กรอบการสื่อสารสามารถมีข้อมูลไบนารีใด ๆ โดยพลการ สมมติว่าเฟรมการสื่อสารเป็นแพ็กเก็ตที่มีความยาวคงที่ ปัญหา: เนื่องจากโปรโตคอลมีความต่อเนื่องด้านการรับอาจหลุดการซิงโครไนซ์หรือเพียงแค่ "เข้าร่วม" ที่อยู่ตรงกลางของเฟรมที่ส่งต่อเนื่องดังนั้นมันจะไม่รู้ว่าจุดเริ่มต้นของเฟรม (SOF) นั้นอยู่ที่ไหน ข้อมูลมีความหมายที่แตกต่างกันไปตามตำแหน่งของ SOF ข้อมูลที่ได้รับจะเสียหายและอาจเกิดขึ้นตลอดไป ทางออกที่ต้องการ รูปแบบการลด / ประสานที่เชื่อถือได้ในการตรวจจับ SOF ด้วยเวลาการกู้คืนสั้น ๆ (เช่นไม่ควรใช้เวลามากกว่านั้นพูด 1 เฟรมเพื่อซิงโครไนซ์อีกครั้ง) เทคนิคที่มีอยู่ฉันรู้ (และใช้บางส่วน) ของ: 1) ส่วนหัว / การตรวจสอบ - SOF เป็นค่าไบต์ที่กำหนดไว้ล่วงหน้า ตรวจสอบผลรวมในตอนท้ายของเฟรม จุดเด่น:เรียบง่าย …
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

7
ทำไม I2C ออกแบบมาเพื่อทำงานกับตัวต้านทานแบบดึงขึ้นและไม่ใช่แบบตัวดึงลง
ฉันเข้าใจว่าใน I2C, SCL และสาย SDA ใช้ตัวต้านทานแบบดึงขึ้นและไดรเวอร์พินเป็นอุปกรณ์เก็บสะสม NPN แบบเปิดซึ่งสามารถขับหมุดไปที่พื้นได้ สิ่งนี้ทำให้ I2C ได้เปรียบที่ตอนนี้บัสเดียวกันสามารถใช้ร่วมกับทาสหลายคนได้และแม้ว่าทาสสองคนหรือมากกว่านั้นพยายามขับรถบัสโดยไม่ตั้งใจในเวลาเดียวกัน แต่ก็ไม่ทำให้ระบบเสียหาย แต่สิ่งนี้สามารถทำได้โดยใช้PNP open drain driversและตัวต้านทานแบบดึงลงในสาย SDA และ SCL สิ่งต่าง ๆ เช่นการยืดนาฬิกาและอนุญาโตตุลาการหลายหลักสามารถทำได้ด้วยเช่นกัน การติดตั้งใช้งานโปรโตคอล I2C ปัจจุบันให้ประโยชน์มากกว่าการใช้ทางเลือกที่แนะนำข้างต้นหรือไม่?

3
วิธีแก้ไขข้อผิดพลาดในการออกแบบ PCB หลังจากผลิตแล้ว
Newbie อายุ 16 ปีที่นี่ โปรเจคของฉันคือหุ่นยนต์ขนาดเล็กที่มี pcb ในฐานะแชสซี, แบตเตอรี่ lipo พร้อมวงจรชาร์จและเซ็นเซอร์อินฟราเรด ฉันใช้ LSM6DS33TR สำหรับ I2C accelerometer และไจโรสโคปของฉันที่มี 10K "ตัวต้านทานดึงขึ้น" ตามแผ่นข้อมูลและ ATMEGA328P เป็นไมโครคอนโทรลเลอร์ นี่เป็นครั้งแรกของฉันที่จะออกแบบบอร์ด PCB อุตสาหกรรมของฉันเองและผลิตมัน ฉันผลิต PCB กับ JLCPCB หลังจากส่งไฟล์และรอส่งเมื่อฉันเห็นข้อผิดพลาดจากการออกแบบของฉัน ฉันสังเกตเห็นว่าฉันไม่ได้ต่อสายตัวต้านทานแบบพูลอัพสำหรับบัส I2C ของฉันอย่างถูกต้องเพราะพวกเขาควรถูกดึงไปที่ 3V3 คำถามของฉันคือ: ฉันจะเปลี่ยนเส้นทางการเชื่อมต่อหรือทำการปรับเปลี่ยนเพื่อให้ SDA และ SCL ดึงขึ้นเพื่อจ่ายแรงดันไฟฟ้าด้วย PCB ที่กำลังผลิตอยู่แล้ว? ฉันควรเปลี่ยนการออกแบบและผลิต PCB อื่นหรือไม่ (ยากจน) :) นี่คือแผนผังทั้งหมดของโครงการที่ฉันทำ: (เส้น i2c ล้อมรอบ) …

6
ทำไมต้องใช้I²Cหลายพอร์ต
โปรโตคอลI²Cอนุญาตให้ใช้ในทางทฤษฎีและด้วยการกำหนดแอดเดรส 7 บิตสูงสุด 127 อุปกรณ์ที่จะเชื่อมต่อกับต้นแบบ นี่เป็นจำนวนมากดังนั้นทำไมไมโครคอนโทรลเลอร์ที่มีต้นทุนต่ำ (เช่นPIC24 นี้ ) จึงมีพอร์ตI²Cมากกว่าหนึ่งพอร์ต ทำไมถึงจำเป็น?
19 i2c 

7
โปรโตคอลทั่วไปสำหรับการถ่ายโอนข้อมูลจากระบบหนึ่งไปสู่อีกระบบหนึ่ง?
โปรโตคอลทั่วไปในการส่งข้อมูลจากระบบหนึ่งไปยังอีกระบบคืออะไร? ตัวอย่างเช่นสมมติว่าเรามีข้อมูลบางอย่างที่รวบรวมจากไมโครคอนโทรลเลอร์ในช่วงระยะเวลาหนึ่งที่เราต้องการส่งไปยังไมโครคอนโทรลเลอร์อื่น ฉันได้ยินเกี่ยวกับอินเทอร์เฟซ SPI และ I2C แต่ฉันไม่ชัดเจนเมื่อคุณใช้วิธีหนึ่งเหนือวิธีอื่นและวิธีที่คุณใช้งาน มีวิธีอื่นนอกเหนือจาก SPI และ I2C ที่ใช้กันทั่วไปหรือไม่? กระบวนการดำเนินการคล้ายกันสำหรับไมโครคอนโทรลเลอร์ที่แตกต่างกันหรือไม่? เป็นการแยกวิเคราะห์ข้อมูลที่ฉันทำกับไมโครคอนโทรลเลอร์ที่รับหรือไม่
18 i2c  spi  data 

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