Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invalid Cell Temperatures (LTC6813-1 daisy-chain) #60

Open
niktwo17 opened this issue Sep 16, 2024 · 2 comments
Open

Invalid Cell Temperatures (LTC6813-1 daisy-chain) #60

niktwo17 opened this issue Sep 16, 2024 · 2 comments

Comments

@niktwo17
Copy link

Hi foxBMS-Team,

I have an issue with reading the cell temperatures from the slave (configuration: 6x LTC6813-1).

  • I receive correct cell voltages and other data for all 6 modules of the daisy chain
  • However, (correct) cell temperatures are only received for the first 3 modules. Module 4 and 5 show values of -128 (via CAN) or -17219 via debugger from ltcData->cellTemperature, module 6 shows 0 consistently
    image
  • The issue is NOT existent when I manually disconnect the daisy-chain and treat module 4-6 as modules 1-3 separately, then I get correct temperature readings
  • The RDCOMM gives me 0b0111 (Slave Ack) for module 1 and 0b1111 (Slave Not Ack) for modules 2-6.
  • I have tested the issue with unmodified releases 1.6.0 and 1.7.0
    My assumption based on this would be some kind of timing-inconsistency for the daisy-chain based communication with the slaves, have you encountered a similar problem or can give some further recommendations?

Thank you,
Niklas

@foxBMS
Copy link
Owner

foxBMS commented Sep 26, 2024

Dear @niktwo17,

thanks for the report. We will have a loot at and come back once we have more information.

Best regards,
The foxBMS Team

@niktwo17
Copy link
Author

niktwo17 commented Nov 4, 2024

Hi @foxBMS, I have found the solution: The problem lies in the way the daisy-chain is set up hardware-wise:
We are using capacitors, not transformers to couple our LTC6813 (datasheet p.45). This does not affect foxBMS directly, as transformers are used, but might still be interesting to consider for other applications:

  • The issue is that these capacitors (10 nF, as per datasheet) need to be pre-charged for the signal transmission to be successful.
  • This is achieved by regularly sending transmission messages; 1 dummy frame is enough.
  • If there is a gap of more than 5 ms in between transmissions, the respective capacitor starts to discharge and communications fail
  • The attached image illustrates the problem: Channel 0, 2, 3 are ISO-H lines of modules 1, 3, 4 in the daisy-chain. After 5ms the voltage starts drop on the ISO-H lines. When the next message is sent after the delay of 10 ms a few messages are not relayed on the daisy-chain until all the capacitor voltage level has increased again.
  • Fix: Decreasing the LTC_TRANSMISSION_TIMEOUT to 5ms or less

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants