Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2018-дек-14 14:57

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2015-окт-21 09:24 
Не в сети

Зарегистрирован: 2009-май-29 16:09
Сообщения: 590
Откуда: АО "ПКК Миландр"
При чтении команд из внешней шины ядро тратит минимально 4 такта внутренние + WAIT_STATE на внешней шине, если WAIT_STATE=0 то следовательно 6 тактов.
При работе из внутренней памяти на частоте 144 МГц задержка также 6 тактов. Но при выполнении из внутренней памяти есть ускоритель, который при линейной программе работает быстрее, так как вычитывает дополнительные команды. То есть из внешней памяти быстрее никак не получиться.
Во вторых при частоте 144 МГц и WAIT_STATE=0 цикл чтения на внешней шине будет 2 такта, то есть длительность nOE будет порядка 7 нс, такое время порты вряд ли протянут плюс топология платы, так что на такой частоте из внешней памяти работать проблематично. А понижая частоту вы никак не приблизитесь к производительности выполнения программы из внутренней памяти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2015-окт-21 22:15 
Не в сети

Зарегистрирован: 2015-янв-09 10:28
Сообщения: 35
Andrey писал(а):
При чтении команд из внешней шины ядро тратит минимально 4 такта внутренние + WAIT_STATE на внешней шине, если WAIT_STATE=0 то следовательно 6 тактов.


Два такта берутся из
Длительности WE или OE - 1 такт
Предустановки адреса и данных перед сигналом WE или OE - 1 такт

Таким образом, программа из внешней памяти будет выполняться максимум на 1/6 тактовой частоты контроллера, тоесть для 144 МГц это 24 МГц

А какие задержки существуют в случае выполнения программы из внутреннего ОЗУ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2015-дек-08 09:58 
Не в сети

Зарегистрирован: 2015-фев-19 11:08
Сообщения: 2
Возникла необходимость использовать сигнал READY на выводе PF2 (ревизия МК - 4). Выставил соответствующий бит USE_READY разрешения опроса PF2 (14 бит в регистре RAM_CYCLESx). Настроил вывод на основную функцию. Однако при подаче разных уровней на ножку МК реакции никакой. Это ошибка МК или я что-то не так настроиваю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2015-дек-15 17:24 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Для ревизии 3 и более новых необходимо использовать вывод PF[0].
Для ревизии 1 и 2 необходимо использовать вывод PF[2].


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-03 17:05 
Не в сети

Зарегистрирован: 2014-сен-09 07:21
Сообщения: 23
Andrey писал(а):
При байтовом обращении:
A[1:0]=00 BE[3:0]=1110
A[1:0]=01 BE[3:0]=1101
A[1:0]=10 BE[3:0]=1011
A[1:0]=11 BE[3:0]=0111

Я пробую читать побайтно память 1645РУ4У на отладочной плате 1986ВЕ1Т. Данные неверные. При этом:
A[1:0]=00 BE[3:0]=1110
A[1:0]=01 BE[3:0]=1110
A[1:0]=10 BE[3:0]=1110
A[1:0]=11 BE[3:0]=1110

Так и должно быть?

Частота процессора 128 МГц. WaitState = 10, WS_Active = 5, WS_Setup = WS_Hold = 3. EBC_MEM_REGION = 0x60000000


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-03 21:12 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1187
Откуда: Тула
Режим доступа должен быть байтовый, а тут словный (32 бита) видимо.
EXT_BUS_CONTROL.LOW8 = 1;

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-04 11:42 
Не в сети

Зарегистрирован: 2014-сен-09 07:21
Сообщения: 23
С сигналами BE0-BE3 разобрался.

Не получается работать с 8-битными данным ни в одном из режимов [LOW16:LOW8]: 00, 01, 10.
Проверяю, сравнивая два массива uint8_t temp[256] и temp2[256].

Результат в temp[256]:
1) low16 = 0, low8 = 0
{20 FF FF FF 20 FF FF FF и т. д.}
2) low16 = 1, low8 = 0
{00 00 00 00 и т. д.}
3) low16 = 0, low8 = 1
{FF F8 F8 F8 F8 F8 F8 F8 и т. д.}

Не понимаю, с 8-битными так можно работать? Или как-то по-другому надо?

