NAND Flash reader utilizando FTDI

0

Estoy tratando de leer datos de un chip Hynix NAND Flash.

He soldado el NAND Flash en una placa de ruptura y lo conecté a mi FT2232H FTDI.

Estoy usando el siguiente software para leer NAND Flash: enlace

Sin embargo, obtengo el siguiente resultado cuando lo ejecuto:

C:\NAND>python DumpFlash.py -i
Name:           NAND 128MiB 3,3V 8-bit
ID:             0xf1
Page size:      0x0
OOB size:       0x0
Page count:     0x0
Size:           0x80
Erase size:     0x0
Options:        1
Address cycle:  4
Manufacturer:   Traceback (most recent call last):
  File "DumpFlash.py", line 93, in <module>
    flash_util.io.DumpInfo()
  File "C:\NAND\FlashDevice.py", line 314, in DumpInfo
    print 'Manufacturer:\t',self.Manufacturer
AttributeError: NandIO instance has no attribute 'Manufacturer'

C:\NAND>

He revisado dos veces mi cableado y creo que todo está correcto.

¿Alguien tendría algún consejo para explicar por qué no se reconoce? ¿He roto el flash NAND?

    
pregunta Thomas

1 respuesta

4

El código que está utilizando, específicamente FlashDevice.py intenta hacer coincidir una variedad de ID de fabricantes.

    if id[0]==0x98:
        self.Manufacturer="Toshiba";
    if id[0]==0xec:
        self.Manufacturer="Samsung";
    if id[0]==0x04:
        self.Manufacturer="Fujitsu";
    if id[0]==0x8f:
        self.Manufacturer="National Semiconductors";
    if id[0]==0x07:
        self.Manufacturer="Renesas";
    if id[0]==0x20:
        self.Manufacturer="ST Micro";
    if id[0]==0xad:
        self.Manufacturer="Hynix";
    if id[0]==0x2c:
        self.Manufacturer="Micron";
    if id[0]==0x01:
        self.Manufacturer="AMD";
    if id[0]==0xc2:
        self.Manufacturer="Macronix";

Es probable que el tuyo no coincida porque se leyó mal o se desconoce, y esto deja el campo indefinido, causando el error que ves. Le sugeriría que intente preceder estos enunciados "if" con un valor predeterminado, es decir:

    self.Manufacturer="Unrecognized";
    if id[0]==0x98:
        self.Manufacturer="Toshiba";

Yendo un paso más allá, podría intentar algo como esto (completamente sin probar):

    self.Manufacturer=hex(id[0])+" is unrecognized";
    if id[0]==0x98:
        self.Manufacturer="Toshiba";

De acuerdo con su hoja de datos, el código para su chip debería ser 0xad , que está en la lista, por lo que es probable que estos cambios no hagan que las cosas funcionen, pero le ayudarán a superarlo. programa particular se bloquea y, por lo tanto, quizás te permita aprender más.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas