Post Go back to editing

Write data into NOR Flash sector

Hi all,

   I am working on BF609, When i try to write some data like 0x1254 in particular sectors using pc28f128P33_Write() into nor flash. It writes the data into that sector.

But when I read that sector it cannot give the exact data I passed into that sector, the write and read addresses are same. Before write when I read it gives some data value and after write it gives the value which is not matching, every time the same values shown even when I write into another sectors.

Please somebody help me to fix this issue.

Thanks..

Regards

John



.
[edited by: John21 at 11:22 AM (GMT -4) on 17 Aug 2021]
  • Hi,

    Please download and install BF609 BSP package from the below link.
    download.analog.com/.../ADI_ADSP-BF609_Evaluation_Board-Rel1.1.0.exe

    Refer "pc28f128p33.c" file from POST example in the below path to know about writing and reading the data from pc28f128P33 flash <Installation path>\ADSP-BF609_Evaluation_Board-Rel1.1.0\BF609_EZ-Board\Blackfin\Examples\Power_On_Self_Test

    Regards,
    Anand Selvaraj.

  • Hi Anand Selvaraj,


    I tried after referred "pc28f128p33.c" file from power on self test and write data (0x123) in 60 sector but I got the value 70 after write that data into that sector. 

    When I tried to read after sector erase I got the value as ff. Was that right?

    By default, any data available in nor flash? If it is what kind of data available and what happens if those data's  erased?

    Am i able to write  and read data into nor flash again?

    Regards,

    John

  • Hi Anand Selvaraj,

    Any update?

    Regards,

    John

  • Hi,

    We are able to write and read in flash successfully. Please refer the attached project which writes data 0x123 in 60th sector address(0xB0720000) and read the value from the same address.

    During a block erase, the WSM executes a sequence of internally-timed events that conditions, erases, and verifies all bits within the block. Erasing the flash memory array changes “zeros” to “ones”. Memory array bits that are ones can be changed to zeros only by programming the block.

    For more details regarding flash, we recommend to refer datasheet of pc28f128P33.

    BF609_flash_pc28f128P33_Core0.zip



    Regards,
    Anand Selvaraj.

  • Hi Anand Selvaraj,

    I tried to read and write it works, but after executed entire chiperase() I can't able to read and write. Also tried your program but the manufacture code is not matching after set.

    I think its because of the chip erase, before the chip erase able to read and write in any sector.

    Is that right? What kind of data available in nor flash initially?

    Thanks for the reply..

    Regards,

    John

  • Hi,

    I am also facing this problem after erasing the entire nor flash.

    Help me to fix this issue.

    Thanks.

  • Hi,

    After getting the manufacture and dev Id's it can't match right?

    What is the reason for that issue?

  • Hi,

    When will I get the update?

    Regards,

    John

  • Hi,

    After erasing all sectors, we are able to write and read the values correctly. please refer the screenshot.
    To assist you better,can you please share us the below points.
    1. Are you using custom board or Ezkit.
    2. Can you please try to flash simple led program in to the parallel flash and let us know the result. Device programmer "bf609_pc28f128p33_dpia.dxe" is used to communicate with flash and load the ldr in the flash.


    Regards,
    Anand Selvaraj.

  • Hi Anand Selvaraj,

    1.We are using ezkit.

    2. Like you said  we tried blinking led program into flash and it worked fine.

    This is what we tried     "pCmdBuffer.SEraseSect.ulFlashStartAddr = FLASH_START_ADDR;
                                           Result = pc28f128P33_Control( CNTRL_ERASE_ALL, &pCmdBuffer );"

    When we run your code in our board flash code not matched "Detected manufacturer code of 0x90 and device code of 0x90Test Failed: Flash codes do not match what we expectedTest Failed: Flash codes do not match what we expected"

    How to solve this issue?

    Regards,

    Ragav