Coder Social home page Coder Social logo

Comments (6)

karosium avatar karosium commented on May 27, 2024

Hi,

I probably won't be able to help since I've never had this issue with the packs I've worked on but if you're getting that output it means the firmware is still running and responding to commands so this seems like some kind of communications issue to me at first glance.

Does disconnecting and reconnecting the SMBus wires (without resetting the controller) have any effect when the interface is in this state?

Does anything change if you modify SMBEnablePEC(1); to SMBEnablePEC(0); in smbusb_sbsreport.c?

from smbusb.

0r10nV avatar 0r10nV commented on May 27, 2024

@emersonknapp
Some Gas Gauging ICs really could stuck communicating on SMBUS when quering requests frequently by FX2LP boards.
The reason still not clear but in some cases reconnecting SCL and SDA lines would restore normal communication. If not then power-on reset of the dev board is required.
Have noticed that some battery packs based on bq8055 are subject to this issue.
Do you know which Gas Gauge IC is used in your battery packs?

from smbusb.

emersonknapp avatar emersonknapp commented on May 27, 2024

Yes, I have experienced that reconnecting the SCL and SDA lines fixes the issue. Do you have any idea how I could make this happen in software?

Unfortunately I don't know what gas gauge they're using inside the RRC2054 battery, I'm hesitant to crack it open since it was a little pricey.

I'm currently solving my problem by using a CP2112 which seems to have more stable communication (sometimes get read errors but then it comes back, I think it may be my calling side not waiting for a transaction to complete) - I can close this issue for now since I don't think I'll be actively following up on it.

from smbusb.

0r10nV avatar 0r10nV commented on May 27, 2024

Good to know you found a solution!

By the way similar issues could happen when communicating in MultiMaster environment due to lack of arbitrage on the bus. You have noted that you are working with Pack/Charger combination so collisions could occur with another bus Master while simultaneously talking with one slave.

Me beleive that it's not easy to solve such issues at high level software side. It needs to look at Cypress documentation for EZ-USB i2c hardware engine and then to modify FX2LP firmware. At first glance it's need to emulate "Smbus disconnect" event by changing SCL and SDA to z-state.

Regarding Gas Gauge used in your specific battery pack it's not compulsory to crack it)
With high probability chip could be detected by smbus scanning for i2c register's signatures (aka "gauge fingerprints") using discovery tools developed by Victor and available in this project.

from smbusb.

emersonknapp avatar emersonknapp commented on May 27, 2024

That sounds useful, what "gauge fingerprints" should I look for? Is there a list somewhere that I could consult?

from smbusb.

0r10nV avatar 0r10nV commented on May 27, 2024

There is no collected lists in one place. Usually they distributed in users working directories if they care about saving those "fingerprints" for future references.
Some ICs has autodetect features built-in by chip manufacturers.
You could run "smbusb_scan.exe -w 16" and send me the output for checking with my lists.
It's better to continue in PM not to off-topic here.
orionv76(at)"Google Mail Dot Com"

from smbusb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.