Moderadores: 51, guest2003, Renie, gpenga
styg escreveu:Beleza Marcelo, vamo pro teu teste:
o código usado foi o que tu postou.
resultados, leitura de word:
End: 0xA000 0000 Valor: 0x0100 // ok
End: 0xA000 0002 Valor: 0x0302 // ok
End: 0xA000 0004 Valor: 0x0504 // ok
End: 0xA000 0006 Valor: 0x0706 // ok
End: 0xA000 0008 Valor: 0x0706 // erro
End: 0xA000 000A Valor: 0x0706 // erro
End: 0xA000 000C Valor: 0x0706 // erro
End: 0xA000 000E Valor: 0x0706 // erro
End: 0xA000 0010 Valor: 0x1110 // ok
End: 0xA000 0012 Valor: 0x1312 // ok
End: 0xA000 0014 Valor: 0x1514 // ok
End: 0xA000 0016 Valor: 0x1716 // ok
End: 0xA000 0018 Valor: 0x1716 // erro
End: 0xA000 001A Valor: 0x1716 // erro
End: 0xA000 001C Valor: 0x1716 // erro
End: 0xA000 001E Valor: 0x1716 // erro
End: 0xA000 0020 Valor: 0x2120 // ok
End: 0xA000 0022 Valor: 0x2322 // ok
End: 0xA000 0024 Valor: 0x2524 // ok
End: 0xA000 0026 Valor: 0x2726 // ok
End: 0xA000 0028 Valor: 0x2726 // erro
End: 0xA000 002A Valor: 0x2726 // erro e por assim vai..
resultados, leitura de long:
End: 0xA000 0000 Valor: 0x03020100 // ok
End: 0xA000 0004 Valor: 0x07060504 // ok
End: 0xA000 0008 Valor: 0x07060706 // erro
End: 0xA000 000C Valor: 0x07060706 // erro
End: 0xA000 0010 Valor: 0x13121110 // ok
End: 0xA000 0014 Valor: 0x17161514 // ok
End: 0xA000 0018 Valor: 0x17161716 // erro
End: 0xA000 001C Valor: 0x17161716 // erro
End: 0xA000 0020 Valor: 0x23222120 // ok
End: 0xA000 0024 Valor: 0x27262524 // ok
End: 0xA000 0028 Valor: 0x27262726 // erro
End: 0xA000 002C Valor: 0x27262726 // erro
End: 0xA000 0030 Valor: 0x33323130 // ok, e por assim vai...
Marcus, o EMCDynamicConfig tá assim -> EMC_DYN_CFG0 = 0x0280;
e Sergio, o clock do 'bixim' ta em 12MHz
MarcusPonce escreveu:Estamos no caminho certo, os testes parecem indicar que o correto é <<11 mesmo. Provavelmente o deslocamento resolve se você usar o seguinte:
mode = *((volatile unsigned int *) (0xa0000000 | (0x23 << 11)));
Veja que além do <<11 também precisa mudar o 0x33 para 0x23. Assim deixaremos o CAS latency correto.
Poderia por favor refazer o teste ?
volatile unsigned int *wr_ptr;
volatile unsigned short *short_wr_ptr;
volatile unsigned char *char_wr_ptr;
volatile unsigned long long *long_ptr;
unsigned int i;
for(i=0;i!=256;i++)
{
*bptr++ = i; // preenchimento
}
for(i=0;i!=128;i++)
{
*wptr++; // leitura
}
for(i=0;i!=64;i++)
{
*lptr++; // leitura
}
/* Enable module, normal memory map and normal power mode */
EMC_CTRL = 1;
/* Use little-endian mode and 1:1 clock ratio */
EMC_CONFIG = 0;
/* Global dynamic settings */
/* FIXME */
EMC_DYN_APR = 2;
/* Data-in to active command period tWR + tRP */
EMC_DYN_DAL = 4;
/* Load mode register to active or refresh command period 2 tCK */
EMC_DYN_MRD = 1;
/* Active to precharge command period 44 ns */
EMC_DYN_RAS = 3;
/* Active to active command period 66 ns */
EMC_DYN_RC = 4;
/* Use command delayed strategy */
EMC_DYN_RD_CFG = 1;
/* Auto refresh period 66 ns */
EMC_DYN_RFC = 4;
/* Precharge command period 20 ns */
EMC_DYN_RP = 1;
/* Active bank a to active bank b command period 15 ns */
EMC_DYN_RRD = 1;
/* FIXME */
EMC_DYN_SREX = 5;
/* Write recovery time 15 ns */
EMC_DYN_WR = 1;
/* Exit self refresh to active command period 75 ns */
EMC_DYN_XSR = 5;
/* Dynamic Memory 0 settings */
/* Use SDRAM, 0 0 001 01 address mapping, disabled buffer, unprotected writes*/
EMC_DYN_CFG0 = 0x0280;
/* CAS and RAS latency */
EMC_DYN_RASCAS0 = 0x0202;
/* Wait 50 micro seconds */
arm_delay_u5s(119);
/* Send command: NOP */
EMC_DYN_CTRL = 0x00000183;
/* Wait 50 micro seconds */
arm_delay_u5s(119);
/* Send command: PRECHARGE ALL */
EMC_DYN_CTRL = 0x00000103;
/* Shortest possible refresh period */
EMC_DYN_RFSH = 0x01;
for(i = 0; i < 0x40; i++); /* wait 128 AHB clock cycles */
/* Wait 1 micro second */
arm_delay_u5s(3);
/* Set refresh period */
EMC_DYN_RFSH = 0x46;
/* Send command: MODE */
EMC_DYN_CTRL = 0x00000083;
/* Set mode registerin SDRAM */
mode = *((volatile unsigned int *) (0xa0000000 | (0x23 << 11)));
/* Send command: NORMAL */
EMC_DYN_CTRL = 0;
/* Enable buffer */
EMC_DYN_CFG0 |= 0x00080000;
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante