Author Topic: I2C range extender  (Read 18551 times)

0 Members and 1 Guest are viewing this topic.

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 18111
  • Country: 00
Re: I2C range extender
« Reply #25 on: May 18, 2015, 12:55:43 pm »
One spike on the clock line will screw up an entire message

As will a corrupted start bit on RS232.

Noise is noise. The real solution is in cable shielding and checksums and ACK/NACK packets, not a different bus.

PS: I2C has an ACK/NACK bit after every byte sent. The master can detect if the slave is out of sync.
 

Offline LabSpokane

  • Super Contributor
  • ***
  • Posts: 1899
  • Country: us
Re: I2C range extender
« Reply #26 on: May 18, 2015, 02:34:46 pm »
the motor is not shielded, the wiring they are using for there communications nearby to the motors are, speed controlled motors are some of the loudest electrical noise sources i am aware of,

Well, that has to change or it will affect more than just the I2C bus eventually. If you care, I can post my short-term fix until I source a better-designed brushed motor.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 30252
  • Country: nl
    • NCT Developments
Re: I2C range extender
« Reply #27 on: May 18, 2015, 02:45:43 pm »
One spike on the clock line will screw up an entire message
As will a corrupted start bit on RS232.

Noise is noise. The real solution is in cable shielding and checksums and ACK/NACK packets, not a different bus.
Wrong! A 1us pulse on the clock of a 10kHz I2C bus will screw it up. A 1us pulse on a 9600 baud RS232 connection will go unnoticed. Remember RS232 has been designed from the start to deal with noise on long wires; I2C is not.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 9053
  • Country: us
    • SiliconValleyGarage
Re: I2C range extender
« Reply #28 on: May 18, 2015, 03:30:29 pm »
Wrong! A 1us pulse on the clock of a 10kHz I2C bus will screw it up. A 1us pulse on a 9600 baud RS232 connection will go unnoticed. Remember RS232 has been designed from the start to deal with noise on long wires; I2C is not.
10KHZ is not an i2c clock ! it's either 100K 400K 1M or 3.2M
the new transceivers have noise rejecting circuitry. any pulse shorter than 1/3 of the clock is rejected. combine that with an active pull up circuit with ciurrent injecters in the modern transceivers and you end up with something pretty rugged.
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Online Kalvin

  • Super Contributor
  • ***
  • Posts: 2176
  • Country: fi
  • Embedded SW/HW.
Re: I2C range extender
« Reply #29 on: May 18, 2015, 03:32:53 pm »
NXP Application note using P82B96 with optical isolation:

http://www.nxp.com/documents/application_note/AN10364.pdf

"Sending I2C-bus signals via long communications cables":
http://www.nxp.com/documents/application_note/AN10658.pdf
« Last Edit: May 18, 2015, 03:36:24 pm by Kalvin »
 

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 18111
  • Country: 00
Re: I2C range extender
« Reply #30 on: May 18, 2015, 03:38:05 pm »
A 1us pulse on a 9600 baud RS232 connection will go unnoticed.

That will depend on the RS232 chip, and ... guess what? There's I2C chips that can do exactly the same thing.

You still have to add checksums and packet management in very noisy environments.

Remember RS232 has been designed from the start to deal with noise on long wires; I2C is not.

Sure - back in the days when it was +/-12V and 1200 baud. These days it's generally TTL and much higher baud rates.
 

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 18111
  • Country: 00
Re: I2C range extender
« Reply #31 on: May 18, 2015, 03:44:18 pm »
10KHZ is not an i2c clock ! it's either 100K 400K 1M or 3.2M
There's no lower limit. It can be 10KHz if you want it to. 


 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 9053
  • Country: us
    • SiliconValleyGarage
Re: I2C range extender
« Reply #32 on: May 18, 2015, 04:18:16 pm »
10KHZ is not an i2c clock ! it's either 100K 400K 1M or 3.2M
There's no lower limit. It can be 10KHz if you want it to.
There is indeed no lower limit. But, the pulse rejectors in the newer chips only work at the 'official' I2C frequencies. Ther eis a circuit that detects what speed you are running at and adjusts the noise filter accordingly. it only works in small bands
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

-->