| Step | Description | Pseudo Code |
| 1 | If the device has been previously SEALED, UNSEAL it by sending the appropriate keys to Control() (0x00 and 0x01). Write the first 2 bytes of the UNSEAL key using the Control(0x8000) command. Without writing any other bytes to the device, write the second (identical) 2 bytes of the UNSEAL key using the Control(0x8000) command. Note: The remaining steps in this table will use this single-packet method when writing multiple bytes. |
//Two-byte incremental Method wr 0x00 0x00 0x80; wr 0x00 0x00 0x80; //Alternative single byte method wr 0x00 0x00; wr 0x01 0x80; wr 0x00 0x00; wr 0x01 0x80; |
| 2 | Read Current Chem ID. | rd 0x00 0x08 0x00; |
| 3 | Send SET_CFGUPDATE subcommand, Control(0x0013). | wr 0x00 0x13 0x00; |
| 4 | Confirm host should CFGUPDATE wait for 1 second mode by to polling ensureFlags() IT processing registerhas until been bit 4stopped. is set. The | rd 0x06 Flags_register; |
| 5 | Change Chemistry to CHEM_C (chem ID = 3142, 4.4 V). | wr 0x00 0x32 0x00; |
| 6 | Exit CFGUPDATE mode by sending the SOFT_RESET subcommand. | wr 0x00 0x42 0x00; |
| 7 | Confirm cleared. CFGUPDATE (This may takehas up to been 1 second.) exited bySOC polling willFlags() be validregister after 2 until seconds bit 4 is | rd 0x06 Flags_register; |
| 8 | Read Current Chem ID to see if it is updated. | rd 0x00 0x08 0x00; |
| 9 | If the device was previously SEALED, return to SEALED mode by sending the | wr 0x00 0x20 0x00; |
更新不了化学id Iic速度100khz 更新之后读出id 0x0b9b,而且会变