This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DLP4500: Flash memory M29W128GL70 is EOL and look for replacement

Part Number: DLP4500
Other Parts Discussed in Thread: DLPC350

Hi, Sanjeev,

I need your help again! 

Currently we receive the infor about Micron flash M29W128GL70 is EOL. this part number is from TI reference design. Micron recommend MT28EW128ABA. So we had got the sample and solder the MT28EW128ABA in the board. It seems i can detect the 128 flash/ erase/program in Jtag program SW. But after press verify, it show alarm dialogue about "data mismatch  in address 0x00000000". it means data is not write properly and I can not boot C350.

So could you help provide us which brand and which part number flash can replace M29W128GL70 which is still in active production or which modification need to be done to match up MT28EW128ABA?

looking forward for your reply, it is urgently in our production team, thanks again!

Best Regards!

Eric

  • Eric,

    You must edit the FlashDeviceParameters.txt file to match the sector layout of MT28EW128ABA.

    We have updated the same in the Jtag flash tool, you can replace this file, then after the warning message you can select the sectors erase and program.

    /cfs-file/__key/communityserver-discussions-components-files/94/5327.4135.FlashDeviceParameters.txt

    Regards,

    Sanjeev

  • Hi, Sanjeev,

    Thanks a lot for your prompt reply! I just notice I use  the visitor userID to send you question!:)

    I had download your link flash.txt and paste in JATAG sw exe folder, it can program and verify normally.  I use the V3.1 version PROM.

    But after i boot up C350 and use 4500GUI(V3.1 June 14,2017) and copy the same flash.txt to GUI .exe folder to upload flash image with USB, it can program, but show the checksum error at last step.

    What ever image size i select to burn, it always shows check sum error, the expected size is varied for different images, but the received size is always  "143007b4". 

    Could you help check this issue again? Maybe the GUI sw also need some additional setting or I missing something? 

    Best Regards!

    Eric

  • Eric,

    There is a bug in the LightCrafter 4500 GUI code that is prevent programming of the flash.  

    You can make below changes in the GUI source code and you should be able to program use it -

    File dlpc350_usb.c

    int DLPC350_USB_Open()
    {
        // Open the device using the VID, PID,
        struct hid_device_info *hid_info;
        hid_info = hid_enumerate(MY_VID, MY_PID);
        if(hid_info == NULL)
        {
            USBConnected = 0;
            return -1;
        }
    
        DeviceHandle = NULL;
    
        if(0 == hid_info->interface_number)
        {
            DeviceHandle = hid_open_path(hid_info->path);
        }
        else
        {
            struct hid_device_info *hid_next_info = hid_info->next;
    
            if(hid_next_info != NULL)
            {
                DeviceHandle = hid_open_path(hid_next_info->path);
            }
        }
    
        if(DeviceHandle == NULL)
        {
            USBConnected = 0;
            return -1;
        }
    
        USBConnected = 1;
    
        return 0;
    }

    And then comment below function in the mainwindow.cpp file

    void MainWindow::on_pushButton_FWBuildNewFrmwImage_clicked()
    {
    ...
    ...
        for(i=startSector; i <= lastSectorToErase; i++)
        {
            if(isCacheFileExist && pSecMatchList[i] == 0x00)
            {
                continue; //skip erasing the sector
            }
            else
            {
                ui->label_FWUploadProgressBar->setText("Erasing sector @ 0x" + QString("%1").arg((FLASH_BASE_ADDRESS+g_FlashDevice.SectorArr[i]),8,16,QChar('0')).toUpper());
                DLPC350_SetFlashAddr(g_FlashDevice.SectorArr[i]);
                DLPC350_FlashSectorErase();
                //DLPC350_WaitForFlashReady();    //Wait for flash busy flag to go off
            }
            ui->prorgessBar_FWUpload->setValue(i*100/lastSectorToErase);
            QApplication::processEvents(); //Update the GUI
        }
    
    ...
    ...
    }

    Regards,

    Sanjeev

  • Hi, Sanjeev,

    Thanks a lot for your kindly reply!

    We will test and let you know if any further questions.

    Best Regards!

    Eric

  • Hi Eric,
    Please let us know if you still need help on this subject. I am tentatively closing this thread.
    regard,
    Vivek
  • Hi, Vivek,

    Thanks a lot for your remind! The problem has been solved!

    So sorry I have not update in this thread. So appreciate for Mr. Sanjeev's nice support!

    Best Regards!

    Eric