Write verification operation failed flash memory Adesto AT45DB641E

Here you can ask technical questions about REVELPROG-IS and device/memory programming.
MazingerZ
Posts: 20
Joined: Fri Apr 08, 2022 8:28 pm

Write verification operation failed flash memory Adesto AT45DB641E

Postby MazingerZ » Fri Apr 08, 2022 8:58 pm

Hi, I have a problem with a flash memory Adesto AT45DB641E.
I can erase and read it, but when I want to write it, appear "Verification operation failed", I bought the file and memory flash and they are different. I need copy file into memory writing it.
I have tried different voltages 1.8V to 3.6V datasheet this memory voltages, and Clock frecuency (SCK) all: 100%, 50%, 10% and 2%.
I don`t have the flash memory in circuit.

Please need help, thanks. :oops:

ArT
Posts: 1495
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 51 times
Been thanked: 160 times

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby ArT » Mon Apr 11, 2022 8:13 am

AT45DBxx series has viariable page size which can be configured before purchase (512 or 528 bytes). Please let me know which variant of memory do you have and what is exactly your file size in bytes (or address range) and photo of your connections. This device works on 3.3V and should work with SCK=100% in settings. Additional question: is verification error is always at the same address (which one?) or randomly?

MazingerZ
Posts: 20
Joined: Fri Apr 08, 2022 8:28 pm

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby MazingerZ » Wed Apr 13, 2022 12:39 pm

Hello art,
Thank you for your attention, it turns out that I bought a SOC8 200-209mil SOCKET adapter to adapt it to the ZIF zocal of the Programmer REVELPROG IS, and I no longer have a verification failure.
The software that use is revelprog is v1.85.

The following problem is presented:
The flash memory is an alarm system, which I want to read, to program the content in another flash memory, as I said in the previous comment, when reading the flash memory, I modify only a serial number to program the other flash memory.
The fact is that I can read the flash memory and program in the other flash memory, but when I put the flash memory programmed in the alarm system, it can not make the alarm perform the boot correctly.
Can I not read the flash memory correctly?
Flash memory is the same Adesto AT45DB641E.

Tell me what data I can contribute and you provide them, thank you very much.

ArT
Posts: 1495
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 51 times
Been thanked: 160 times

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby ArT » Wed Apr 13, 2022 12:48 pm

Serial number may be stored also in uC, it may working like white list and it's checking if s/n in flash in on white list, so other s/n may not work.

How about when you read AT45DB641E, do NOT change anything, write it to factory new chip - does it work (it should)?
How many bytes does it read? (we will see if it's 528byte page or 512bytes page configuration)

If it's not working, issue may be in different place. This device has also 128byte OTP security register where also s/n can be stored:
The device contains a specialized Security Register that can be used for purposes such as unique device serialization or
locked key storage. The register is comprised of a total of 128 bytes that is divided into two portions. The first 64 bytes
(byte locations 0 through 63) of the Security Register are allocated as a One-Time Programmable space. Once these 
64 bytes have been programmed, they cannot be erased or reprogrammed. The remaining 64 bytes of the register (byte
locations 64 through 127) are factory programmed by Adesto and will contain a unique value for each device. The factory
programmed data is fixed and cannot be changed.

First 64 bytes of OTP you can programm using Custom Script Tool. You can also read it from original memory. Second 64 bytes are programmed in factory (unique ID) - it can not be changed. If main uC is using this data as a authentication then device will not work with different flash.

MazingerZ
Posts: 20
Joined: Fri Apr 08, 2022 8:28 pm

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby MazingerZ » Wed Apr 13, 2022 3:08 pm

I put you in situation:
I have 2 alarm systems:
1) ALARM 1: normal flash memory alarm system.
2) ALARM 2: flash memory alarm system with a lock so I need to write it down.

I have tried changing the flash memory from ALARM 1 to ALARM 2, with which ALARM 2 works perfectly, yes, with the serial number of ALARM 1 (correct alarm startup).

Then I have read the flash memory of ALARM 1, and I have written the data in the flash memory of ALARM 2, without changing any data, with which the flash memory also works (correct alarm start). So, in one of the hexadecimal parameters, I see the serial number (since it's hexadecimal), and when I modify it, that's when I write it to the flash memory with a lock, so that it is free and also with the correct serial number, but the alarm does not start.

MazingerZ
Posts: 20
Joined: Fri Apr 08, 2022 8:28 pm

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby MazingerZ » Wed Apr 13, 2022 3:35 pm

It makes sense that the microcontroller has a white list of serial numbers.
The microcontroller is STM32F437.
I have managed to access it with linux, but I don't know the commands to read it and make changes. Can you help me with the microcontroller?

Thank you!

MazingerZ
Posts: 20
Joined: Fri Apr 08, 2022 8:28 pm

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby MazingerZ » Wed Apr 13, 2022 4:00 pm

I have just changed to another serial number of another normal alarm and it does not start with that serial number either, that is, I think I am not writing the serial number correctly or the flash memory has some other parameter to modify.

MazingerZ
Posts: 20
Joined: Fri Apr 08, 2022 8:28 pm

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby MazingerZ » Wed Apr 13, 2022 4:15 pm

ArT wrote:Serial number may be stored also in uC, it may working like white list and it's checking if s/n in flash in on white list, so other s/n may not work.

How about when you read AT45DB641E, do NOT change anything, write it to factory new chip - does it work (it should)?
How many bytes does it read? (we will see if it's 528byte page or 512bytes page configuration)

If it's not working, issue may be in different place. This device has also 128byte OTP security register where also s/n can be stored:
The device contains a specialized Security Register that can be used for purposes such as unique device serialization or
locked key storage. The register is comprised of a total of 128 bytes that is divided into two portions. The first 64 bytes
(byte locations 0 through 63) of the Security Register are allocated as a One-Time Programmable space. Once these 
64 bytes have been programmed, they cannot be erased or reprogrammed. The remaining 64 bytes of the register (byte
locations 64 through 127) are factory programmed by Adesto and will contain a unique value for each device. The factory
programmed data is fixed and cannot be changed.

First 64 bytes of OTP you can programm using Custom Script Tool. You can also read it from original memory. Second 64 bytes are programmed in factory (unique ID) - it can not be changed. If main uC is using this data as a authentication then device will not work with different flash.


Attached image where the serial number is located in the flash memory.
If I don't modify it, the fla alarm starts, that is, the flash memory changed to another alarm, it works without modifying the serial number.
But when I modify it, it doesn't start.
Attachments
NUMERO SERIE.png
NUMERO SERIE.png (103.43 KiB) Viewed 1811 times

ArT
Posts: 1495
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 51 times
Been thanked: 160 times

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby ArT » Thu Apr 14, 2022 8:53 am

For STM32xx can use ST-LINK programmer from ST to communicate with it, but probably uC will be read protected.

So if you write AT45DB641 without changing buffer - it's working. So it means programming procedure & verification is fine and issue has to be in S/N modification.

You need to read security register on both original chips to check if there is additional information stored in OTP area user bytes and if there are differences between these 2 devices. You can read it with custom script tool: viewtopic.php?f=32&t=280
I can help you prepare proper scripts - if you will need such help please let me know.

ArT
Posts: 1495
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 51 times
Been thanked: 160 times

Re: Write verification operation failed flash memory Adesto AT45DB641E

Postby ArT » Thu Apr 14, 2022 8:54 am

For STM32xx can use ST-LINK programmer from ST to communicate with it, but probably uC will be read protected.

Just to confirm - when you read chip, erase it, and write back the same information - is it working, right? So it means programming procedure & verification is fine and issue has to be in S/N modification.

You need to read security register on both original chips to check if there is additional information stored in OTP area user bytes and if there are differences between these 2 devices. You can read it with custom script tool: viewtopic.php?f=32&t=280
I can help you prepare proper scripts - if you will need such help please let me know.


Return to “Technical Support”

Who is online

Users browsing this forum: No registered users and 2 guests