Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как настроить SDRAM на EP93xx?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Andrei....
Как настроить SDRAM на EP93xx? Очень хотелось бы взглянуть на пример кода.
aaarrr
Вот пример инициализации на 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]
Andrei....
Проинициализировал SDRAM контроллер, но память читается не стабильно, а при записи long'а вся память записывается этим long'ом. Последнее особенно неприятно. Что это может быть?
Используется стандартный модуль DIMM128, организация 32-разрядная (4х8bit), AD0-11 ep93xx заведены на A0-11 SDRAM'а, AD14-15 заведены на B0-1 SDRAM'а.
aaarrr
Что-то странное... Давайте уточним некоторые моменты:

1. Что значит "читается нестабильно"?
2. "вся память записывается этим long'ом" - действительно ВСЯ?
3. На каком CS'е сидит память, какая частота, проверялись ли сигналы управления?
4. Как сконфигурирован cache и MMU?
5. Какая память стоит на модуле?
Andrei....
Цитата(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
aaarrr
Цитата(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 не настроен?
Andrei....
Цитата(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.
Evgeny_CD
Цитата(Andrei.... @ Apr 4 2006, 15:15) *
1. Два слоя.
В инете полно отзывов о то, что EP93xx довольно капризны по шине. Так что, думаю, в 2-х слоях все дело.
Andrei....
Ну на скорости 14Mhz должно уж работать!
Думаю что то неправильно настроил. Но вот не могу понять что.
Evgeny_CD
Цитата(Andrei.... @ Apr 4 2006, 18:25) *
Ну на скорости 14Mhz должно уж работать!
Не факт! Один фронт - а за счет несогласования на том конце несколько фронтов - вот и приплыли. И от частоты слабо зависит - Вы же крутизну фронта не переключаете пропорционально тактовой....
aaarrr
Цитата(Andrei.... @ Apr 4 2006, 18:25) *
Ну на скорости 14Mhz должно уж работать!

Евгений прав: совершенно не факт, что будет работать. А резисторы на шине есть?
И как разведена земля? Можно попробовать чуть прижать SDCLK (резистор + конденсатор)...

Цитата(Andrei.... @ Apr 4 2006, 18:25) *
Думаю что то неправильно настроил. Но вот не могу понять что.

Там настраивать практически нечего - оно или работает, или нет sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.