-4

I'm working with nrf51 board, I'm using I2C to communicate with an accelerometer (see the scheme), the communications are successful but I dont see any pull up resistors in the lines SDA and SCL.

could I2C work without pull-up resistors or is the scheme wrong or does the accelerometer has internal pull up on lines SDA and SCLenter image description here

Passerby
  • 72,580
  • 7
  • 90
  • 202
bouqbouq
  • 583
  • 8
  • 27
  • 1
    At leas highlight the lines, so we don't have to break our eyes.. Anyway the PUs can be internal to a chip. I2C can't work without them. – Eugene Sh. Dec 16 '15 at 17:36
  • you can click on the image and zoom, it gives a good look – bouqbouq Dec 16 '15 at 17:38
  • And then to parse all of the lines? Thank you. I'll pass. – Eugene Sh. Dec 16 '15 at 17:39
  • @EugeneSh. SDA and SCL are written in red it's really clear – bouqbouq Dec 16 '15 at 17:40
  • Don't be so lazy - do the job properly - it's impossible to read the part numbers because the resolution is bad. – Andy aka Dec 16 '15 at 17:41
  • I really dont understand, by cliking on the image, a loop apprear, by cliking again the images become bigger, at least with chrome – bouqbouq Dec 16 '15 at 17:42
  • You can't read the part number on the device top right - it connects the the bus and the part number is illegible. Maybe it isn't the temperature sensor but how would I know because I CAN'T READ THE NUMBER! – Andy aka Dec 16 '15 at 17:48
  • @Makhlouf To be able to work, I2C bus should have pull-ups *somewhere*. The right way to do it is with discrete resistors. If you don't find the discrete resistors in your schematic, then the pull-ups are probably in the microcontroller. Using the pull-ups in the microcontroller is a risky way of doing it, although the I2C bus may still function under favorable conditions. See [this very similar question](http://electronics.stackexchange.com/a/102616/7036), where the O.P. was running the I2C bus for a long time before realizing that pull-up resistors are missing. – Nick Alexeev Dec 16 '15 at 17:48
  • Short Answer for the question : NO! – ammar.cma Dec 16 '15 at 17:56

1 Answers1

5

Real IIC requires pullup resistors. Many microcontrollers have optional internal pullup resistors on some pins. If there is a micro on the bus, and that's usually the case, then it could be switching its pins between pullup and active low.

The pullups in a micro are usually higher resistance than what you'd use for IIC, but for a short bus all on one board when you know the bit rate is low enough, this can be a legitimate thing to do. I've done it.

Olin Lathrop
  • 310,974
  • 36
  • 428
  • 915