реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> AT91RM9200 + 2 K4S641632H, как настроить память?
Petka
сообщение Mar 10 2007, 19:35
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



На плате rainbow 1.1 пробую запустить 2 микросхемы памяти K4S641632H.
В регистре контроллера SDRAM указываю значения 8 col , 12 row, 4 банка. Но при тесте памяти начиная с адреса BASE+0x80000 памяти нет....

Линия процессора A13 подключена к A11 SDRAM, A14 идёт к A12 SDRAM.

Подкиньте идею в чём может быть дело?
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Mar 10 2007, 19:59
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Там два банка.
Код
void AT91F_InitSDRAM()
{
    int     i;
    volatile int     *pSDRAM = (int *)BASE_EBI_CS1_ADDRESS;

    //* Configure PIOC as peripheral (D16/D31)
    AT91F_SDRC_CfgPIO();
    
    //* Setup MEMC to support CS1=SDRAM
    AT91C_BASE_EBI->EBI_CSA |= AT91C_EBI_CS1A;
    AT91C_BASE_EBI->EBI_CFGR = (AT91C_EBI_DBPUC & 0x00) | (AT91C_EBI_EBSEN & 0x00);

    //* Init SDRAM

    //* 1. A minimum pause of 200us is provided to precede any signal toggle
        AT91C_BASE_SDRC->SDRC_CR = AT91C_SDRC_NC_8 | AT91C_SDRC_NR_12 | AT91C_SDRC_NB_2_BANKS | AT91C_SDRC_CAS_2
                                | 0x100 | 0x4000 | 0x8000
                                | 0x880000
                                | 0x21000000;


    //* 2. A Precharge All command is issued to the SDRAM
    AT91C_BASE_SDRC->SDRC_MR = AT91C_SDRC_MODE_PRCGALL_CMD;
    *pSDRAM = 0;

    //* 3. Eight Auto-refresh are provided
    AT91C_BASE_SDRC->SDRC_MR = AT91C_SDRC_MODE_RFSH_CMD;
    for(i=0;i<8;i++)
        *pSDRAM = 0;

    //* 4. A mode register cycle is issued to program the SDRAM parameters
    AT91C_BASE_SDRC->SDRC_MR = AT91C_SDRC_MODE_LMR_CMD;
    *(pSDRAM+0x80) = 0;

    //* 5. Write refresh rate into SDRAMC refresh timer COUNT register
    AT91C_BASE_SDRC->SDRC_TR = (AT91C_SDRC_COUNT & 0x2E0);
    *pSDRAM = 0;

    //* 6. A Normal Mode Command is provided, 3 clocks after tMRD is set
    AT91C_BASE_SDRC->SDRC_MR = AT91C_SDRC_MODE_NORMAL_CMD;
    *pSDRAM = 0;
}

вот с этим я эту плату с такими же микросхемами тестировал.
Go to the top of the page
 
+Quote Post
Petka
сообщение Mar 10 2007, 20:31
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(AlexMad @ Mar 10 2007, 19:59) *
Там два банка.
Код
.................
    //* 1. A minimum pause of 200us is provided to precede any signal toggle
        AT91C_BASE_SDRC->SDRC_CR = AT91C_SDRC_NC_8 | AT91C_SDRC_NR_12 | AT91C_SDRC_NB_2_BANKS | AT91C_SDRC_CAS_2
                                | 0x100 | 0x4000 | 0x8000
....................

вот с этим я эту плату с такими же микросхемами тестировал.

Спасибо, работает =)

только странно, в документации на память написано: "• Four banks operation", это ведь 4 банка а не 2?
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Mar 10 2007, 23:24
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Для меня это тоже загадка, по даташиту там четыре банка, десять столбцов и двенадцать строк, видать количество надо расчитывать самому из объема smile.gif я дошел до двух банков методом тыка.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01456 секунд с 7
ELECTRONIX ©2004-2016