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

 
 
> LPS 2478 errors, Проблема с контроллером внешнейй памяти EMC
argentum
сообщение Aug 25 2009, 06:01
Сообщение #1


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

Группа: Участник
Сообщений: 79
Регистрация: 26-04-09
Из: Москва
Пользователь №: 48 283



Добрый день!
Пытаюсь завести внешнюю 16-ти разрядную SRAM память (CY7C10410V33-10ZX1) на LPS2478 с ревизией "C" при помощи контроллера внешней памяти (EMC).
Контроллер категорически выдаёт неверные сигналы WE, BLE,BLH. Естественно ничего не пишется и не читается.
Скажите, кто-нибудь работал с EMC на этом контроллере? Это мой косяк или его?

Ну и вообще, может быть, кто-то ещё хочет поделиться наблюдениями за странным поведением этого девайса?
Приглашаю к обсуждению, так сказать.
С уважением, Ag
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
argentum
сообщение Aug 25 2009, 08:58
Сообщение #2


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

Группа: Участник
Сообщений: 79
Регистрация: 26-04-09
Из: Москва
Пользователь №: 48 283



2 Andy

Буду очень благодарен, если поможете

Вот код инициализации:
CODE

void EMC_init (void)
{

EMC_CTRL |= 1;
PCONP |= (1 << 11);

// Инициализация ног


PINSEL6 = 0x55555555;
PINSEL7 = 0x55555555;
PINSEL8 = 0x55555555;
PINSEL9 = 0x55555555;

//Ноги инициализированы


EMC_CONFIG = 0; // Litle indian

EMC_STA_CFG0 |=1; // 16ти разрядная память

EMC_STA_CFG0 |= (1<<6); // Выбор девайса низким уровнем

EMC_STA_CFG0 |= (1 << 7); // Управление сигналами BLS0 и BLS1 для 16ти разрядной памяти

EMC_STA_CFG0 |= (1 << 8); // Разрешение задержек

EMC_STA_CFG0 &= ~(1 << 20); // Сбросить защиту от записи

// Выставить макс. задержки
EMC_STA_WAITWEN0 = (0x0F && 0x0f);
EMC_STA_WAITOEN0 = (0x0F && 0x0f);
EMC_STA_WAITRD0 = (0x0F && 0x0f);
EMC_STA_WAITPAGE0 = (0x1F && 0x1f);
EMC_STA_WAITWR0 = (0x1F && 0x1f);
EMC_STA_WAITTURN0 = (0x0F && 0x0f);
EMC_STA_EXT_WAIT = (0x1FF && 0x01ff);
}


А вот нехитрые опыты с записью и чтением:

CODE
while
{
ex_mem = (DWORD *) 0x80000000;
*(ex_mem) = 0xAA;
can_msg_out[0].data[0] = (char)(*ex_mem) ;
CAN1_SendStdMessage( &can_msg_out[0] );
}

Результаты считывания выдаются в проверенный CAN.

Считывается из этого адреса всегда 0xFF.
Байт статуса EMC_STAT всегда 0x05;

Сигналы:
0E - импульсы с частотой 125кГц и скважностью примерно 10%
WE - 3,3В постоянно
BLS0 и BLS1 - 3,3В постоянно
СE - постоянно 0В

Косяков получается что-то очень много:
WE должен менять уровент в зависимости от того, запись производится или чтение
BLS0 и BLS1 должны быть внизу хоть иногда.

На всякий случай прикладываю док на SRAM/
Прикрепленные файлы
Прикрепленный файл  CY7C1041DV33.pdf ( 403.45 килобайт ) Кол-во скачиваний: 31
 
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 25 2009, 09:15
Сообщение #3


Гуру
******

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



Цитата(argentum @ Aug 25 2009, 10:58) *
// Выставить макс. задержки
EMC_STA_WAITWEN0 = (0x0F && 0x0f);
EMC_STA_WAITOEN0 = (0x0F && 0x0f);
EMC_STA_WAITRD0 = (0x0F && 0x0f);
EMC_STA_WAITPAGE0 = (0x1F && 0x1f);
EMC_STA_WAITWR0 = (0x1F && 0x1f);
EMC_STA_WAITTURN0 = (0x0F && 0x0f);
EMC_STA_EXT_WAIT = (0x1FF && 0x01ff);

Выше - ниже не смотрел, но если и остальное написано столь-же "тщательно", то надо начинать с букварей по 'C' sad.gif


--------------------
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 Текстовая версия Сейчас: 23rd July 2025 - 09:51
Рейтинг@Mail.ru


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