AnsweredAssumed Answered

Kinetis K20 I2C SDA bus low level @ 1 volt

Question asked by Roger Thornblad on Dec 18, 2018
Latest reply on Dec 20, 2018 by Roger Thornblad

To All,

 

Am running simple i2c test with 2 ea K20 talking back and forth to each other.

I am running into a couple of issues I haven't been able to explain.

 

I've been playing around with the pin control settings.

PORTB_PCR0   SCL

PORTB_PCR1   SDA

 

1.   code works when PCR's set to (ALT2 + ODE + PE).  However, the Low signal levels look bad on SDA (around 1V).

2.   Code does not work when PCR's set to (ALT2 + ODE).  But, low signal levels now look correct.

 

Is there any reason why i2c module requires a PULL DOWN Resister enabled?

I have external pullups on both SCL & SDA (I think they are 4.75K but I need to verify this)

 

Tried changing Pulldown to Pullup and no activity on bus at all with that config.

 

It acts like the Master cannot pull the bus completely low when the internal pullups are enabled.  And cannot see RX Data from the slave unless the pulldown is enabled.

 

Any Ideas?   I'm beginning to wonder if I've missed another config parameter somewhere.

 

Thanks,

-Roger

 

More Info

 

I forgot to mention that when the slave needs to pull SDA low that level is correct

Outcomes