por styg » 02 Abr 2009 21:07
E ai rapaziada, acho que alguns de voces ja mexeram com memória externa né?
Bom, comecei a mexer com uma sdram no lpc2478 (pra aquele meu projeto), e ja rolou o primeiro problema (que bom, se fosse facil nao tinha graça).
A começar pelo keil não simular o EMC, o que dificulta bastante.
Peguei um código exemplo do keil pra lpc2478 com sdram da samsung (por sorte quase-compativel com a micron que to usando), beleza, dei uma adaptada no código e botei p/ depurar na coragem mesmo.
Esse programa que peguei fazia o seguinte, zerava a memoria, escrevia e depois lia e conferia, tudo com ponteiro, simples, mas não funcionando 100%
A principio na da código aqui, pra não chatear, só quero tirar umas dúvidas quanto ao funcionamento do emc:
1) depois de configurar o emc de acordo com a memória, acabou?? digo, a memória externa fica mapeada (primeiro banco em 0xA0000000), então boto um ponteiro apontando pra ela e aí é só ler/escrever que o controlador se vira?
2) nesse código tá ativado o modo burst (8 bytes), então, eu não consigo ler uma word apenas (minha memória é de 16bits x 4MB) ??
3) se minha memória é de 16 bits, eu só posso escrever variaveis de 16bits? ou posso escrever de 8 ou 32bits e o controlador tb se vira.
4) como que eu carrego o mode register? no código tem algo assim:
dummy = *((volatile unsigned short *)(SDRAM_BASE_ADDR | (0x33 << 12)));
o que seria isso??
se me ajudarem com isso ja tá otimo pra começar!
Lucas