Author |
Topic |
|
Lookimback
USA
21 Posts |
Posted - 06/24/2015 : 03:00:41
|
I need to know how to make my own device definitions. I know where they go, but how do I determine what the values need to be? I'm looking at the devices.txt file, and at datasheets, but I can't figure out where the info is in the datasheets. I understand what the size, pagesize, and blocksize are, but I can't figure out what is ID1, ID2, ID3, etc? |
Edited by - Lookimback on 06/24/2015 03:46:41
|
|
Reply #1
Lookimback
USA
21 Posts |
Posted - 06/24/2015 : 04:30:20
|
Never mind, I figured it out. It's in the datasheet as status register coding, and the values are under that as device identifier coding. |
|
|
Reply #2
eduardo48
Argentina
152 Posts |
Posted - 06/24/2015 : 16:40:02
|
Hello, I do not understand your explanation, I'm too learning to create my definitions. I find the data in the READ ID page of the datasheet |
|
|
Reply #3
Lookimback
USA
21 Posts |
Posted - 06/25/2015 : 16:47:30
|
Take the NAND chip I needed for example. It's a Hynix HY27US08516A.
Datasheet here www.techtoys.com.hk/Displays/TY320T240320/HY27US08561A.pdf
This would be the correct device definition. Name="HY27US08561A",MFG="Hynix",ID1="adh",ID2="75h",size="2100000h",PageSize="210h",BlockSize="20h"
How I came up with that is as follows:
ID1 and ID2 came from the datasheet under device register coding. ID1 is the JEDEC manufacturer code in hex. (In case it's not in the datasheet, you can find it here www.softnology.biz/pdf/JEP106AL.pdf ID2 is the device id in hex. Some devices may have more identifier cycles than this one.
Example image 1 (fix link by replacing h**p with http) h**p://s16.postimg.org/d8p6llxet/Screenshot_31.png
Size is the total size of the device in hex. PageSize is the size of each page in hex. BlockSize is the size of each block in hex.
PageSize for this device is 512 + 16. That's 528. Convert to hexadecimal and you get 210. So PageSize = 210h. The "h" just signifies that it's hex.
BlockSize for this device is 32 pages. So, 32 converted to hex = 20. So BlockSize = 20h.
Size = PageSize * BlockSize * number of blocks. This device has 2048 blocks. So 528 * 32 * 2048 = 34,603,048. Convert that to hex and you get 2100000. So Size = 2100000h.
Online decimal to hexadecimal converter. www.binaryhexconverter.com/decimal-to-hex-converter
Example image 2 h**p://s16.postimg.org/791fhycmd/Screenshot_32.png
|
Edited by - Lookimback on 06/25/2015 17:52:40 |
|
|
Reply #4
eduardo48
Argentina
152 Posts |
Posted - 06/25/2015 : 18:44:47
|
I built it just as You, your datasheet in Table 15. Table read id. I take data (read id data table) I use nand 16GB, at the moment I do not get good results. K9GAG08U0E Name="K9GAG08U0E",MFG="Samsung",ID1="ech",ID2="d5h",ID3="84h",ID4="72h",ID5="50h",ID6="42",size="88a7d800h",PageSize="21b4h",BlockSize="80h" |
|
|
Reply #5
Lookimback
USA
21 Posts |
Posted - 06/25/2015 : 19:07:20
|
Change ID6 to 42h
|
Edited by - Lookimback on 06/25/2015 19:16:04 |
|
|
Reply #6
eduardo48
Argentina
152 Posts |
Posted - 06/26/2015 : 05:11:01
|
Thank my friend for his response, if he was that way, I see so many tests, not put the h. I think that the programmer does not work with these memories. Best regards. |
|
|
Reply #7
Lookimback
USA
21 Posts |
Posted - 06/26/2015 : 18:30:07
|
Is it a new IC? Could it be defective if it's not new? Also, does the ID check work? |
Edited by - Lookimback on 06/26/2015 18:32:28 |
|
|
Reply #8
eduardo48
Argentina
152 Posts |
Posted - 06/26/2015 : 19:20:55
|
if it works the identity check, three new nand, Samsung supplier, many sectors 0, I can not be blank ff. I write file, then verify data Compare Failed address. I buy in and future another supplier for testing |
|
|
Reply #9
Lookimback
USA
21 Posts |
Posted - 06/27/2015 : 07:15:28
|
Are you relying on just the USB to power the programmer? Maybe you need the power adapter because the IC is 16gb. |
|
|
Reply #10
eduardo48
Argentina
152 Posts |
Posted - 06/27/2015 : 09:24:40
|
It is possible, I will tested with external source, will comment results. |
|
|
Reply #11
eduardo48
Argentina
152 Posts |
Posted - 06/28/2015 : 09:21:24
|
With the same external source. I copy. -detect K9GAG08U0E -erase Erase starts... Erase time 00:00:01 (.649) -blkchk Flash is not blank at address 19362600 ,target 00 C:/Users/Eduardo/Desktop/NAND/nueva grabada.bin Loaded C:/Users/Eduardo/Desktop/NAND/nueva grabada.bin Loaded -program Program Starts... Program time 00:06:59 (.766) -verify Compare data Failed address 136B24C ,target 3E,PC memory 1E.
catches my attention, the little time erasing much smaller than a nand 4g (I know that erasing is in blocks) in blank check is the address 19362600 failed, I charge a backup, I write this data, 136B24C fails to verify, target 3E, PC memory 1E ,,error in another direction I do not know the reason could be a bug in the software. MCUmall should checker big flash 16gb. I comment that with 4GB no problem
|
|
|
Reply #12
Lookimback
USA
21 Posts |
Posted - 06/28/2015 : 18:34:19
|
I'm at a loss on this. I've checked and rechecked the definition, I can't find anything wrong. |
|
|
Reply #13
eduardo48
Argentina
152 Posts |
Posted - 06/28/2015 : 18:51:00
|
Thank you for your interest, do not worry, when I have some data it publishes |
|
|
Reply #14
Lookimback
USA
21 Posts |
Posted - 06/28/2015 : 18:58:47
|
Try changing the speed. I know some chips won't work at speed 10. |
|
|
Reply #15
Lookimback
USA
21 Posts |
Posted - 06/29/2015 : 11:14:41
|
I read in a different thread that there are problems with flashing over 8Gb. |
|
|
Reply #16
eduardo48
Argentina
152 Posts |
Posted - 06/29/2015 : 16:33:16
|
I tried with less speed, negative. The problem is also that I can not blank memory.I see the software is very basic not have options I see in datasheet that (ID are built with binary numbers) that are below ID READ OPERATION not understand some parameters, I built ID with different values also with negative result set. I will look for or telling me about the nand 8 gb.
|
|
|
Reply #17
eduardo48
Argentina
152 Posts |
|
Reply #18
Lookimback
USA
21 Posts |
Posted - 06/29/2015 : 18:54:28
|
Yeah, I noticed they said it would work, but a few posts before that they said something about issues with flashing chips over 8Gb. |
|
|
Reply #19
ZLM
2945 Posts |
Posted - 07/03/2015 : 14:42:58
|
No. no problem at all. As long as you have enough space on your hard drive. |
|
|
Reply #20
eduardo48
Argentina
152 Posts |
Posted - 07/05/2015 : 18:42:29
|
if 160 gb available,
if 160 gb free I am waiting for new nand
|
|
|
Reply #21
Lookimback
USA
21 Posts |
Posted - 07/05/2015 : 20:30:02
|
quote: Originally posted by ZLM
No. no problem at all. As long as you have enough space on your hard drive.
Very good to know. |
|
|
Reply #22
long123
China
32 Posts |
Posted - 07/14/2015 : 00:14:08
|
I think that the programmer does not work with these memories. |
|
|
Reply #23
sammual777b
USA
3 Posts |
Posted - 09/28/2015 : 10:02:49
|
This thread covers many topics.
Firstly, the device definition. This definition format is indeed correct (id6 was initially incorrect). The necessary information can be extracted from the datasheet PDFs if you can find them. However many of the larger chips also require a "CE" definition which is the number of die per device. The ID# values are the device codes. You will need to search the PDF for them; different manufacturers call them different things. The size parameter is in byes (hex), the pagesize is in bytes, the blocksize is in pages (I dont know why), and CE is the number of luns. This chip has 2076 blocks per lun, 128 pages per block, and 8192+436bytes per page.
Name="K9GAG08U0E",MFG="Samsung",ID1="ech",ID2="d5h",ID3="84h",ID4="72h",ID5="50h",ID6="42h",size="88a7d800h",PageSize="21b4h",BlockSize="80h",CE="1"
Secondly, the blank check. You can pretty much ignore the blank checking and the chip verify options in GQBlaster. The error rate on nand devices is so high that eventually you will encounter a bad block or bad bit that hasn't been written correctly. And that is what ECC is for. It is difficult (but not impossible) to verify the write. Open another forum post if you want details.
And thirdly, the large chip write: This has been corrected in the latest (v1.01) software update. Chips larger than 32gbit were incorrectly written previously even if they were correctly defined. The new version corrects the read/write issues and adds better detection of the chip id's.
M.
|
|
|
Reply #24
GQ5XSupport
104 Posts |
Posted - 09/29/2015 : 07:15:08
|
For large chip, it is always better to use auto detect than manual def. New version also detect the number of CE pins. |
|
|
Reply #25
ecking1967
USA
3 Posts |
Posted - 09/29/2015 : 08:57:28
|
quote: Originally posted by eduardo48
if 160 gb available,
The K9GAG08U0E has a density of 16gigbits but this must be converted to bytes,so using google unit converter, the K9GAG08U0E has a 2GB storage capacity. so 160gb is more than enough space
if 160 gb free I am waiting for new nand
|
|
|
Reply #26
eduardo48
Argentina
152 Posts |
Posted - 10/05/2015 : 18:58:25
|
Hello, you considers necessary to place this nand, the number of "CE" in this version 1.02 of the software, use the ID6? buy several of these nand,all have bad sectors , I can not clone, because can not blank. |
|
|
Reply #27
ecking1967
USA
3 Posts |
Posted - 10/06/2015 : 06:09:49
|
I think your problem is your "size" number. Not sure how you got this number size= 88a7d800h
try this size= 81C00000
this chip size is 2186 MBytes |
|
|
Reply #28
eduardo48
Argentina
152 Posts |
Posted - 10/07/2015 : 19:48:52
|
according to datasheet. 1 block = 128 pages 1 page = 8628 bytes 1 block = 1104384 bytes total 1104383 bytes * 2076 blocks = 88a7d800h. Your calculation does not take account the reserve 436 bytes. I do not know this. I see problems with larger than 1 GB NAND, has bad sectors, they can not be blanked. My problem is that reading and saving a nand and clone in a new nand, data can go bad sectors. The software does not recognize the bad sectors
|
|
|
Reply #29
ecking1967
USA
3 Posts |
Posted - 10/08/2015 : 06:17:23
|
18,341,609,472= 88a7d800h the size is wrong, you are exceeding the memory size which is 2186 Megabyte
17,491 MegaBit = 2186.375 Megabyte = size 88a hex
see page 9 of datasheet
one step at a time, you will get incorrect read if your setting is wrong |
|
|
Reply #30
eduardo48
Argentina
152 Posts |
Posted - 10/09/2015 : 18:05:46
|
This is created by MCUMALL "K9GAG08U0E",MFG="Samsung",ID1="ech",ID2="d5h",ID3="84h",ID4="72h",ID5="50",size="86d00000h",PageSize="21b4h",BlockSize="80h". I will check my calculations to see where this error |
|
|
Reply #31
LexHandy
Canada
2 Posts |
Posted - 05/31/2016 : 22:10:25
|
I agree, large flash chips have bad sectors by design and mechanism to mark them as unusable. Before using them as storage, you need to scan and partition, much like you would a new hard drive. At least it is my understanding. So you guys need to take this into account and see if the hardware/algorithms of the programmer, you're trying to use, supports this idea. This is normally done in the manufacturing of USB keys by a special piece of software, designed for a particular controller, which handles the flash chip. |
SIG nature |
|
|
Reply #32
eduardo48
Argentina
152 Posts |
Posted - 06/05/2016 : 15:24:20
|
Programmer specifications tmn5000.This is necessary in GQ5X Nand Flash Memories: TNM5000 has an additional Nand+ software , specially designed for Nand flash memories. Nand+ Software has one of the most complete list of Nand flash Memories with algorithms for correction of bad data in MLC Nand Flashes. TNM5000 is one of the fastest Nand Programmers in the world with Read & Write Speed up to 8 MegaByte per Second. All Nand Flashes can be automatically detected by software in case of unreadable or remarked device names. |
|
|
Reply #33
GQ5XSupport
104 Posts |
Posted - 06/05/2016 : 22:16:18
|
I have collected TWO files from a user and this is enough for me to get started to add bad sector analyze support. I plan to add skip bad sector feature and that should be quite easy to do. Normally a bad sector will read all 00,s. Not just ECC error. |
|
|
Reply #34
anniel
2572 Posts |
Posted - 06/06/2016 : 02:32:32
|
Isn't the tmn5000 an overpriced Chinese rig? GQ5X is 12 Mbytes/second. |
|
|
Reply #35
eduardo48
Argentina
152 Posts |
Posted - 06/06/2016 : 16:07:27
|
If the result is good it is not overpriced, but wait, MCUmall is working to modify the software |
|
|
Reply #36
anniel
2572 Posts |
Posted - 06/07/2016 : 03:25:12
|
MCUmall as an excellent customer support, something lacking with Chinese clones. |
|
|
Reply #37
GQ5XSupport
104 Posts |
Posted - 06/10/2016 : 10:18:16
|
I am back on track and will add features of NAND flash support. The fist feature is to add bad block analyze and ECC calculation. This is required by customer who had clear requirement and provide sample files. (TV repair). After I am 80% complete I need to collect more sample files to test. |
|
|
Reply #38
eduardo48
Argentina
152 Posts |
Posted - 06/13/2016 : 06:59:42
|
Hello as I can collaborate, the problem I see is that the nand to be cloned, has bad sectors just as the new nand, but in different places, my opinion is possible to jump the bad sectors. |
|
|
Reply #39
GQ5XSupport
104 Posts |
Posted - 06/14/2016 : 09:06:36
|
Please contact activation@mcumall.com and send 1. 4 files of your read of source chip. 2. 1 file of your target chip before erase (If you already erased ignore this) 3. Erase the target chip read one and email the file. Please tell which chip is this. I will try to CREATE a file for you to program to the target chip (same chip on step 3). I am very close to have this feature done but need more people to test.
Due to the different algorithm of ECC, what I use is to try to "correct" bits in source file by combine multiple reads but there is no guarantee it be correct. But I will print out all the bits it is trying to fix and you might need third party tool to Fix it. Also the bad block of source chip and target chip are analyzed and trying to avoid using it with skip method. |
|
|
Reply #40
eduardo48
Argentina
152 Posts |
Posted - 06/16/2016 : 05:56:21
|
In a few days I will send, not if I can blank the original, because it is extracted from a new board, if I can not clone, lose the new board. If I can clone, sending the original erased |
|
|
Reply #41
marquitos550b
Argentina
14 Posts |
|
Reply #42
GQ5XSupport
104 Posts |
Posted - 06/17/2016 : 09:48:27
|
quote: Originally posted by eduardo48
In a few days I will send, not if I can blank the original, because it is extracted from a new board, if I can not clone, lose the new board. If I can clone, sending the original erased
Make sure you use the right definition to read the file. (important to be able to clone). I have seen people with Toshiba chip read abd program back and failed. The reason for that is the chip definition is wrong. Most important is the page size and total size. If you cannot find it in the definition file select the one that matches the page size and total size. |
|
|
Reply #43
GQ5XSupport
104 Posts |
Posted - 06/17/2016 : 09:56:41
|
quote: Originally posted by marquitos550b
Hello, in the following links ther is a lot of information on EEC and bad-block correction. Those aplication notes are of really expensive programmers but why not give it a try?. May be we can learn a bit. Excuse me for my bad english. Regards Marcos.
h**p://www.elnec.com/sw/an_programming_nand_flash_using_elnec_programmers.pdf h**p://www.xeltek.com/software/nandflash/nand_flash_guide.pdf h**p://www.dataio.com/Search-Results?q=nand
If your purpose is to program the chip and use it then you can implement the ECC yourself. If your purpose is to clone a chip, you will need to know which algorithm the original chip uses. So far there are at least three major algorithm used in the industry for ECC, also giving the size of the sector and the OOB size, you need to know EXACT algorithm to be ale to fix the error bit.
Actually if your read has one bit error is not a disaster in most case. If you program the wrong bit back in most case the target system can fix itself as long there is no additional bit error in the same sector happens.
What is more important is the bad sector which GQ5X is going to do a lot about it in the next release. I am waiting test files from user to prove this theory works. 1. It analyze the bad sector of the source chip. 2. It analyze the bad sector of the target chip. 3. There will be graphic display of the bad sector for each analyzed.The address can be display by click the bad sector. 4. GQ%X can generate a new file for target chip (not exact copy of the source chip). It shuffles the file based on the bad sector of source and target. Item 4 might not work automatically at leas I know for Linux you need to segment the chip and within segment you can "skip" bad sector. We will try this first on TV chip to see if this method will work.
|
|
|
Reply #44
GQ5XSupport
104 Posts |
Posted - 06/17/2016 : 09:58:13
|
One more thing to note, in next release, the verify will print the the error bit found and will still pass the virify but print out the error address. |
|
|
Reply #45
eduardo48
Argentina
152 Posts |
Posted - 06/18/2016 : 09:03:49
|
Send three files a activation@mcumall.com , generated with this definition
Name="K9F1G08UOD",MFG="Samsung",ID1="ech",ID2="F1h",ID3="00h",ID4="95h",ID5="40h",size="8400000h",PageSize="840h",BlockSize="40h" |
|
|
Reply #46
GQ5XSupport
104 Posts |
Posted - 06/18/2016 : 20:06:11
|
We have one success to copy one chip for TV. The algorithm is to bypass the bad block both for target and source chip.
After the second success I will release the software and make a video how to "copy" a NAND chip, especially for TV repair. |
|
|
Reply #47
GQ5XSupport
104 Posts |
Posted - 06/19/2016 : 17:40:30
|
We have second success on TV chip. Not it is time to release 1.04. |
|
|
Reply #48
eduardo48
Argentina
152 Posts |
Posted - 07/25/2016 : 05:42:53
|
With version 1.04, I can not, verify correct with the K9GAG08U0E nand . If the K9F1G08UOD nand is verify correct. According to the explanatory video |
|
|
Reply #49
ZLM
2945 Posts |
|
|
Topic |
|