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.

EMIF

Other Parts Discussed in Thread: HALCOGEN, TMS570LS3137

Hi,

   I am Abhijith Raghavendra Working in Advanced Rail Controls Pvt.Ltd , We are using TMS570LS3137 micro controller in our projects. Here we are facing a big problem and we have got stuck in this . We are using HALCoGen 04.03.00 and CCS for programing. Here the problem is we have to read write from one address the details of that is given bellow.

 Async 2 is used with /cs3 as chip-select  and the address we have used is 0x64000005 . We have used the following piece of code for writing .

static const unsigned long  cch_data_reg = 0x64000005;

#define cch_put_reg(address,data) (*(CCH_VOLATILE BYTE*)address = (BYTE)data ) 

the loop goes like this

while(1)

{

unsigned int a = 0xAA,b =0x55,c= 0x77 ;

cch_put_reg(cch_data_reg,0xAA);

printf("%02x",a);

cch_put_reg(cch_data_reg,0x55);


printf("%02x",b);

cch_put_reg(cch_data_reg,0x77);


printf("%02x",c);

}

In this case every thing works fine the chip select will be generated correctly, write strobe will be generated properly and in data lines we are able to see the data  when we measure the signals in scope.

When we take out the printf() after each cch_put_reg () the chip select is not getting generated so we are unable to communicated with the other device when we remove printf() .The loop is like this. In this chip-select is not generated so data flows .

while(1)

{

unsigned int a = 0xAA,b =0x55,c= 0x77 ;

cch_put_reg(cch_data_reg,0xAA);

cch_put_reg(cch_data_reg,0x55);

cch_put_reg(cch_data_reg,0x77);

}

 Can you help us in this as it has become our bottle to us and we are unable to go forward. Awaiting for your quick reply.