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.

CS2 Configuration, NOR FLASH Inıt [need assistant for a different board from evmdm6437]

Hi,

Finally we have our own board. It is composed of two blocks, and each block has a dm6437 chip. So far we are able to succeed emulator connection to either DSPs, initializing the DDR2s and running our boot project which is integrated with UART. Now we are struggling initalizing the nor flashes. The model of the flashes we use is different than the evm board, but it has the complete same structure: 8 bit data bus, 16MB (by the way I am not sure if EVM has 16MB or 32MB flash memory), and the same command interface. Hence there should be no problem if I use the codes from dm6437 dvsdk.

But the situation is we can't write or erase flash properly.

So it would be good if I am to be sure that I don't miss anything. I will be very happy and very less stressed if you help me;

-I need to configure CS2 space as 8-bit wide. For this, I am configuring aemif1 register properly. Also, EVM uses SW2, bootload configuration select, which defines the EMIF mode at reset. We don't have such a switch, but the related pins are configured to support 8bit width EMIF. Is there anything more to configure EMIF and CS2 as 8 bit width?

-Flash is on CS2. So we are configuring pinmuxing for CS2. Is there any more pinmuxing for using CS2 or flash?

-We are running the nor flash init function in the gel file. It configures the async configuration register 1(aemif1), which stands for CS2 space. After this step, the flash must be on enabled state, am I right?

-From this moment on, I should be able to write to flash. Please correct me If I am wrong. When I execute the commands to write the flash, unfortunately it fails. (from what I observe from memory view of code composer, flash locations are very unstable, changes arbitrary, when I refresh the values getting lost, and many more similar problems).

Thank you in advance,

A. Erman Kulunyar

  • Elric said:

    -I need to configure CS2 space as 8-bit wide. For this, I am configuring aemif1 register properly. Also, EVM uses SW2, bootload configuration select, which defines the EMIF mode at reset. We don't have such a switch, but the related pins are configured to support 8bit width EMIF. Is there anything more to configure EMIF and CS2 as 8 bit width?

    -Flash is on CS2. So we are configuring pinmuxing for CS2. Is there any more pinmuxing for using CS2 or flash?

    -We are running the nor flash init function in the gel file. It configures the async configuration register 1(aemif1), which stands for CS2 space. After this step, the flash must be on enabled state, am I right?

    -From this moment on, I should be able to write to flash. Please correct me If I am wrong. When I execute the commands to write the flash, unfortunately it fails. (from what I observe from memory view of code composer, flash locations are very unstable, changes arbitrary, when I refresh the values getting lost, and many more similar problems).

    You mentioned that when viewing the Flash memory from a CCS memory window, the contents in the flash locations are unstable.  Does this mean when you perform a refresh of the window, the supposedly static value in flash actually changes?  This would suggest to me that the timing on the interface is not quite right based on how you have the clocks configured.  Is there a difference in the base reference frequency and how it is PLL'ed up compared to the what the GEL files assume?  Are there differences in the timing requirements of the flash that you have used compared to what the GEL file assumes, which is based on the EVM?

    I would suggest checking these items to ensure that you are getting stable memory reads from Flash.  Then the same needs to occur on the write cycle timing.  If this is not met, your program and erase cycles will not be guarenteed.