0
\$\begingroup\$

In I2C the fall time is restricted to around 20ns as a risk of EMI(Even at 400Khz) but even a normal GPIO works at 150 MHz.Why is this so?

\$\endgroup\$
8
  • 8
    \$\begingroup\$ What gives you the impression that toggling a GPIO at 150MHz gives no risk of EMI? \$\endgroup\$ – brhans Aug 17 '20 at 14:51
  • \$\begingroup\$ JDEC standard for GPIO does not talk anything about any EMI or Minimum fall time but I2C standard restricts it. \$\endgroup\$ – Govind Srivastav Aug 17 '20 at 14:52
  • 1
    \$\begingroup\$ @GovindSrivastav because if you didn't take steps to prevent EMI then your circuit wouldn't work. There's a project that makes a raspberry pi transmit FM by using a GPIO at 100MHz! \$\endgroup\$ – user253751 Aug 17 '20 at 15:22
  • 3
    \$\begingroup\$ Just because a GPIO can be made to work at 150 MHz doesn't mean there's no risk of EMI when you do that. \$\endgroup\$ – The Photon Aug 17 '20 at 16:59
  • 1
    \$\begingroup\$ "JDEC standard for GPIO does not talk anything about any EMI" - do JEDEC publish any EMI standards? I'm not finding any... \$\endgroup\$ – Bruce Abbott Aug 17 '20 at 20:04
1
\$\begingroup\$

tl; dr version: I2C is slow and can use heavy slew-rate limiting to reduce EMI. This won't work with a fast signal, which needs good signal integrity (SI) design.

Background

All digital signals emit harmonics regardless of the clock rate. That's the nature of square pulses. The faster the switching time, the more higher-frequency harmonics will be produced when it changes state.

I2C

I2C is a shared bus. It can be routed widely on a board, have many devices connected, and even sent over cabling (like HDMI DDC). This means it can have a large loop area, and since it isn’t terminated, it can have also have noise / ringing issues (harmonics) that can lead to EMI.

One way to manage EMI is to limit the edge rate so that the harmonics are reduced. This also improves signal integrity as ringing is reduced.

Fast GPIO Signals

The 150 MHz I/O signal also emits harmonics. It’s not any 'better' than I2C, it is just different. It needs a more comprehensive SI design: more attention paid to basics like return path, termination and loop area, and, yes, slew rate that's fast enough but not too fast. These are all essential for such a fast signal to work at all.

The Takeaway

Good SI design improves EMI and vice-versa. They go hand-in-hand. And because with fast signals you have to address SI, you also are addressing EMI too. That doesn't mean you still won't have EMI issues with fast GPIOs, but at least your system with good SI will have laid the groundwork.

\$\endgroup\$
1
\$\begingroup\$

You need much faster slew rate than 50ns to achieve 150 MHz square wave, which means much larger frequencies and much larger EMI.

The point is not the signal frequency itself, but how fast transitions it has. I2C is meant to just work without worrying about impedance matching, so it is also designed not to need it, so anyone can wire it and it will most likely just work, because it is supposed to have slow edges. A 150 MHz clock is so much harder to get right regarding even PCB trace impedance and source termination.

Sometimes GPIO pins have so strong drivers that it will generate ringing on the signal, no matter if it is only toggled at 1 Hz. Of course since it happens less often it is not usually a problem regarding EMI, but signal integrity.

\$\endgroup\$
1
\$\begingroup\$

Fast GPIOs are absolutely an EMI risk. This risk can be mitigated through various steps such as properly terminated lines, close coupling to ground planes, keeping tracks short and so-on. If you don't there is a good chance your system won't work at all.

What is less obvious to most is that fast IO lines used for slow signals can also be an EMI risk. This is an easy place to get caught out (and I have done it myself in the past). You get sloppy with the wiring because you think the system slow, but because of the fast edges there is still significant possibility of interference, either to external circuits or to other lines on the same bus (A problem I have run into is signals coupling from the SCLK line to the CS line on SPI).

Phillips was designing I2C for use in TVs, so presumably they wanted to be able to run it over cheap wiring without causing interference either to itself or to the operation of the TV.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.