Народ подскажите чего не так делаю про ARMы AT91
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено JTAG 17 августа 2003 г. 14:25

Припоял внешнюю SRAM 512Kx8, пытаю проверить работает она или нет. Подсоединил ее на NCS2
Алгоритм проверки такой пытаюсь записать по адресу находящимуся во внешней SRAM и считать это же значение, если значение считанное правильное то светодиод будет мигать. (Может еще как можно проверить пока только это в голову пришло)
Адресное пространство внешней SRAM 0x20000000-0x2007D000.
Адресное пространстао внутренней SRAM 0x00000- 3FFFF
Адресное пространстао внешней FLASH 0x01000000-0x01007FFF

В IARовском XCL файле это все пространство прописано.
Сама программа

char *alfa;
void main(void)
{
Конфигурация EBI для внешней FLASH NCS0 адрсное пространство 0x01000000-0x01007FFF
//========-EBI for FLASH MBM29LV800TA 1Mbyte(1Mx8/512Kx16)bit-=====
__EBI_CSR0_bit.ba=0x010; //hight bit of the base address 010
__EBI_CSR0_bit.dbw=1; // 16-bit data bus width
__EBI_CSR0_bit.nws=7; //Number of standart Wait States NWS=1,1,1 (8)
__EBI_CSR0_bit.wse=1; // WSE=1; Wait state generation is enable
__EBI_CSR0_bit.pages=0; //PAGES=0,0->1Mbyte, Page Size 1Mbyte
__EBI_CSR0_bit.tdf=7; //TDF=1,1,1, 7-> Cycles dded after the Transfer
__EBI_CSR0_bit.bat=0; // BAT=0; Byte -write access type
__EBI_CSR0_bit.csen=1; // CSEN=1; Chip select Enable

Конфигурация EBI для внешней SRAM NCS2 адрсное пространство 0x20000000-0x2007D000

//==============-EBI for SRAM K6R4008V1D 512Kx8bit-
//base address external SRAM =0x02000000 for NCS2--> K6R4008V1D
__EBI_CSR2_bit.ba=0x200; //hight bit of the base address 200
__EBI_CSR2_bit.dbw=2; // 8-bit data bus width
__EBI_CSR2_bit.nws=7; //Number of standart Wait States NWS=1,1,1 (8)
__EBI_CSR2_bit.wse=1; // WSE=1; Wait state generation is enable
__EBI_CSR2_bit.pages=0; //PAGES=0,0->1Mbyte, Page Size 1Mbyte
__EBI_CSR2_bit.tdf=7; //TDF=1,1,1, 7-> Cycles dded after the Transfer
__EBI_CSR2_bit.bat=0; // BAT=0; Byte -write access type
__EBI_CSR2_bit.csen=1; // CSEN=1; Chip select Enable

alfa=(char*)0x20000000;
*alfa=1; // *alfa--> To setup value to the address

while(1)
{
if (*alfa==1) {

__PIO_SODR_bit.p23=1;
for (i=0;i<=10000;i++) b=0;
__PIO_CODR_bit.p23=1;
for (i=0;i<=10000;i++) b=0;

}

}//end main WHILE
}//end main

Самое интересное что светодиод мигает , а на линии NCS2 никакой активности нет , никак не пойму в какую область памяти попадает указатель alfa . По логике во внутреннюю SRAM поскольку во внешнюю FLASH записать ничего нельзя (нужно выполнять спец команды).

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru