cancel
Showing results for 
Search instead for 
Did you mean: 

Problems writing or reading password on Micron MT25QL256ABA NOR serial flash

asuperman15
Associate

Hi All!

Following are the proper codes for read and write the password in Micron MT25QL256ABA 

READ PASSWORD 27h

WRITE PASSWORD 28h

Write Enable is executed before to write password using 28H, I wait for the flash to be ready by reading the FLAG STATUS register, then I read the password to verify it was written properly.

The problem is that I am reading zeros only, and I do not understand why.

Perhaps, a step is missing, or a step sequence is required. Datasheet is not explaining or giving information about this topic. 

As a note, all the operations work as expected. I am able to erase, read/write data, read/write registers, etc, except by the password.

Here is the log: 

=============================================================
========== test_write_read_password ==========
=============================================================
========== Read Device ID
Device Id: 0x1019ba20

READ_SECTOR_PROTECTION_REG: 0x0000ffff
READ_GLOBAL_FREEZE_BIT_REG: 0x00000001
READ_VOLATILE_LOCK_BITS_REG: 0x00000000
READ_NONVOLATILE_LOCK_BITS_REG: 0x000000ff

========== Read Password
Password -> DATA 0: 0x00000000, DATA 1: 0x00000000
pwd0 = 0x00000000 pwd1 = 0x00000000

========== Read All Flash Registers
Control Register : 0x00000001
SPI Clock Baud Rate Register : 0x00000010
CS Delay Setting : 0x00000000
Read Capturing Register : 0x00000000
Operating Protocols Setting Register : 0x00000000
Read Instruction Register : 0x00000003
Write Instruction Register : 0x00007002
Flash Command Setting Register : 0x00008827
Flash Command Control Register : 0x00000000
Flash Command Address Register : 0x00000000
Flash Command Write 0 Register : 0x00000000
Flash Command Write 1 Register : 0x00000000
Flash Command Read 0 Register : 0x00000000
Flash Command Read 1 Register : 0x00000000

========== Write Enable

========== Write Password
Password -> DATA 0: 0xC0FFEE11, DATA1: 0xBABECAFF

========== Read All Flash Registers
Control Register : 0x00000001
SPI Clock Baud Rate Register : 0x00000010
CS Delay Setting : 0x00000000
Read Capturing Register : 0x00000000
Operating Protocols Setting Register : 0x00000000
Read Instruction Register : 0x00000003
Write Instruction Register : 0x00007002
Flash Command Setting Register : 0x00008028
Flash Command Control Register : 0x00000000
Flash Command Address Register : 0x00000000
Flash Command Write 0 Register : 0xc0ffee11
Flash Command Write 1 Register : 0xbabecaff
Flash Command Read 0 Register : 0x00000000
Flash Command Read 1 Register : 0x00000000


Flag Status 0x00000081

========== Read All Flash Registers
Control Register : 0x00000001
SPI Clock Baud Rate Register : 0x00000010
CS Delay Setting : 0x00000000
Read Capturing Register : 0x00000000
Operating Protocols Setting Register : 0x00000000
Read Instruction Register : 0x00000003
Write Instruction Register : 0x00007002
Flash Command Setting Register : 0x00001870
Flash Command Control Register : 0x00000000
Flash Command Address Register : 0x00000000
Flash Command Write 0 Register : 0xc0ffee11
Flash Command Write 1 Register : 0xbabecaff
Flash Command Read 0 Register : 0x00000081
Flash Command Read 1 Register : 0x00000000

========== Read Password
Password -> DATA 0: 0x00000000, DATA 1: 0x00000000

========== Read All Flash Registers
Control Register : 0x00000001
SPI Clock Baud Rate Register : 0x00000010
CS Delay Setting : 0x00000000
Read Capturing Register : 0x00000000
Operating Protocols Setting Register : 0x00000000
Read Instruction Register : 0x00000003
Write Instruction Register : 0x00007002
Flash Command Setting Register : 0x00008827
Flash Command Control Register : 0x00000000
Flash Command Address Register : 0x00000000
Flash Command Write 0 Register : 0xc0ffee11
Flash Command Write 1 Register : 0xbabecaff
Flash Command Read 0 Register : 0x00000000
Flash Command Read 1 Register : 0x00000000

========== Write Enable

========== Write Password
Password -> DATA 0: 0xC000FFEE, DATA1: 0xBABEBABE

========== Read All Flash Registers
Control Register : 0x00000001
SPI Clock Baud Rate Register : 0x00000010
CS Delay Setting : 0x00000000
Read Capturing Register : 0x00000000
Operating Protocols Setting Register : 0x00000000
Read Instruction Register : 0x00000003
Write Instruction Register : 0x00007002
Flash Command Setting Register : 0x00008028
Flash Command Control Register : 0x00000000
Flash Command Address Register : 0x00000000
Flash Command Write 0 Register : 0xc000ffee
Flash Command Write 1 Register : 0xbabebabe
Flash Command Read 0 Register : 0x00000000
Flash Command Read 1 Register : 0x00000000


Flag Status 0x00000081

========== Read All Flash Registers
Control Register : 0x00000001
SPI Clock Baud Rate Register : 0x00000010
CS Delay Setting : 0x00000000
Read Capturing Register : 0x00000000
Operating Protocols Setting Register : 0x00000000
Read Instruction Register : 0x00000003
Write Instruction Register : 0x00007002
Flash Command Setting Register : 0x00001870
Flash Command Control Register : 0x00000000
Flash Command Address Register : 0x00000000
Flash Command Write 0 Register : 0xc000ffee
Flash Command Write 1 Register : 0xbabebabe
Flash Command Read 0 Register : 0x00000081
Flash Command Read 1 Register : 0x00000000

========== Read Password
Password -> DATA 0: 0x00000000, DATA 1: 0x00000000

========== Read All Flash Registers
Control Register : 0x00000001
SPI Clock Baud Rate Register : 0x00000010
CS Delay Setting : 0x00000000
Read Capturing Register : 0x00000000
Operating Protocols Setting Register : 0x00000000
Read Instruction Register : 0x00000003
Write Instruction Register : 0x00007002
Flash Command Setting Register : 0x00008827
Flash Command Control Register : 0x00000000
Flash Command Address Register : 0x00000000
Flash Command Write 0 Register : 0xc000ffee
Flash Command Write 1 Register : 0xbabebabe
Flash Command Read 0 Register : 0x00000000
Flash Command Read 1 Register : 0x00000000

0 REPLIES 0