Recently I was debugging a light sensor issue which connect by I2C bus. To get the original raw data, we rework the PCB to get the I2C data onto I2C analyzer. But the board is so small, so the rework process is very difficult to do. Anyway, we finish the work. But an idea come to my mind, how about to modify I2C bus driver and let it log everything into a file. We can use this log file to do the analyzer later. Is this possible? how about it on Windows (if MSFT can make a suck temporary driver).
Can I do protocol (i2c) analyze by pure software
203 Views Asked by Fakebear At
2
There are 2 best solutions below
0
Sanford Rockowitz
On
An inexpensive tool that might be of use is I2CDriver. I've used it to trace DDC traffic on an I2C bus. Unfortunately, and I'd be delighted to find out I'm wrong, I do not believe it's possible to trace I2C traffic on Windows. (On Linux, this is trivial to do.)
Related Questions in PROTOCOLS
- Python Client-Server Communication with Protocol
- Protocol 43200 after unpacking received data
- Creating a Public Typealias to Combine Multiple Protocols in One Swift Package/Target and Conforming to It in Other Targets
- Automotive: Can we design a secured PDU which is beyond 8 bytes and send it using CAN TP?
- Subtle protocol difference
- What type of communication protocol should I use for a shortlived data stream to an web application
- Firefox - Allowing about: protocol
- How to scan and message devices connected to OpenThread border router from Android app?
- v2gexi protocol Data parshing from pcap file
- "Encountering 'protocol busy' error with node-open-protocol-desoutter in Node.js when performing screwing actions
- Cannot Convert Custom ExpyTableView Type in Swift
- Swift: Singleton class "extends" from protocol
- Use a protocol rather than a struct as an (optional array) extension?
- Is there a way to encapsulate certain properties in a Swift protocol so they aren't visible to users of the protocol?
- Understanding “Finding the Dynamic Type in a Generic Context”
Related Questions in I2C
- Adafruit BNO08x Lib Not working with PicoRP2040 - PlatformIO
- msp430f5438a reading multiple sensor tmp117
- Raspberry pi 4, ina219 Bi-Directional DC Current Power Supply Sensor
- read block data with smbus2 is slow on Raspberry Pi
- I2C problems communicating with I2C Analog Devices AD5112 Digital Pot
- How to receive a float array using esp8266 via I2c
- I2C Communication with Tiva TM4C123GXL
- GPIO I2C IMU on OrangePi CM4 Running Android Doesn't Interface With Native Apps
- I2C LCD1602 interfacing with PIC16F877A
- Sets huskylens modes
- Find out which protocol to communicate with a TFT LCD display
- Why does one of the arguments in this MPU-6050 code mean something different from the official Arduino documentation?
- I want to change the slave address in runtime again after the first configuration of i2c SLAVE. Is this possible , I'm getting errors while doing that
- Issue with MAX32664 breakout board from Protocentral on STM32L476RG Nucleo-64: Fixed SpO2 value
- enabling cdc-acm uart and I2C at the same time on zephyr OS
Related Questions in ANALYZER
- Rust Analyser Update VS Code
- Is there a way to analyze assemblies in a legacy application and see how portable my code is in the newest .Net version such as .net8.0 or .net9.0?
- Custom Lucene Standard Analyzer to accept a set of words to filter while indexing
- Finding scope level using Golang Analysis package
- Using two CameraX ImageAnalysis analyzers
- Does anybody know the SA6 Spectrum analyser control codes
- How can i split the text from a conversation into sender and reciver
- guidance on using the Dart Analyzer vistor pattern
- How to read flutter/dart class constructor argument types?
- Using bannedsymbols analyzer to disallow sync methods for materializing IQueryables
- Creating custom analyzer in C# with mandatory string variable in all files
- Audio spectrum analyzer in Unity C#: how to average bin amplitudes into bands
- In camerax, video capture, preview view and image analyzer usecases not working together
- How do I use the Dart analyzer class to build a tree instance that reflects the AST?
- process frames in camera x analyzer in AI model
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I would say that this is off-topic for SO.
However, no, you cannot debug I2C purely in software; I2C problems are typically caused by the voltage levels being wrong either because the lines are not properly pulled up or because the host / slave cannot properly drive them down. It may be because of too much capacitance on the lines. In other words, they are generally analogue problems. To debug them, you need to see the actual signals, either with a debugger or an oscilloscope (preferably both).
Of course, if you have access to the source, then the bus driver can probably be modified to log to a file. This won't help you, however, when you don't see what you expect to.
So, what I'm saying is, really, that there's no getting away from soldering wires on. It's only three though.