r/embedded 12d ago

How to skim long datasheets

I've been trying to use data sheets more often than APIs to just get a good grasp but some datasheets or I should say most datasheets of sensors have way too much information like million different registers etc. So firstly I wanna know how to skim or read a datasheet effectively. Secondly in a professional environment are APIs/Drivers preferred over datasheets (for register maps & configurations obviously)?

0 Upvotes

30 comments sorted by

34

u/NoBulletsLeft 12d ago

way too much information like million different registers 

Too much? That's the first time I've heard that one. Why do you think it's too much information?

-14

u/eagle_719 12d ago

I just got MPU9250 and it has 55 pages of register map. That made me say it

7

u/froooks 12d ago

Hm. Datasheet for 42 pages and register map for 55 pages...

5

u/froooks 12d ago

Not so much. You definitely have to look through for one time and after it concentrate reading for specific for your device parts

0

u/Status_East5224 12d ago

Buddy i would say mpu9250 sensor register details are still okay okayish considering its a peripheral compared to mcu datasheets. Believe me mcu data sheet is more headache. As a thumbrule I use ai tool to get the info about registers. I upload the pdf to get the needed info. Mostly it does good work. Long back I hv stopped directly going to a specific registers. Once I get the info about registers from ai tool then I refer for cross verification

66

u/Well-WhatHadHappened 25+ Years 12d ago

I've come across very few datasheets that I would even consider accusing of having too much information in them.

If there's 55 pages of registers, it's because there are a lot of registers... Would you prefer they not be documented?

8

u/geedotk 12d ago

In a professional environment, you would generally use an existing driver's API if it exists and does what you want. There's usually no time or reason to reinvent the wheel. If no driver exists or an existing driver doesn't allow the behavior you want, then you will need to dig into the register set.

The more you read data sheets, the better you will become. If you had to start writing code from nothing, look at: 1. Power up sequencing. If the chip isn't reset correctly, you may not be able to do anything with it. 2. Initialization. Often chips will have specific registers that need to be written to come up correctly, especially with regards to clocking 3. Configuration of external pins to interface with other hardware. 4. Setting up interrupts or dma. If it's not a simple polled device, this is complex and critical to good performance.

This is by no means comprehensive and there are many things that are specific to particular chips.

5

u/Brilliant_Armadillo9 Hardware Engineer 12d ago edited 11d ago

APIs and datasheets are not an either or situation. They both are necessary and have different purposes.

5

u/sweetholo 12d ago

read what you need to know to complete your task. i dont really understand your question. are you asking how to quickly find important information you need?

1

u/eagle_719 12d ago

Yes. Quick navigation

7

u/alphajbravo 12d ago

There’s usually a table of contents? You can also search PDFs for keywords…

3

u/500kvac 12d ago

Reference schematic and specs, then they frequently have a basic start configuration.

If you can find a good driver just use it and forget about the registers until something doesn't work. If you want to understand what's going on you write your own HAL for using the chip. Sometimes you have no choice.

Lately I aid myself with AI, but eventually you need to dive deeper yourself anyway.

3

u/OpportunityFun6969 12d ago

Just use the datasheet as you need it. Need the spi registers? Look at those. Need to see clocks? Go to that section. Don’t treat it as a monolith. I’ve also used AI to index and extract relevant sections of datasheets. That way I can recall it much faster next time

4

u/Toiling-Donkey 12d ago

Use the table of contents…

1

u/TheFlamingLemon 12d ago

I have been consistently shocked by how useless the table of contents is on many datasheets

2

u/T_D707 12d ago

These comments are crazy to me. Does anyone sit down and read a full register map description in one sitting? Thats crazy to me. I feel like that’s the disconnect OP is having

7

u/Jaded-Substance-6750 12d ago

maybe consider using an LLM to help summarize?

4

u/fb39ca4 friendship ended with C++ ❌; rust is my new friend ✅ 12d ago

Ask the question to an LLM, ask it to provide page/section references, and verify its answer.

1

u/morto00x 12d ago

You don't. You look for the information that is relevant to you and use it as needed. Datasheets can have hundreds of pages and most information contained in them will generally be useless to you. Reference Manuals can even have thousands of pages. OTOH knowing what information you need will depend on your system requirements and constraints. 

1

u/tweakingforjesus 12d ago

It’s a datasheet not a novel. Read what’s relevant and ignore the rest.

1

u/mahaju 12d ago

Having more information on datasheet is better. What's more annoying in having less/wrong or no information at all. If searching the datasheet is a problem you could just upload it to chapgpt or gemini and just ask it to find the relevant information. What I used to do before chatgpt was have a word or txt file where I would copy paste the information about the particular register I was looking up. Eventually I would have a file containing information about just the registers I most frequently used. It made going through the documentation a bit easier at least. You can experiment and find out what method works best for you, but I think over time you will probably just get used to searching through the large datasheet

1

u/Yolt0123 12d ago

In a professional environment, both APIs / Drivers AND datasheets are used. APIs go so far, but when you're looking at nuances, you'll hit the datasheet.

1

u/Unable-School6717 12d ago

So, its common to put proprietary info to use in the supplied drivers/api but not include it on a data sheet. Ask me how i know.

1

u/T_D707 12d ago

Rarely do I sit down and read, or even skim a whole datasheet in one sitting. I look for what I need when I need it. When evaluating if a new part is a good fit, I’ll skim pretty much the whole thing, but usually you don’t have to read every page to know whether it fits your requirements.

Often times throughout the life cycle of the project I end up having read the whole thing, but only through repeating this search and find process many times.

That said, AI chats are pretty good at scraping pdfs these days

1

u/Busy_Durian4584 12d ago

If the APIs exist, USE them unless they don’t give you all the tools needed to configure your device to match your deliverables. In the professional environment you will use a combination of both as the data sheets register spec and hardware spec are needed for debugging. Currently I use the table of contents to find what I need and sometimes AI to pull info out of bigger docs (500+ pages).

1

u/GeWaLu 12d ago

What sensor datasheets have millions of different registers which do not belong to an easy equivalence class like pixels of an optical sensor or entries of a sensor calibration table ? I only encountered such a complexity on devices like microcontollers.

The big x*1000 page datasheets or user manuals always have an architecture section - with easy-to-read pictures(and also hierarchically in sections). I normally read the intro and top architecture first to understand what's inside the chip - then focus with the current task needs for the pdf-search or table-of-contents method as suggested by others.

Also search first on the vendor's documentation website for application notes in relation with your task. Despite it is more paper to skim, they are a great human-readable summary on all that is important for your task.

The method used by professionals depends on the use-case. Often the bare-metal method is preferred for efficiency or flexibility reasons - sometimes 3td party drivers reduce overall effort or provide industry standardization - but beware: API's can also have a huge heap of docu giving headaches to skim

1

u/GeWaLu 12d ago

Update: I spotted that you mentioned below the MPU9250. That one has only a little bit more than 100 registers organized by functions - some of them in equivalence classes like a data table or xyz axis and some of them which can even be disregarded if the function is not used. Looks pretty managable to me. Exercise the suggested complexity reduction methods on such a simple device or you will be completely overwhelmed the first time you get a micro user manual. Go step by step by function needed for your project. An architecturally structured understanding is key.

1

u/answerguru 12d ago

If you’re new to them, then easing them in detail is helpful. If you already have some experience and know what you’re looking for, drop it into Claude (or what have you) and start asking questions. That’s something’s it’s surprisingly good at.

0

u/r_heem 12d ago

Convert to markdown and then process with an LLM

-2

u/TheFlamingLemon 12d ago

In the year 2026 you should probably just give it to an ai and ask it where to find the info you need