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

 
 
> AT91SAM9G45 и DDR2, NANYA verses MICRON
vin
сообщение May 10 2012, 18:16
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 2-06-05
Из: Киев
Пользователь №: 5 682



Здравствуйте!

Собрали свою плату на AT91SAM9G45.

1. Изначально поставили на первую партию DDR2-667 Micron MT47H64M8CF-3, ту что использует и сам Atmel на своих китах. Итого 2 модуля, имеем 128MB ОЗУ и наслаждаемся линуксом..

2. На следующуюю партию поставили DDR2-800 NANYA NT5TU64M8DE-AC и линукс перестал грузится. Экспериментальным путем обнаружили, что если в инициализации DDR2 в бутстрапе
CODE
#ifdef CONFIG_DDR2
static SDdramConfig ddram_config;

/*------------------------------------------------------------------------------*/
/* \fn ddramc_hw_init */
/* \brief This function performs DDRAMC HW initialization */
/*------------------------------------------------------------------------------*/
void ddramc_hw_init(void)
{
ddram_config.ddramc_mdr =
(AT91C_DDRC2_DBW_16_BITS | AT91C_DDRC2_MD_DDR2_SDRAM);

ddram_config.ddramc_cr = (AT91C_DDRC2_NC_DDR10_SDR9 | // 10 column bits (1K)
AT91C_DDRC2_NR_14 | // 14 row bits (8K)
AT91C_DDRC2_CAS_3 | // CAS Latency 3
AT91C_DDRC2_DLL_RESET_DISABLED); // DLL not reset

// ddram_config.ddramc_rtr = 0x24B;
ddram_config.ddramc_rtr = 0x4121;

ddram_config.ddramc_t0pr = (AT91C_DDRC2_TRAS_6 | // 6 * 7.5 = 45 ns
AT91C_DDRC2_TRCD_2 | // 2 * 7.5 = 22.5 ns
AT91C_DDRC2_TWR_2 | // 2 * 7.5 = 15 ns
AT91C_DDRC2_TRC_8 | // 8 * 7.5 = 75 ns
AT91C_DDRC2_TRP_2 | // 2 * 7.5 = 22.5 ns
AT91C_DDRC2_TRRD_1 | // 1 * 7.5 = 7.5 ns
AT91C_DDRC2_TWTR_1 | // 1 clock cycle
AT91C_DDRC2_TMRD_2); // 2 clock cycles

ddram_config.ddramc_t1pr = (AT91C_DDRC2_TXP_2 | // 2 * 7.5 = 15 ns
200 << 16 | // 200 clock cycles, TXSRD: Exit self refresh delay to Read command
16 << 8 | // 16 * 7.5 = 120 ns TXSNR: Exit self refresh delay to non read command
AT91C_DDRC2_TRFC_14 << 0); // 14 * 7.5 = 142 ns (must be 140 ns for 1Gb DDR)

ddram_config.ddramc_t2pr = (AT91C_DDRC2_TRTP_1 | // 1 * 7.5 = 7.5 ns
AT91C_DDRC2_TRPA_0 | // 0 * 7.5 = 0 ns
AT91C_DDRC2_TXARDS_7 | // 7 clock cycles
AT91C_DDRC2_TXARD_2); // 2 clock cycles

// ENABLE DDR2 clock
writel(AT91C_PMC_DDR, AT91C_BASE_PMC + PMC_SCER);

/*
* DDRAM2 controller
*/
ddram_init(AT91C_BASE_DDR2C, AT91C_DDR2, &ddram_config);
sdram_init(16);
/*
* Setup Smart Media, first enable the address range of CS3 in HMATRIX user interface
*/
// writel(readl(AT91C_BASE_CCFG + CCFG_EBICSA) | AT91C_EBI_CS1A_SDRAMC,
// AT91C_BASE_CCFG + CCFG_EBICSA);

/*
* EBI IO in 1.8V mode
*/
// writel(readl(AT91C_BASE_CCFG + CCFG_EBICSA) & ~(1 << 16),
// AT91C_BASE_CCFG + CCFG_EBICSA);

/*
* EBI DDRAM controller
*/
// ddram_init(AT91C_BASE_DDR2CP1, AT91C_EBI_CS1, &ddram_config);

}
#endif /* CONFIG_DDR2 */

убрать верхний адрес, т.е. поменять
Код
                  AT91C_DDRC2_NR_14 |       // 14 row bits    (8K)

на
Код
                  AT91C_DDRC2_NR_13 |       // 14 row bits    (8K)

то линукс грузится и все работает, но имеем только 64М ОЗУ. Сравнили даташиты Micron & Nanya, практически идентичны по параметрам.

Просьба, если кто знает тонкости инициализации DDR2, подскажите куда копать?

Заранее благодарю.

Сообщение отредактировал IgorKossak - May 13 2012, 10:15
Причина редактирования: [codebox], форматирование

Прикрепленные файлы
Прикрепленный файл  NANYA_NTC_DDR2_512M_D_R16_Consumer.pdf ( 2.07 мегабайт ) Кол-во скачиваний: 90
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_4afc_
сообщение May 12 2012, 20:03
Сообщение #2


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Так написано же:

The address bits registered coincident with the activate command are used to select the bank and row to be accesses (BA0 and BA1 select the banks, A0-A13 select the row for x8 components, A0-A12 select the row for x16 components).


Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 12 2012, 20:32
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(_4afc_ @ May 13 2012, 00:03) *
Так написано же:

The address bits registered coincident with the activate command are used to select the bank and row to be accesses (BA0 and BA1 select the banks, A0-A13 select the row for x8 components, A0-A12 select the row for x16 components).

Так у ТС x8.

Цитата(vin @ May 10 2012, 22:16) *
то линукс грузится и все работает, но имеем только 64М ОЗУ. Сравнили даташиты Micron & Nanya, практически идентичны по параметрам.

Может, она на самом деле 256Mb? Проверьте на новой микросхеме, имеет ли шар сигнала A13 физическое подключение.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение May 12 2012, 21:10
Сообщение #4


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(aaarrr @ May 13 2012, 00:32) *
Так у ТС x8.


Точно - тормазнул. А вот то, что NANYA при инициализации требует A13=0, её случаем от Micron не отличает?

Например: Issue EMRS to enable DLL. (Provide Low to A0, HIGH to BA0 and LOW to BA1 and A13. And A9=A8=A7=LOW must be used when issuing this command.)
Go to the top of the page
 
+Quote Post
vin
сообщение May 17 2012, 21:18
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 2-06-05
Из: Киев
Пользователь №: 5 682



Цитата(_4afc_ @ May 12 2012, 23:10) *
Точно - тормазнул. А вот то, что NANYA при инициализации требует A13=0, её случаем от Micron не отличает?

Например: Issue EMRS to enable DLL. (Provide Low to A0, HIGH to BA0 and LOW to BA1 and A13. And A9=A8=A7=LOW must be used when issuing this command.)


A13 в нуле. Проблема не ушла. Сейчас пробуем варьировать тайминги.
Еще идеи есть?
Go to the top of the page
 
+Quote Post



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

 


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


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