HI all
My plan is to attach a RAM(IS61WV51216BLL) to the TMS320F28335 XINT zone 7 in the 16 bit databus mode.
My InitXintf() looks like:
// All Zones--------------------------------- EALLOW; XintfRegs.XINTCNF2.bit.XTIMCLK = 1; // =1 ^= XTIMCLK = 1/2 SYSCLKOUT XintfRegs.XINTCNF2.bit.WRBUFF = 1; // =0 ^= No write buffering XintfRegs.XINTCNF2.bit.CLKOFF = 0; // =0 ^= XCLKOUT is enabled XintfRegs.XINTCNF2.bit.CLKMODE = 1; // =1 ^= XCLKOUT = XTIMCLK/2 EDIS; ... EALLOW; XintfRegs.XTIMING7.bit.XWRLEAD = 2; XintfRegs.XTIMING7.bit.XWRACTIVE = 4; XintfRegs.XTIMING7.bit.XWRTRAIL = 1; // Zone read timing XintfRegs.XTIMING7.bit.XRDLEAD = 2; XintfRegs.XTIMING7.bit.XRDACTIVE = 4; XintfRegs.XTIMING7.bit.XRDTRAIL = 1; XintfRegs.XTIMING7.bit.X2TIMING = 0; // ='1' ^= double all Zone read/write lead/active/trail timing XintfRegs.XTIMING7.bit.USEREADY = 1; // ='1' ^= don't ignore XREADY XintfRegs.XTIMING7.bit.READYMODE = 1; // ='1' ^= sample asynchronous XintfRegs.XTIMING7.bit.XSIZE = ; // 1,1 ^= x16 other values are reserved EDIS; InitXintf16Gpio(); //Force a pipeline flush to ensure that the write to the last register configured occurs before returning. asm(" RPT #7 || NOP");
.
In the next picture I try to write something to address 1 , once in 16bit mode and once in 32 bit mode
strange here is
1st : XWE0n is in 16bit mode 2 times enabled (I would expect 1 time) ; opposite in 32bit mode
2nd : The address is in both cases, the way one would expect in 32-bit mode [ XA(19:1) -->A(18:0) ]
3rd : No clue what XA0 is doing...
I write the memory like :
*( StartAdress + SHIFT_ADDR(iAdr) ) = Value; // StartAdress:(Uint32 *)0x200000 ; iAdr =1 ; #define SHIFT_ADDR(temp) (temp)
What did I forgot to initialize??
Every help is highly appreciated, then soon I'm desperate...