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
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum How do I connect the ICM-20948 to an ESP32 PICO D4?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 6 replies
  • Subscribers 464 subscribers
  • Views 3475 views
  • Users 0 members are here
  • icm-20948
  • esp32 pico d4
Related

How do I connect the ICM-20948 to an ESP32 PICO D4?

s_f1
s_f1 over 4 years ago

Hello everyone, I am trying to add this ICM-20948 (data sheet- https://product.tdk.com/system/file...l/imu/data_sheet/ds-000189-icm-20948-v1.3.pdf). I am just a beginner at this, not sure wether I have connected it correctly.

 

I am trying to use the I2C connection with this to my esp32 pico d4, but not sure wether I have connected it correctly, hence I have not connected the SDA and SCL to the MCU. I am getting confused with the SDO/ADO, SDA/SDI, SCL/SCLK pins. I have shared my schematic down below. Which do I use for a standard I2C connection?

 

Thanks a lot for your help!

 

 

Attachments:
imageAccelerometer & Gyro.pdf
  • Sign in to reply
  • Cancel

Top Replies

  • fmilburn
    fmilburn over 4 years ago +3
    Hi, The pinout for the ICM-20498 in I2C configuration is shown in Figure 4a on page 20 of the datasheet you linked. SDA and SCL are clearly marked. ADO is used to set the LSB to avoid address conflicts…
  • fmilburn
    fmilburn over 4 years ago

    Hi,

    The pinout for the ICM-20498 in I2C configuration is shown in Figure 4a on page 20 of the datasheet you linked.  SDA and SCL are clearly marked.  ADO is used to set the LSB to avoid address conflicts. On the ESP32 the pins are not so clearly marked, but on the board I have used SDA is IO21 and SCL is IO22.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • s_f1
    s_f1 over 4 years ago in reply to fmilburn

    Thanks a lot Frank Milburn, I assume that the SDO/ADO are the same, and they aren't different from one another. And they need to be connected to the MCU right? Also I would like to ask, is my circuit right? Have I connected it the right way?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • fmilburn
    fmilburn over 4 years ago in reply to s_f1

    I lack familiarity with the ICM-20498 so can't give you informed answers on using the chip.  My approach would be to understand the datasheet and then look for a working schematic in the TDK technical support or from a trusted open source vendor.  I did a quick google and both SparkFun  SparkFun_IMU_Breakout_ICM-20948.sch and Adafruit make breakout boards sensors_image.png (9258×6378) (adafruit.com).  You can see their schematics, layouts, and even get working code by examining what they did.  If things get really difficult I would look for help in TDK technical support.

     

    ADO sets the LSB for the I2C address in that mode - see section 6.2 of the datasheet and should be tied to logic high or to GND, not the MCU.  It looks like SparkFun ties theirs to GND and Adafruit to 1.8V.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • s_f1
    s_f1 over 4 years ago in reply to fmilburn

    Sure Frank, Thanks for your help! I see that sparkfun happens to use level shifting for I2C mode, is it necessary that I also implement it in my design too? Can it be done without the level shifting?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • fmilburn
    fmilburn over 4 years ago in reply to s_f1

    See section 3.7 of the datasheet for maximum ratings.  It says SCL and SDA can be up to +0.5V above VDD but those are maximum stress ratings and not operating recommendations.  Section 3.4 gives operating values but I don't see a maximum digital high.  But they do say "Typical Operating Circuit of section 4.2, VDD = 1.8V, VDDIO = 1.8V" which is what SparkFun and Adafruit use and this would require level shifting from a 3.3V microcontroller.  I would stick with the typical operating circuit or check with TDK.

     

    EDIT: Not an expert :-)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • s_f1
    s_f1 over 4 years ago in reply to fmilburn

    Sure Frank, Thanks for your help!

    • 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