|
|
  |
Как настроить SDRAM на EP93xx? |
|
|
|
Apr 3 2006, 10:26
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Вот пример инициализации на asm'е для 32-х бит, закомменченные значения, насколько я помню, для 16... Код ; *************************************************************************** ; * SDRAM Controller Configuration
; 1. Wait 100us
; 2. Set SDRAM controller device mode register ldr r0, =0x01210008 ;0x0022000c ldr r1, =SDRAMDevCfg0 str r0, [r1] ldr r1, =SDRAMDevCfg1 str r0, [r1] ldr r1, =SDRAMDevCfg2 str r0, [r1] ldr r1, =SDRAMDevCfg3 str r0, [r1]
ldr r1, =GlConfig ldr r2, =RefrshTimr
; 3. Set Initialize, MRS, and CKE bits in the GlConfig register
ldr r0, =0x80000003 str r0, [r1]
; 4. Wait 200us mov r0, #0x4000 1 subs r0, r0, #0x01 bne %B1
; 5. Clear MRS bit ldr r0, =0x80000001 str r0, [r1]
; 6. Write 10 into the refresh timer register mov r0, #0x0a str r0, [r2]
; 7. Wait at least 80 clock cycles mov r0, #0x100 1 subs r0, r0, #0x01 bne %B1
; 8. Program the refresh counter mov r0, #0x320 str r0, [r2]
; 9. Initialize = 0, MRS = 1 ldr r0, =0x80000002 str r0, [r1]
ldr r0, =0xc0008800 ;0xf0006600 ldr r0, [r0]
; 10.
; 11. Clear MRS ldr r0, =0x80000000 str r0, [r1]
|
|
|
|
|
Apr 4 2006, 09:12
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Apr 4 2006, 12:17)  Что-то странное... Давайте уточним некоторые моменты:
1. Что значит "читается нестабильно"? 2. "вся память записывается этим long'ом" - действительно ВСЯ? 3. На каком CS'е сидит память, какая частота, проверялись ли сигналы управления? 4. Как сконфигурирован cache и MMU? 5. Какая память стоит на модуле? 1. При чтении большого куска памяти, получаются разные данные, (почти разные). В основной меняется небольшое число байт при каждом зачитывании. Всё это при частоте HCLK=98MHz. Если не настраивать PLL1, как я понимаю, тогда HCLK=14Mhz, ситуация с чтением стабильна. 2. точнее сказать около килобайта...дальше не смотрел. 3. На всех одинаковая ситуация, настроены одинаково. В основном смотрю в SDCS3, отображена в адрес 0x00000000. HCLK=98Mhz. Сигналы не смотрел. 4. Не настраивались. 5. Hynix HY57V658020B. Обычный модуль DIMM 128Mb 16 микросхем PC100
|
|
|
|
|
Apr 4 2006, 10:09
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Andrei.... @ Apr 4 2006, 13:12)  1. При чтении большого куска памяти, получаются разные данные, (почти разные). В основной меняется небольшое число байт при каждом зачитывании. Всё это при частоте HCLK=98MHz. Если не настраивать PLL1, как я понимаю, тогда HCLK=14Mhz, ситуация с чтением стабильна. 2. точнее сказать около килобайта...дальше не смотрел. 3. На всех одинаковая ситуация, настроены одинаково. В основном смотрю в SDCS3, отображена в адрес 0x00000000. HCLK=98Mhz. Сигналы не смотрел. 4. Не настраивались. 5. Hynix HY57V658020B. Обычный модуль DIMM 128Mb 16 микросхем PC100 1. Похоже на проблемы с EMI. Как разведена плата, сколько слоев? 2. Ерунда какая-то, даже не представляю, как такое возможно. Приведите пример кода. 3. Что значит "отображена в адрес 0x00000000", если MMU не настроен?
|
|
|
|
|
Apr 4 2006, 11:15
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Apr 4 2006, 14:09)  Цитата(Andrei.... @ Apr 4 2006, 13:12)  1. При чтении большого куска памяти, получаются разные данные, (почти разные). В основной меняется небольшое число байт при каждом зачитывании. Всё это при частоте HCLK=98MHz. Если не настраивать PLL1, как я понимаю, тогда HCLK=14Mhz, ситуация с чтением стабильна. 2. точнее сказать около килобайта...дальше не смотрел. 3. На всех одинаковая ситуация, настроены одинаково. В основном смотрю в SDCS3, отображена в адрес 0x00000000. HCLK=98Mhz. Сигналы не смотрел. 4. Не настраивались. 5. Hynix HY57V658020B. Обычный модуль DIMM 128Mb 16 микросхем PC100
1. Похоже на проблемы с EMI. Как разведена плата, сколько слоев? 2. Ерунда какая-то, даже не представляю, как такое возможно. Приведите пример кода. 3. Что значит "отображена в адрес 0x00000000", если MMU не настроен? 1. Два слоя. 2. Собственно после (*((volatile unsigned long *)0x00000000))=0x01020304; в окне дебуггера memory смотрю память и вижу что всё записано значеиями 0x01020304 3. ASDO вывод в 1. тогда в нижние адреса отображается SDCS3.
|
|
|
|
|
Apr 4 2006, 15:49
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Andrei.... @ Apr 4 2006, 18:25)  Ну на скорости 14Mhz должно уж работать! Евгений прав: совершенно не факт, что будет работать. А резисторы на шине есть? И как разведена земля? Можно попробовать чуть прижать SDCLK (резистор + конденсатор)... Цитата(Andrei.... @ Apr 4 2006, 18:25)  Думаю что то неправильно настроил. Но вот не могу понять что. Там настраивать практически нечего - оно или работает, или нет
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|