Перейти к содержанию
    

AT91RM9200 + 2 K4S641632H

На плате rainbow 1.1 пробую запустить 2 микросхемы памяти K4S641632H.

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

 

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

 

Подкиньте идею в чём может быть дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там два банка.

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;
}

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там два банка.

.................
    //* 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для меня это тоже загадка, по даташиту там четыре банка, десять столбцов и двенадцать строк, видать количество надо расчитывать самому из объема :) я дошел до двух банков методом тыка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...