This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ769142: Mass production OTP programming - tools

Part Number: BQ769142
Other Parts Discussed in Thread: BQSTUDIO

Hi, guys! We developed our 13S BMS to the point, where first 500 pcs must go to production.

During the production phase we also need to program parameters via OTP, which we do now manual using bqStudio (Data Memory > Import ...) .

However, we would now like to make it easier for mass production: does TI offers some command line tools or something for BQ mass production programming, so we could make it "one click" programming:

> Checking for the IC presence on I2C

> Writing parameters from file

> Writing current parameters, that are not imported from file (CC Gain, Capacity Gain)

> OTP check

> OTP programming

Best regards,

Gregor MACEK

p.s. There is a bug in bqStudio application (1.3.104): after importing file .gg.csv, Cell 13 Gain and Cell 14 Gain are also changed and must be manually modified back to old values before preforming OTP. Is this fixed already?

  • Hi Gregor,

    We do not have any production tools for programming the OTP. Many users use a microcontroller based solution for production since it is not practical to use BQStudio to program a large volume of devices. 

    One thing that might be helpful regarding BQStudio - you can also import the Calibration parameters. First go to the Window->Preferences menu and select 'Show Advanced Views' and Apply. Now, on the Data Memory screen if you click on Import from File (Advanced) and then click the 'Configure Selection' button, you can also select the Calibration parameters. This box is unchecked by default. 

    Here are the steps I recommend when programming OTP. I plan to update the BQ769x2 Calibration and OTP Programming Guide with this list.

    1. Check if OTP programming is needed by the MCU: read one of the programmed registers to check is OTP programming has already been done.
    2. If OTP is required, read the Battery Status Register to check if SEC1-SEC0 is 01 (in FULLACCESS mode).
    3. If in FULLACCESS mode, enter CONFIG_UPDATE mode, read Battery Status Register to check if the device is in CONFIG_UPDATE mode.
    4. Configure Data Memory registers.
    5. Exit CONFIG_UPDATE mode.
    6. Read the Data Memory registers to verify all parameters were written successfully.
    7. Enter CONFIG_UPDATE mode.
    8. Check if OTP programming is allowed (Battery Status Register -> OTPB is clear).
    9. Read 0x00A0 (OTP_WR_CHECK) to check if OTP programming conditions are ok (it should return 0x80).
    10. If 0x00A0 returns 0x80, send the OTP_WRITE() 0x00A1 command (0x3E = 0xA1, 0x3F = 0x00).
    11. Wait 100ms, Read 0x40 to check if OTP programming succeeded (0x80 indicates success).
    12. Exit CONFIG_UPDATE mode.

    Thanks for the bug report on BQStudio. We will check into this.

    Best regards,

    Matt