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.

66AK2H12: Normal Operation of EMIF attached in 66ak2h12

Part Number: 66AK2H12

Hi,

Thanks to supporters in forum, our project keeps going on. Thanks a lot.

Currently, I focused on EMIF operation on our platform (66ak2h12 inside our specific board)

We used CE1 space(0x34000000) for communication, and HW(FPGA) tried to access that area.

But some weird operation is observed. When DSP writes 16bit data on CE1 space, HW catches the 32 bit data.

test process)

1. Add EMIF initialization code on gel script.(Actually, we didn`t use NOR/NAND flash. so I didn`t initialize the NOR/NAND related register)

2. Add test script on gel script as a hotemu function. So We can test it as we want.

3. chipscope is attached on FPGA. When the signal is received on FPGA, it can analysis it(datasize, contents of data, write enable signal etc)

our code snippets are below:

initialization : 

EMIF_Init()
{
    GEL_TextOut("Revision = %x \n",,,,,EMIF_RCSR);
    GEL_TextOut("EMIF Initiated\n");
    
    // W_SETUP = 0x3, W_STROBE = 0x7, W_HOLD = 0x1
    // R_SETUP = 0x3, R_STROBE = 0xF, R_HOLD = 0x1
// Data bus : 16bit EMIF_A2CR = 0x0C72679D; GEL_TextOut("EMIF Init Done\n"); }

Test code : 

hotmenu EMIF_Test()
{
    *(unsigned short*)(0x34000018) = (unsigned short)0x1234; // for testing 16 bit data
    //*(unsigned short*)(0x34000010) = 0x12345678; 

    //*(unsigned short*)(0x34000020) = 3;   
}

expected result : FPGA receive the 0x1234(16bit)

observed result : FPGA receive the 0x00001234(32bit)  <- FPGA received two write enable signal and get data(0x1234 and 0x0000)

Is this the right operation of EMIF? or should I consider something at other side?

Thanks in advance.

Chanseok

  • The team is notified. They will post their feedback directly here.

    BR
    Tsvetolin Shulev
  • Hi,

    this the right operation of EMIF? or should I consider something at other side?


    This is not normal. EMIF16 supports 8-bit and 16-bit data widths. And in the NOT SUPPORTED features section there is the following:
    - 32-bit mode operation

    So this is definitely not correct from emif point of view. What is the databus width on the FPGA side? Maybe it is set in 32-bit mode and that is why it fills the rest of the line with 0s.

    Best Regards,
    Yordan
  • Thanks for reply.
    According to our H/W engineer, there is no bus width configuration on FPGA side. Because the TI chip is master part of EMIF communication, it is followed by TI chip configuration.(and I configured it as 16bit databus)
    Actually, we processed serveral test cases, and got strange point. As I mentioned on previous question, I implemented test function on gel script, and FPGA receives two write data signal. But when I implement it on code level(C code), it works normally.
    In my opinion, when memory access is worked on gel script, it is accessed by 32 bit data width regardless of type casting.
    I don`t know the exact operation on gel script.
    could you clarify this, please?

    Thanks.
    Chanseok.