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

 
 
> Проблемы с SDRAM у LPC3250
kolobochishe
сообщение Feb 22 2011, 08:05
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Всем доброго дня!

Вопрос уже задавал в ветке "ARM32 для начинающих".

Проблема с записью в SDRAM массивов. Ошибки происходят либо при инициализации массива, либо при непрерывной записи в массив.
Сняли осциллограмму. На ней циклы записи в память идут очень плотно, даже без соблюдения правильной длительности отдельной операции записи. Если не добавлять в программе NOP между записью в конкретную ячейку памяти, то заполнение массива гибнет. Притом всегда в одном и том же месте при данных настройках.

При изменении таймингов место "краха" изменяется. И что особенно непонятно для меня - чем более длительные тайминги задаешь, тем больше NOP я должен поставить в программе.

Т.е. проблема не в несоблюдении таймингов в конкретной операции, а в том - что контроллер работает быстрее, чем память и пытается записать значения чаще, чем это допустимо, хотя в регистрах управления SDRAM вся информация о быстродействии памяти контроллеру "известна". Неужели необходимо снижение тактовой частоты контроллера, без снижения частоты работы SDRAM ? По-моему это маловероятно. А как "объяснить" контроллеру, что записывать чаще нельзя - я не могу найти.

Это лично мой взгляд на проблему. Высказывалась версия, что контроллер не может "впихнуть" команду REFRESH (64ms/8kb). Что тоже возможно. Но, опять же, где это задается в контроллере LPC3250, я что-то пока не нашел.

Еще, если есть возможность, киньте ссылку на литературу или хорошую статью по SDRAM.




Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobochishe
сообщение Jun 3 2011, 06:34
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Наверно это полумера, но сравнял частоту HCLK и частоту ядра. Сейчас 130МГц и то и другое. Видеопамять так и не получилось разместить в SDRAM. Какие то полоски на экране и помехи. В IRAM видеопамять работает.

А так в общем все работает.

Go to the top of the page
 
+Quote Post
scorp2011
сообщение Jun 11 2011, 20:29
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 29-01-11
Пользователь №: 62 559



Цитата(kolobochishe @ Jun 3 2011, 09:34) *
Наверно это полумера, но сравнял частоту HCLK и частоту ядра. Сейчас 130МГц и то и другое. Видеопамять так и не получилось разместить в SDRAM. Какие то полоски на экране и помехи. В IRAM видеопамять работает.

А так в общем все работает.

Чтобы не было выпадения картинки когда видеопамять в SDRAM, надо разместить её в кэшированной областе. Честно говоря я не помню как конкретно, но кажется вот так
int16 Array[VIDEOSIZE];
#define VIDEOMEMORY Array+0x4000
В понедельник загляну на работе к свой код и исправлю если что.
А по поводу SDRAM, у меня ядро на 208 а память если память не изменяет на 104MHz и всё работает. Я скопировал настройки и железо с платы Phytek. Могу поделиться в понедельник если надо
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:56
Рейтинг@Mail.ru


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