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

 
 
> LPC2214 External Memory Interface, Непонятная временная диаграмма
amw
сообщение Nov 18 2006, 09:51
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Собственно к LPC2214 подключен внешний чип (НЕ ПАМЯТЬ) по параллельной шине.
Используется EMC BANK0 в восмиразрядном режиме.

При выполнении нескольких последовательно идущих операций записи CS0 устанавливается в активный уровень и "под ним" идут несколько импульсов BLS0.
При выполнении операций чтения все нормально - на каждый импольс OE идет свой импульс CS.

Кроме того, при чередовании операций чтения и записи, независимо от порядка следования, CS захваиывает один импульс OE, при чем всегда ближайший к BLS.

Пример 1:

char C = 2;

*((char *)0x80000000) = C;
*((char *)0x80000001) = C + 1;
*((char *)0x80000002) = C + 2;
*((char *)0x80000003) = C + 3;

Приводит к появлению одного импульса CS и четырех импульсов BLS. Длительность CS перекрывает все импульсы BLS.


Пример 2:

char C = 2;
char X;

*((char *)0x80000000) = C;
X = *((char *)0x80000001) ;
*((char *)0x80000002) = C + 2;
X = *((char *)0x80000003);

Приводит к появлению двух импульсов CS. Под первым СНАЧАЛА импульс OE для адреса 0x80000001, ПОТОМ импульс BLS для адреса 0x80000000. Под вторым то-же самое для адресов 0x80000002 0x80000003.

Собственно адрес не имеет значение.

Пример 3:

*((char *)0x80000000) = C;
X = *((char *)0x80000000) ;

Или:

*((char *)0x800000E0) = C;
X = *((char *)0x80000008) ;

Приводит к тому-же результату, то есть СНАЧАЛА импульс OE, ПОТОМ импульс BLS.

И еще.
Обнаружил странную зависимость. Если перед и после оперции записи есть загрузка PC (ветвление, вызов подпрограмм) то все идет как по маслу, на каждый BLS выдается свой CS.

Прошерстил даташиты и ераты. Ничего по этому поводу не нашел.

Кто нибудь может хоть как-то покоментировать?


В догонку.

Проверить на другом CS не имею возможности ввиду занятых пинов другими функциями.

И вопрос:
Неужели это MAM такие фортели выкидывает?


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
radist
сообщение Nov 19 2006, 21:18
Сообщение #2


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

Группа: Свой
Сообщений: 122
Регистрация: 24-05-05
Пользователь №: 5 329



наблюдал этот эффект. много волос на себе порвал, пока понял, почему моё устройство работает, мягко говоря, не так. Единственное, что мне помогло получить отдельный cs на каждую операцию - это запись или чтение в другой CS. Запись или чтение во внутреннюю память почему-то не влияла. То ли это EMC как-то "оптимизирует" свою работу, то ли просто ошибка. Я перестал над этим думать, пока не столкнулся с чудесами контроллера внешних прерываний. Просто принял по умолчанию, что данный контроллер работает именно так.
Ктати, ещё одно интересное наблюдение есть: при выключении бита RBLE устройство перестаёт работать окончательно, хотя линий bls не использует, а работает исключительно по cs,oe,we
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 19 2006, 21:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(radist @ Nov 19 2006, 23:18) *
Я перестал над этим думать, пока не столкнулся с чудесами контроллера внешних прерываний. Просто принял по умолчанию, что данный контроллер работает именно так.

Контролер там самый обычный - лицензионный. Проблемы описаны в Errata. Других (кроме еще больших, нежели описано) хлопот с инициализацией EINT0 для работы по фронту не замечал.
Везде используются все четыре по полной программе.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:38
Рейтинг@Mail.ru


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