How to burn AS3722 PMU OTP in-system?

Greetings!

Tegra K1 uses AMS AS3722 as its Power Management Unit (PMU).
AS3722 has internal One-Time Programmable memory (OTP) to configure power sequencing etc.
Does anyone know how to burn that OTP in-system if I have an unprogrammed AS3722 on board and a microcontroller that interfaces AS3722 over I2C?

Hi Cioma

Please contact AMS as this is not a pulbic information that should be disclosed by AMS.

There are several pre-defined OTPs list for TK1 that you may check if it fits your needs to know from AMS.

Thanks.

Many thanks for the feedback.

I’ve done all that already but neither of the preprogrammed AS3722 fits our design needs so by default we’ll be setting it up with on-board microcontroller on every power-on.

But it would be great to be able to burn OTP in system during production therefore I was wondering if anyone has personal experience with it. Well, I guess I’ll keep poking AMS :)

Just a small update on this.

AMS hasn’t disclosed their OTP programming algorithm to us which is understandable as otherwise they would need to provide customer support on that.

Setting up AS3722 with blank OTP over I2C works like a charm. Great thing is that what they call “fuse” registers are actually power sequencer registers which you can program and then reset the PMU over I2C and whatever sequence you’ve programmed gets executed. Voila! No need for OTP configuration at all as long as you have some kind of a housekeeping microcontroller that can program AS3722.

There is a little gotcha: if you use AS3722 with TMP451 thermal monitor (as on Jetson TK1) and TMP451 THERM# output is connected to AS3722 THERM input directly then AS3722 will be constantly in reset as it would see an overtemperature event. The problem is that it seems that in this mode PMU’s I2C interface is not operational so one can’t configure the active level of PMU’s THERM input to be low (like NVIDIA’s OTP configuration does). Therefore it’s necessary to invert TMP451 THERM# output before connecting it to AS3722 THERM input.

And you also need to provide stable voltage levels on AS3722 ONKEY, LID and AC_OK inputs (based on your application). In out case ONKEY is constantly high, LID and AC_OK are constantly low (grounded). This gives us full control over the PMU using I2C.

Hi there,

I have read your post about OTP of AS3722. We are facing exact same problem. Our situation is that we have developed our custom board based on tegra k1 and adapted AS3722 as a main pmu. Now we assembled the board and few pcs of samples ready on hand. AS3722 is exact same model with Nvidia Jetson Tegra K1 without OTP. As per your suggestion, we tried to connect with the AS3722 via I2C from Ardiuno Nano and UNO (we tried to communicate at 100kHz and 400kHz connection speed). VDD_GPIO_lv = 1.8V VSUP_GPIO = 3.7V Therm is grounded, AC_ok is grounded, LID is grounded, Onkey = High and Reset = High (High = 2.5V) There is no respond and occurring communication at all. Would you please help us to solve this issue since you already managed it?

I hope that hearing from you soon on.

Thanks,

TD

PM Sent From: http://devtalk.nvidia.com/default/topic/808021/how-to-burn-as3722-pmu-otp-in-system-/

Ofcourse AS3722 is blank and brand new one.