Author Topic: Rigol 1054z I2C Channel Bleed Issue  (Read 577 times)

0 Members and 1 Guest are viewing this topic.

Offline HopWorks

  • Contributor
  • Posts: 10
Rigol 1054z I2C Channel Bleed Issue
« on: October 30, 2017, 11:13:21 am »
Greets All,
I am a new guy to using a scope and am learning more everyday, especially here. I am sure my terminology is not correct at all so please bare with me.

I ran into a small issue where I2C logic transitions from one channel seem to influence the waveform on the second channel. It seems to be both ways, where the clock transitions seem to effect the data waveform, and vise versa. With all the tutorials, both HTML and Video, the waveforms shown seem to be a bit cleaner than what I am getting, and I just wanted to know why it is happening so I can attempt to correct it. Ground issues, using short jumpers to connect the probes, maybe actually a circuit issue like not enough current on the 3.3vdc rail, incorrect power decoupling capacitors, etc.

The platform I am connected to IS on a bread board. Before I start ripping that apart and start connecting wires directly to the gear, I wanted to ask this here. I am using short jumper wires to connect to the test points because I do not want to short anything on the modules. Maybe that is just a probe trust issue. They are retractable spring hook types set at 10x. I have two pulled screen shot files I have included thanks to a wonderful linux python script and the ethernet connection I have with the scope, and SCPI. GOD I LOVE THAT FEATURE!!! Sorry, had to share that. No more smart phone pics of the scope's screen anymore for me! YAY!

More about the circuit...

I am testing slave I2C programming on a blue pill STM32F103C8T6 with a Bus Pirate V3.6. I have the blue pill board and an accelerometer module (GY 80 -
 ADXL345, MC5883L, L3G4200D, BMP085) connected to the same bus. Both modules addresses are responding to an I2C address search function from the Bus Pirate as expected. Resistor pull ups to 3.3v are applied through the bus pirate and are enabled. I will take a pic of that set up for this post and include it. There is a side question here... what is the best way to apply my scope's probes? As far as the probes ground connection and the probe's main connection?

Here is two screen shots of the waveform that I get. Noticed the little dips and spikes in one waveform when the other transitions. The second shot is zoomed in to show more detail of the anomaly. The last image is my setup. All images are attached. I did not know how to insert an image into the post. Sorry.

Thank you for your time and I appreciate anything that could be elaborated on here.

 

Offline TK

  • Frequent Contributor
  • **
  • Posts: 633
  • Country: us
  • I am a Systems Analyst who plays with Electronics
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #1 on: October 30, 2017, 11:21:55 am »
It looks like crosstalk to me, due to the use of breadboard and jumper wires.  But it might be something else, as I tested this configuration many times (i2c on breadboard + jumper wires) and I did not see any crosstalk.  Try using pin headers to connect the probes to the signals you want to visualize, including GND.
 
The following users thanked this post: HopWorks

Online tautech

  • Super Contributor
  • ***
  • Posts: 11697
  • Country: nz
    • Taupaki Technologies Ltd.
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #2 on: October 30, 2017, 11:32:37 am »
It looks like crosstalk to me, due to the use of breadboard and jumper wires.  But it might be something else, as I tested this configuration many times (i2c on breadboard + jumper wires) and I did not see any crosstalk.  Try using pin headers to connect the probes to the signals you want to visualize, including GND.
It's not crosstalk.

It's DUT based and due to insufficient decoupling. No big deal until the spikes exceed IC bus state levels or decoding thresholds.
Avid Rabid Hobbyist & NZ Siglent Distributor
 
The following users thanked this post: HopWorks

Offline HopWorks

  • Contributor
  • Posts: 10
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #3 on: October 30, 2017, 11:39:38 am »
What is DUT? I'm sorry that I do not know that.

And insufficient decoupling... I will dig into the datasheets on what proper values to use. I have two .1uf caps on the power bus but one one next to a device, and a 10uf on the power bus away from the device.
 

Offline HopWorks

  • Contributor
  • Posts: 10
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #4 on: October 30, 2017, 11:40:50 am »
Headers! That is brilliant! I did not even think about that. I have a mess of them that break apart also. THANK YOU!  :-+ :-+ :-+ :-+
 

Offline TK

  • Frequent Contributor
  • **
  • Posts: 633
  • Country: us
  • I am a Systems Analyst who plays with Electronics
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #5 on: October 30, 2017, 11:41:03 am »
It's not crosstalk.
"Crosstalk. In electronics, crosstalk is any phenomenon by which a signal transmitted on one circuit or channel of a transmission system creates an undesired effect in another circuit or channel. Crosstalk is usually caused by undesired capacitive, inductive, or conductive coupling from one circuit or channel to another ..."
 

Online tautech

  • Super Contributor
  • ***
  • Posts: 11697
  • Country: nz
    • Taupaki Technologies Ltd.
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #6 on: October 30, 2017, 11:46:14 am »
It's not crosstalk.
"Crosstalk. In electronics, crosstalk is any phenomenon by which a signal transmitted on one circuit or channel of a transmission system creates an undesired effect in another circuit or channel. Crosstalk is usually caused by undesired capacitive, inductive, or conductive coupling from one circuit or channel to another ..."
OK, then best to specify the type.
I was referring to inter-channel scope crosstalk.
Avid Rabid Hobbyist & NZ Siglent Distributor
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 4177
  • Country: us
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #7 on: October 30, 2017, 11:52:16 am »
Add a large capacitor at the far end of the Vcc bus - maybe 100 ufd or so.
Add 0.1 ufd ceramic capacitor where each device connects to the bus.  As close to the device as possible.

Even then, you won't get rid of all the 'glitches' and it really doesn't matter.  What matters is the state of SDA when SCL comes along.

The pull-ups should be at the far end (Bus Pirate probably IS at the far end) and no less than 2.2k and, considering all the capacitance of your setup, perhaps 1k might be better.  I would try 2.2k...

http://www.ti.com/lit/an/slva689/slva689.pdf
 

Offline ebclr

  • Super Contributor
  • ***
  • Posts: 1570
  • Country: 00
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #8 on: October 30, 2017, 11:52:25 am »
It's everything just running as expected,  With the construction made, the actual ground connections, and long wires, together with poor power supply decoupling is a lucky and nice signal.

If you want something better, must make a decent PCB, a better power supply, with decoupling everywhere, a proper ground plane, a unique point short ground.
 
The following users thanked this post: HopWorks

Offline TK

  • Frequent Contributor
  • **
  • Posts: 633
  • Country: us
  • I am a Systems Analyst who plays with Electronics
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #9 on: October 30, 2017, 11:53:16 am »
It's not crosstalk.
"Crosstalk. In electronics, crosstalk is any phenomenon by which a signal transmitted on one circuit or channel of a transmission system creates an undesired effect in another circuit or channel. Crosstalk is usually caused by undesired capacitive, inductive, or conductive coupling from one circuit or channel to another ..."
OK, then best to specify the type.
I was referring to inter-channel scope crosstalk.
I paid more attention to the post text (breadboard + jumper wire issue) and not the title as you did... sorry
 
The following users thanked this post: HopWorks

Offline HopWorks

  • Contributor
  • Posts: 10
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #10 on: October 30, 2017, 12:20:53 pm »
OK, Grazie everyone. I'm just prototyping and tweaking my slave firmware to get the results I need. To that end, I'm not going to create a PCB yet to improve the signal results. Your posts have given me a bit to think about though, and highlighted some of my oversights I should know much more about by now. As far as geography of the I2C bus, I had not thought of that. In the final design, it will only be a connection between the STM32F103C8T6 and a RPI Zero Wifi. The bus pirate was just connected along with the GY80 module to see why my code is not responding to the read bit in the addressing, and where the pull ups went kind of got lost in the circuit. As far as I know, the RPI applies pull ups to the I2C1 port internally but I do not remember what the values are.

This just threw me a bit, seeing those spikes and dips where I did not expect them, and in relation to transitions on the other channel. Especially when I see some kid just wire a mess to a scope and get a near perfect waveform. lol

Thanks again!!
 

Online tautech

  • Super Contributor
  • ***
  • Posts: 11697
  • Country: nz
    • Taupaki Technologies Ltd.
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #11 on: October 30, 2017, 12:37:34 pm »
It's not crosstalk.
"Crosstalk. In electronics, crosstalk is any phenomenon by which a signal transmitted on one circuit or channel of a transmission system creates an undesired effect in another circuit or channel. Crosstalk is usually caused by undesired capacitive, inductive, or conductive coupling from one circuit or channel to another ..."
OK, then best to specify the type.
I was referring to inter-channel scope crosstalk.
I paid more attention to the post text (breadboard + jumper wire issue) and not the title as you did... sorry
I think back to the days before digital, or at least when it was in its infancy where the term crosstalk was only used in audio defining the coupling between channels and sometime later when I got very interested in scopes where inter-channel crosstalk is again used in specifications.

This is not to say that's the term is incorrect in the digital domain, just IMO it's too broad a term to use.
Whenever you see it in specs or datasheets it's usually for a finished commercial product.
In HopWorks case the effect seen is quite common in the digital domain and as long as it doesn't exceed thresholds there's no problem.

Interesting discussion, others POV may support mine or yours.  ;)
Avid Rabid Hobbyist & NZ Siglent Distributor
 
The following users thanked this post: HopWorks

Offline sokoloff

  • Frequent Contributor
  • **
  • Posts: 507
  • Country: us
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #12 on: October 30, 2017, 12:55:00 pm »
What is DUT? I'm sorry that I do not know that.
"Device Under Test" (the thing you're hooking the scope up to).
 
The following users thanked this post: HopWorks

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 4177
  • Country: us
Re: Rigol 1054z I2C Channel Bleed Issue
« Reply #13 on: October 31, 2017, 01:44:51 am »
As far as I know, the RPI applies pull ups to the I2C1 port internally but I do not remember what the values are.


You need to know!  Middle of Page 4 here:
https://www.raspberrypi.org/app/uploads/2012/04/Raspberry-Pi-Schematics-R1.0.pdf

The board provided resistors onthe RPi are 10k.  These may, or may not, be adequate.  I would consider putting another 10k in parallel at the end of the bus.  That would bring the pull-up value down to 5k.  Maybe provide for the resistors in the custom PCB and decide later whether to install them.

Getting rid of the breadboard and stringy wires will be a help but the biggest issue I see on the traces is a lack of decoupling.  This isn't uncommon.


 
The following users thanked this post: HopWorks


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf