element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Sensors
  • Technologies
  • More
Sensors
Sensor Forum Could you help me find issue in sensor circuit?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Sensors to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 20 replies
  • Subscribers 340 subscribers
  • Views 4617 views
  • Users 0 members are here
  • eagle
  • pcb
Related

Could you help me find issue in sensor circuit?

embeddedguy
embeddedguy over 2 years ago

I have designed a sensor with magnetometer and pressure sensor(ICP20100). After ordering the PCB and having done initial test, I could not find the ICP20100 on I2C bus(Address=0x63) while the other sensor is showing on the I2C bus.

Could you help me find the issue in my circuit diagram(Screenshot below)? as this could be the likely source of issue with the PCB. 

Note: As per the datasheet the CSB pin need to be high for I2C to active, hence I have removed the 10k resistor and short the pins.

The issue could be the capacitors C8/9 which needs to be low ESR as per datasheet. I ignored it because it was hard to find a caps which have this parameter listed in datasheet. So I used capacitors with same value and tolarances.

image

  • Sign in to reply
  • Cancel

Top Replies

  • Andrew J
    Andrew J over 2 years ago in reply to scottiebabe +3
    You’re right (of course). If the MPU6050 thinks it is the master for the downstream sensors, then it won’t be possible to enumerate these on the I2C bus from the system processor. What I don’t understand…
  • Andrew J
    Andrew J over 2 years ago +2
    Pin 6, ADO, defines the I2C address: low is 0x63; high is 0x64. This pin is connected to something off image and the component SJ4. Perhaps that is tied to ground somewhere which would seem ok, but if…
  • Andrew J
    Andrew J over 2 years ago in reply to Andrew J +2
    As a final thought, there are Arduino scripts thst enumerate the I2C bus to tell you what is on it. You could use, or adapt, that to check it isn’t hiding. In fairness though, I think the issue is how…
Parents
  • Andrew J
    Andrew J over 2 years ago

    Pin 6, ADO, defines the I2C address: low is 0x63; high is 0x64.  This pin is connected to something off image and the component SJ4.  Perhaps that is tied to ground somewhere which would seem ok, but if not - e.g. it is permanently high, or fluctuates, it will be 0x64 or just won’t work properly.  First thing is to test the voltage of pin6, preferably with a scope to see if it is fluctuating.  I can’t tell what SJ4 is so can’t check its datasheet.  The caps you mentioned don’t impact the I2C interface - note, don’t add capacitance to the I2C lines as it will affect the rise times and it may well not work properly.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew J
    Andrew J over 2 years ago in reply to Andrew J

    As a final thought, there are Arduino scripts thst enumerate the I2C bus to tell you what is on it.  You could use, or adapt, that to check it isn’t hiding.  In fairness though, I think the issue is how you’ve connected ADO.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Andrew J
    Andrew J over 2 years ago in reply to Andrew J

    As a final thought, there are Arduino scripts thst enumerate the I2C bus to tell you what is on it.  You could use, or adapt, that to check it isn’t hiding.  In fairness though, I think the issue is how you’ve connected ADO.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Children
  • embeddedguy
    embeddedguy over 2 years ago in reply to Andrew J

    Hi Andrew J 

    Thank you for your valuable feedback. Actually SJ4 is a jumper. So the device can be either at 0x63, if soldered to GND or it can be at 0x64. So in my case it will be 0x63 as it is soldered to GND pad.

    Yes, I am trying the arduino i2cscan program to identify the device. Followed scottiebabe  suggestions and will try some other means to see if the sensor can work.
    Thanks again!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew J
    Andrew J over 2 years ago in reply to embeddedguy

    So your jumper SJ4 is set to link either pins 1 and 2 or pins 2 and 3?  1 and 2 connect it to high (e.g. VSS voltage) and 2 and 3 to low (I.e. GND).  And currently it is pins 2 and 3?  Where does that trace go from pin 6 ADO off image?  Unfortunately, there’s a lot “off-image” in what you have pasted so it’s not possible to tell but TBH that looks a bit iffy unless it is to another jumper which is set exactly the same way as SJ4.  It feels like where missing a useful part of the picture here.

    If you aren’t finding it on the bus, in my experience it has always come down to one of two things: (1) the IC isn’t powered; or (2) the address hasn’t been setup correctly.  Research tells me that it could also be a third thing: (3) too much capacitance on the SCL and/or SDO lines - you don’t have any additional external capacitors on those traces anywhere do you?  That impacts the rise time of the signals and the device ends up operating erratically or not at all.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • embeddedguy
    embeddedguy over 2 years ago in reply to Andrew J

    Hi Andrew J 

    Regarding the jumper SJ4 everything is correct in my opinion. It is connected to GND. and not to Vcc. Sorry for incomplete schematics. Here in this .pdf file you will find the full schematic. 

    Well, The IC is powered  properly considering PCB layout. Because, I have used the same line(Vcc) to power the device. Regarding caps, there could be issue but all I can do is try some hardware technique.

    What comes to my mind right now is that could be that the device is not soldered/handled properly while in assembly process. 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • embeddedguy
    embeddedguy over 2 years ago in reply to embeddedguy

    Maybe this screenshot of sensor PCB layout gives the hint that sensor is powered properly and all other pins like RESV(pin 8&9) are grounded as per the datasheet. Pins Vdd and Vddio are connected to 3.3V and pins Vss to GND. others are just AD0, for address selection, SCL &SDA, And last one for Chip select.

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew J
    Andrew J over 2 years ago in reply to embeddedguy

    Your SCL and SDA lines on your MPU are connected with pull up resistors to VDD but also to transistors - why?  The SCL and SDA lines on your two sensors are connected to the AUX_xx pins on the MPU without pull-up resistors.  I’m going to have to presume that works seeing as you are communicating ok with one of the sensors.  I’ll also assume that power and GND is being provided through the connector on the left of the schematic and nothing is plugged into the connector on the top of the schematic.  I’ll also assume pin 2 and pin3 of SJ4 are connected but pin 1 of SJ4 is not connected to pins 2 and 3.

    In which case, short of what is happening in your MPU, I don’t really have any other suggestions except to scope pin6 of your sensor and make sure it is a steady low voltage, I.e. 0V or thereabouts.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • scottiebabe
    scottiebabe over 2 years ago in reply to embeddedguy

    If your pressure sensor is on the auxiliary I2C port of the mpu-6050 your going to have to enable the i2c bypass/passthrough mode, its been ages since I have looked at this, but this post may give you some hints

    https://forum.arduino.cc/t/extracting-a-magnetic-heading-from-gy-86/185955/4 

    Or you could just try connecting your host directly to this i2c bus.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew J
    Andrew J over 2 years ago in reply to scottiebabe

    You’re right (of course).  If the MPU6050 thinks it is the master for the downstream sensors, then it won’t be possible to enumerate these on the I2C bus from the system processor.  What I don’t understand is why the magneto sensor is found but the pressure sensor isn’t as these are both on the auxiliary bus.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • embeddedguy
    embeddedguy over 2 years ago in reply to scottiebabe

    I have tried both,
    I mean I have created a library to interface external sensors to MPU6050 I2C bus. That's why I can see the Magnetometer HMC5886Lon the I2C bus.

    gitlab.com/.../mpu6050_ind

    Then, ofcourse, I tried to directly connect to sensor via I2C without MPU6050 in picture. But device did not show up. Last thing I tried was to interface sensor via SPI interface, which did not work. So I think that the sensor is somehow not working, maybe because of some assembly issue or some damage caused to sensor when soldering.!!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • embeddedguy
    embeddedguy over 2 years ago in reply to embeddedguy

    The sensor circuit is designed such a way that MPU6050's AUX bus can connect to other two sensors. or the other two sensors can be connected to I2C bus via pin headers. So imagine MPU6050 acting as a switch..!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • embeddedguy
    embeddedguy over 2 years ago in reply to Andrew J

    The transistor are there for level conversion. So the sensor can work with 5V devices without any issue. Regarding the pull-ups thing, there is not need for the pull-ups on other two sensors on aux interface as the main pull-ups will be available. However, if I connect via header pins, then for sure, I will need extra pull-ups.!!! Sounds complex right?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube