hello
I am using EMIFA in tms320c6747zkb3 in sram mode. I set the register follow:
PINMUX14 = 0x11111111;//0x88222222; // SD / EMIFA
PINMUX15 = 0x11111111;//0x21888888; // SD / EMIFA
PINMUX16 = 0x11111111;//0x11111112; // SD / EMIFA
PINMUX17 = 0x20111111;//0x20100111; // EMIFA,EMA_CS4********
PINMUX18 = 0x11111112;//0x11111112; // EMIFA,EMA_CS5,EMA_CS3,EMA_CS2
PINMUX19 = 0x00000001; // EMIFA
Uint8 PLLDIV3 = 2;
Uint8 PLLDIV5 = 2;//5
Uint8 PLLDIV7 = 7;
Uint8 PREDIV = 0;
PLL0_PLLDIV3 = 0x8000 | PLLDIV3; /* Make PLLDIV3 as bootpacket, do it for other PLLDIVx to if required*/
PLL0_PLLDIV5 = 0x8000 | PLLDIV5; /* Make PLLDIV5 as bootpacket, do it for other PLLDIVx to if required*/
PLL0_PLLDIV7 = 0x8000 | PLLDIV7; /* Make PLLDIV7 as bootpacket, do it for other PLLDIVx to if required*/
KICK0R = 0x83e70b13; // Kick0 register + data (unlock)
KICK1R = 0x95a4f1e0; // Kick1 register + data (unlock)
CFGCHIP3 |= 0x4; // Enable 4.5 divider PLL
CFGCHIP3 |= 0x2; // Select 4.5 divider for EMIFA clock source only (not EMIFB)
CFGCHIP3 |= 0x1; // Select 4.5 divider for EMIFB clock source only (not EMIFA)
AEMIF_A3CR = 0 //CE4
| ( 0 << 31 ) // selectStrobe
| ( 0 << 30 ) // extWait
| ( 1 << 26 ) // writeSetup //1 // 0 ns********2
| ( 2 << 20 ) // writeStrobe //4 // 50 ns*******24
| ( 1 << 17 ) // writeHold //1 // 0 ns********2
| ( 2 << 13 ) // readSetup //1 // 0 ns
| ( 2 << 7 ) // readStrobe //20 // 200 ns*****24
| ( 2 << 4 ) // readHold // 1 // 10 ns
| ( 3 << 2 ) // turnAround //3 // 10 ns********3
| ( 1 << 0 ); // asyncSize // 16-bit bus
I test the EMIFA data pin (such as EMIFA data0) change in low frequency(about 3.3Mhz)
I set EMIFA IN 2 writeSetup clk,3 writeStrobe clk,2 writeHold clk,IT's should 133÷(2+3+2)=19Mhz. and I change to 1 writeSetup clk,2 writeStrobe clk,1 writeHold clk,the frequency have no any changes.
Can you help me? thanks!
tongkun