Jetson TX1 Charger Control Design Guide

Dear All,

I’m developing a carrier board for JTX1 which should be equipped with a LiPo battery and internal charger.

I’ve tried to fine any info in TRM, OEM_Product_DesignGuide, but failed.
Schematic contains some pins, but there is no descriptions, scenarios, states for them. No any relations with Ubuntu…

Please let me know where I can find a description and guideline for making a charge controller compatible with JTX1?
What minimal required signals such controller should have?
What are working scenarios?

Thank you,
Alex

JTX1 doesn’t include charging function. So to implement charging on JTX1, a board with charging management IC on is needed, and it can use header J27 for charger control.

Hi Trumany,

Thanks for your response.

I know it indeed. The charger controller is not a problem for us, the problem is in absence of any description of the charger control connector J27.

For example:

  • Charger IC’s are using SMBus or PMBus instead of I2C. Is it possible to use I2C_PM_CLK/I2C_PM_DAT as an SMBus?
  • What is the minimum number of signals? Can we skip LOW_BAT signal? (Or controller provides this info in register, but not as a signal)
  • What DT records are related to this functions?

Please advise.

Thank you,
Alex

NV does not have reference platform nor software implementation in L4T BSP. You are free to select proper components and implement your software.

Here are some pins’ description:

CHARGER_PRSNT# - Active low indication that the AC power is present on the charger IC
CHARGING# - Interrupt from the charger IC to the module, if charger has output interrupt pin.
BATLOW# - Active Low Interrupt from the fuel gauge to indicate that the battery voltage is low.
BATTERY_OC# - Interrupt form power monitor to the module, If battery has output over-current event.

SMBus is based on I2C PHY, it might work to use I2C as SMBus, but not verified.

LOW_BAT could be skipped.

Hi Trumany,

I appreciate your honest answer.

As far I know SMBus and I2C physically close, but different.
https://www.google.lu/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwis7eff7YnQAhVBWxoKHSNdC-kQFggcMAA&url=http%3A%2F%2Fwww.ti.com%2Flit%2Fan%2Fsloa132%2Fsloa132.pdf&usg=AFQjCNFkjFrUSDok1ZGDpl2IXXdfDuHwZg

TI mentioned that I2C devices can work in particular cases on the SMBus, but nothing abou SMBus device on I2C host…

It seems we should not only write a special driver to replace I2C one in the kernel for chosen I2C channel, but also design a bus level shifters…

Could you tell me why I2C was used instead of real SMBus?

Thank you and best regards,
Alex

I have no much experience of SMBus, but do know it is almost same with I2C on PHY, and as you can see in the doc you post, no need to add level shifter because the pull-up voltage could be set to same. I2C is more popular on mobile/embedded related platform, SMBus is rarely used in those fields as far as i know.

In general you are right, but SMBus uses different signal limits and thresholds. It means, it can work with I2C in some particular cases but not in general.

The smart battery standard uses SMBus. TI (most popular) charger controller too. Intersil controller - I2C…

Ok. We will develop it anyway. Every time we hope to save time using your advice, but…

Best regards,
Alex