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

 
 
> OMAP5912(192MHz) SDRAM(96MHz) периодические ошибки чтения
barmaley3000
сообщение Jan 10 2008, 23:49
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 19-12-07
Пользователь №: 33 462



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

Имеется плата с TI OMAP5912 и Micron MT48LC8M16A2 SDRAM chip.
ARM работает на 192 MHz, память на 96 MHz. Я написал bootloader, который делает
всю инициализацию (работая в SRAM) и затем запускает тест SDRAM. Простой
тест записи-чтения patterns в различные rows-columns проходит без проблем.
Случайно поймал периодическую ошибку чтения в случае записи-чтения измнеяющегося
значения по одному и тому же адресу (от конкретного значения адреса ничего не зависит).
Около 10 тыс. циклов проходит нормально, затем результат чтения не совпадает с записью.
Записанное значение корректно. Если тест запустить опять, то все повторится ~ через 10 тыс. циклов.
Такое ощущение, что как-то связано с resresh'ом. Пробовал играться с параметрами SDRAM контроллера,
но безрезультатно. Единственный вариант, как это удалось побороть - это понизить частоту на Traffic Controller до 48 MHz, что не очень приятно.

Сможет ли кто-нибудь, что-нибудь присоветовать?
Заранее благодарен.
--------------------------------------------------------------
Оригинальная конфигурация

8-bit Prescaler'a CLK_ARM_CKCTL(0xFFFECE00) = 1 Sets TC divider CK_GEN3/2

setup SDRAM type as Regular SDRAM and operation mode as HPHB
TC_EMIFF_OP(0xFFFECC80) = 0x00000004

SDRAM Config (frequency range (SDF0 Trc = 9, Tras = 6, Trp = 3, Trcd = 3, Trrd = 2))
TC_EMIFF_CONFIG(0xFFFECC20) =
(0x5AA << 8) /* Autorefresh counter value */
|(0x0B << 4) /* SDRAM internal organization (128Mx16x4b) */
| 0x0000000C /* Autorefresh enable by burst of 8 commands */
|(1 << 1) /* reserved, must be 1 */

CAS idle 3, full page burst, serial mode
TC_EMIFF_MRS_NEW(0xFFFECC70) = 0x00000007|0x00000030

Autorefresh counter был рассчитан на основании
Autorefresh counter = (refresh rate/#rows/system freq(ns)) - 50
ARCV = 64ms/4096/(1/TC_CK) - 50 = (64*10^6(ns))/4096/10.41 - 50 = 1500 - 50 = 1450 (0x5AA)
Пробовал делать поправки на burst of 8 commands (хотя hardware должно само смасштабировать),
не помогло
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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