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

 
 
> rm9200 сбой Memory Controller
astro
сообщение Nov 5 2009, 10:39
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Шины данных и адреса в проце rm9200 используют sdram и sram-like девайс. Цепляю картинки с (1) правильными циклами чтения-записи и (2) со сбоями. Во втором случае ОС задерживает циклы, обрабатывая другие задачи или прерывания и в результате происходит сбой, данные в следующих циклах читаются нормально. В чем может быть проблема?

Верхний сигнал SC на sram, нижний бит данных.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 20)
MTh
сообщение Nov 5 2009, 11:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771



Цитата(astro @ Nov 5 2009, 14:39) *
Шины данных и адреса в проце rm9200 используют sdram и sram-like девайс. Цепляю картинки с (1) правильными циклами чтения-записи и (2) со сбоями. Во втором случае ОС задерживает циклы, обрабатывая другие задачи или прерывания и в результате происходит сбой, данные в следующих циклах читаются нормально. В чем может быть проблема?

Верхний сигнал SC на sram, нижний бит данных.


Какие сигналы показаны на осциллограммах? Вернее что смущает в бите данных? Двойной прыжок?
SC наверное CS?

Сообщение отредактировал MTh - Nov 5 2009, 11:57
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 5 2009, 11:56
Сообщение #3


Гуру
******

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



Цитата(astro @ Nov 5 2009, 13:39) *
Верхний сигнал SC на sram, нижний бит данных.

SC - CS?
Напишите, что именно неправильно на второй картинке.
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 5 2009, 12:21
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Опечатался CS конечно. Первый CS запись, затем три чтения. Смущает что на шину данных после первого чтения sram становится sdram, а последующий цикл чтения идёт со сбоем. На шине данных должны быть нули, а там осталась единица.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 5 2009, 16:12
Сообщение #5


Гуру
******

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



Тем не менее, к картинкам придраться трудно, ничего подозрительного они не содержат.
Что за девайс подключен к шине?
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 6 2009, 10:42
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Подключен Циклон2. Он тоже под подозрением, ищу ошибку в коде.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 6 2009, 11:02
Сообщение #7


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Ляпа у вас, скорее всего аппаратная, а не программная. Надо внимательно проверить как у вас sram-like устройство подключено. Второе. Задержка на второй осциллограмме очень мала, если вы считаете, что в этот момент возникло прерывание. Интересно, при обращении к Циклону у вас всегда считывается "1"?
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 6 2009, 13:34
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



> Интересно, при обращении к Циклону у вас всегда считывается "1"?

да, каждый раз после задержки цикла чтения.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 6 2009, 14:34
Сообщение #9


Гуру
******

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



Цитата(astro @ Nov 6 2009, 13:42) *
Подключен Циклон2. Он тоже под подозрением, ищу ошибку в коде.

Учитывая то, что на картинке не видно ни малейших попыток с его стороны выставить '0', то я бы тоже грешил на ошибку в коде.
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 6 2009, 17:21
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Нашел один баг. В свежескачанном даташите на rm9200, стр.182 Fig.18-39 нарисована диаграмма обмена, которую я повторил. Но почему-то адрес по которому должно размещаться старшее слово (второй) контроллером памяти не изменяется, т.е. addr+1 не выставляется. У меня в результате сбой в алгоритме. И что делать теперь - читать словами что-ли? Даташит вроде перепахал полностью, ничего нет на эту тему.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 6 2009, 17:27
Сообщение #11


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Скорее всего CS для этого устройства запрограммирован как для 16-разрядного устройства, а ваше устройство - 8-битное.
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 6 2009, 17:34
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Вот конфиг:

//* Configure register for CS5
AT91C_BASE_SMC2->SMC2_CSR[5] = AT91C_SMC2_WS_EN // 1 - Wait State Enabled
| AT91C_SMC2_NWS_1 // Number of Wait States = 1
| AT91C_SMC2_TDF_0 // Data Float Time = 0
| AT91C_SMC2_BAT_16 // 1 - Byte Access Type 16 bit
| AT91C_SMC2_DBW_16 // 01 - Data Bus With 16 bit
| AT91C_SMC2_DRP_STD // 0 - Standart Data Read Protocol
| AT91C_SMC2_RWSETUP_0 // Read and Write Setup Time = 0
| AT91C_SMC2_RWHOLD_0; // Read and Write Hold Time = 0


Девайс (Циклон) программируемый, разрядность обмена ограничивается только шинами АРМа. Сейчас сконфигурирован под 16 бит. Читается регистр int (т.е. 2 слова или 4 байта).
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 6 2009, 19:03
Сообщение #13


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Надо настроить вывод PC11 как CS5:

Код
   AT91_SYS->PIOC_ASR = AT91C_PIO_PC11;   // Select Peripheral A function
   AT91_SYS->PIOC_PDR = AT91C_PIO_PC11;   // Disable PIO controller and enable peripheral

в самом начале до загрузки AT91_SYS->EBI_SMC2_CSR[5]
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 7 2009, 05:24
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



PC11/NCS5/CFCE1 по ресету в NCS5, а иначе бы я не смог показать CS на картинках. Конфигурировать дополнительно пробовал, безрезультатно.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 7 2009, 10:03
Сообщение #15


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(astro @ Nov 7 2009, 08:24) *
PC11/NCS5/CFCE1 по ресету в NCS5, а иначе бы я не смог показать CS на картинках. Конфигурировать дополнительно пробовал, безрезультатно.

По reset'у - это вход, как и все порты. В моем проекте я использую CS7 и делаю все так, как вам рассказал - без проблем.
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 8 2009, 10:23
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Вопрос снимается.

Для тех кто соберется использовать Memory Controller в rm9200: имейте в виду что процессор очень критичен к моментам перевода шины данных в высокоимпедансное состояние. Все диаграммы обмена по шине данных должны соответствовать один-в-один нарисованным в даташите. У меня в коде была инструкция vhdl (loop) которая не синтезировалась за один такт, что приводило к сбоям в обмене.

ps т.е. отпускание шины в Z-состояние должно происходить быстрее, чем 1/4 клока (по переходу RD в '1'). Не каждым осциллографом это можно увидеть.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 8 2009, 13:21
Сообщение #17


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Для этого и предусмотрены программируемые задержки при формировании CS.
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 8 2009, 19:04
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Вобщем да, но мне нужна максимальная скорость обмена, лишние задержки при этом не нужны.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 8 2009, 20:33
Сообщение #19


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Так и не понял - сами ведь пишете, что циклон не успевает выполнить операцию при определенных условиях. Значит задержка нужна.
Go to the top of the page
 
+Quote Post
astro
сообщение Nov 9 2009, 11:57
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 30-11-06
Пользователь №: 22 960



Когда разместил вопрос, то не успевал, теперь успевает. Тактовая частота циклона (чип 8 speed grade) 250МГц , единственная задержка которую пришлось пока оставить это Wait State = 1 clk. Если буду применять более быстрый чип, и эту задержку можно будет убрать.

Интересно, а в вашем проекте какие параметры удалось получить?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 9 2009, 12:02
Сообщение #21


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Я использую настоящую sram с батарейкой. Соответственно количество wait state было выбрано исходя из быстродействия памяти, все остальные задержки по нулям.
Go to the top of the page
 
+Quote Post

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

 


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


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