Код:
uint8_t * ptrRAM;
uint8_t * ptrRAM2;

ptrRAM  = (uint8_t*)(0x60000000);
ptrRAM2 = (uint8_t*)(0x60000000);

// Write RAM
for(i = 0; i < 256; i++)
{
   temp2[i] = i;
   *ptrRAM2++ = temp2[i];
}
      
//Read RAM
for(i = 0; i < 256; i++)
{
   temp[i] = *ptrRAM++;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-04 11:54 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1187
Откуда: Тула
проверьте тактирование и настройку ног. покажите весь проект, если что.
покажите осциллограммы.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-04 16:11 
Не в сети

Зарегистрирован: 2014-сен-09 07:21
Сообщения: 23
Вроде, осциллограммы нормальные.

Но когда я пишу в ОЗУ по адресу 0x60000000 256 байт число, например, 0х01, при чтении получаю:
F8 01 FD 01 00 01 01 01 00 01 01 01 00 01 01 01 00 01 01 01 ... И так с любым числом.

Режим сейчас low8 = low16 = 0.


Вложения:
RAM.zip [615.53 КБ]
Скачиваний: 17
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-04 16:12 
Не в сети

Зарегистрирован: 2014-сен-09 07:21
Сообщения: 23
Вложение:
WR_BE0_BE1_BE2_BE3.jpg
WR_BE0_BE1_BE2_BE3.jpg [ 297.29 КБ | Просмотров: 733 ]

Вложение:
WR_A0_A1.jpg
WR_A0_A1.jpg [ 223.5 КБ | Просмотров: 733 ]

Вложение:
RD_B3.jpg
RD_B3.jpg [ 200.76 КБ | Просмотров: 733 ]

Вложение:
RD_A0_A1.jpg
RD_A0_A1.jpg [ 213.81 КБ | Просмотров: 733 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-05 10:19 
Не в сети

Зарегистрирован: 2014-сен-09 07:21
Сообщения: 23
Тактирование портов не забыл:
Код:
   /* Enable clock on ports */
   RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTA, ENABLE);
   RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTB, ENABLE);
   RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTC, ENABLE);
   RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTD, ENABLE);
   RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTE, ENABLE);
   RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTF, ENABLE);


А на дате "пила"
Вложение:
RD_D1.jpg
RD_D1.jpg [ 154.37 КБ | Просмотров: 696 ]

Но при записи данные в порядке.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-05 12:48 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1187
Откуда: Тула
transformator писал(а):
А на дате "пила"
Вложение:
RD_D1.jpg

Но при записи данные в порядке.

Проверьте непосредственно на ногах ОЗУ эти же сигналы (RD, WR, D1). Это я вспомнил, что где-то в отладочной плате какого-то МК или в самом модуле расширения с ОЗУ был косяк... Думается, всё дело в "пиле" =)

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-05 15:57 
Не в сети

Зарегистрирован: 2014-сен-09 07:21
Сообщения: 23
С "пилой" разобрался. На линиях D0 - D2 подтягивающие к GND резисторы 10 кОм заменил на 68 кОм.

Но проблема не ушла. Кажется, при чтении данные выставляются не правильно.

Запись
Вложение:
WR_D0.jpg
WR_D0.jpg [ 236.84 КБ | Просмотров: 682 ]

Чтение
Вложение:
RD_D0.jpg
RD_D0.jpg [ 206.5 КБ | Просмотров: 682 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Внешняя SRAM
СообщениеДобавлено: 2018-окт-10 13:19 
Не в сети

Зарегистрирован: 2017-июл-14 15:02
Сообщения: 28
Откуда: АО "ПКК Миландр"
Модуль внешней памяти на базе микросхем 1645РУ4У разрабатывался прежде всего для работы с 32 разрядной шиной, в связи с чем, к сожалению, в разводке модуля была допущена ошибка, были перепутаны местами подключения к выводам микросхем памяти nBLE и nBHE (BE0 подключён к nBHE, а BE1 к nBLE). Из-за этой ошибки побайтовая запись приводит к тому, что младший и старший байт в микросхеме памяти будут перепутаны местами. Побайтовое чтение при этом оказывается невозможным. При работе же с 32 разрядными данными модуль памяти функционирует корректно.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB