Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как компактно хранить таблицу 4000*32bit в RAM'е
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
cornflyer
для процессора lpc2148 32kb RAM
нужно компактным способом хранить в RAM'е таблицу 4000*32bit = 16kb
причем должна оставаца возможность доступа к любой ячейке этой таблицы...
есть идеи?
zltigo
Цитата(cornflyer @ Feb 3 2009, 16:52) *
есть идеи?

А, что есть хоть легчайшая тень каких-то проблем???
richie
Сморожу...

Если компактность подразумевает под собой уменьшение используемого объема ОЗУ,
то естественное желание применить какое-нибудь архивирование.
Способ архивирования может зависить от хранимых данных.

Ну и написать функции для обращения к этим данным:
WriteData( addr, value );
value = ReadData( addr );
cornflyer
да, архивировать нужно... но я пока не придумал как
фактически эта таблица являеца буффером суммарного спектра
и нужно ее успевать инкрементировать за 500 мсек...
кроме таблицы есть 9 modbus интерфейсов...
еще есть алгоритм поиска пиков
и вот я думаю как максимально ужать спектрометрический буффер.....
и как это все вместить в RAM этого проца...
zltigo
Цитата(cornflyer @ Feb 3 2009, 17:04) *
да, архивировать нужно...



И сразу забыть про произвольный доступ. Само архивирование на лету обычно проблем не составляет, правда и результат паковки скромный будет. Если есть образчик, то могу попробовать подпаковать простейшим потоковым алгоритмиком и посмотреть на результат. А контроллеры на бакс дороже имеют внешнюю 8bit мини шину - 2 банка по 64K.
MALLOY2
Если габариты жмут, можно поставить SPI SRAM
sergeeff
Цитата(MALLOY2 @ Feb 3 2009, 20:07) *
Если габариты жмут, можно поставить SPI SRAM


Про SPI SRAM - это вы круто! Человеку и так скорости не особо хватает.
MALLOY2
Цитата
Человеку и так скорости не особо хватает


Человеку памяти не хватает, про скорости в топике ничего не сказано, да и SPI SRAM будет быстрее чем упаковка распоковка.
KostyantynT
Цитата(MALLOY2 @ Feb 4 2009, 09:48) *
Человеку памяти не хватает, про скорости в топике ничего не сказано, да и SPI SRAM будет быстрее чем упаковка распоковка.

SPI SRAM редкий зверь однако, да и в этом кристалле он тормознутый, 16 кб памяти из 32 - не вижу особых проблем. Можно еще использовать 8 кб USB памяти под стек и другие фичи.
cornflyer
какой самый быстрый SPI SRAM порекомендуете?
у меня еще осталось место в ПЛИС и пара свободных ног,
так что есть возможность подключить SPI к ПЛИС 20 МГц
между плис и процессором есть 16 битная шина
так что шанс на успех есть
MALLOY2
Посмотрите на эту N256S0830 ее покрайней мере купить можно, есть еще и у микрочипа но они медленней.


Мануал: http://delanet.ru/images/stories/pdf/N256S0830HDA.pdf
MikePic
Если ещё и энергонезависимая (F-RAM), то у Ramtron есть FM25L512: 64КБайт, 20МГЦ SPI, Unlimited Read/Write Cycles, 10 Year Data Retention, NoDelay™ Writes.
Если просто serial SRAM, то гляньте у Microchip 23K640 (очень скромно - 8КБайт, 16МГц), OnSemi N25S830HA (32КБайт, 20МГц), да и вообще - гуглите по "serial SRAM"

З.Ы. Пока отвечал, MALLOY2 меня опередил smile.gif
cornflyer
ура! нашел efind'ом N256S0830HDA (3V/25MHz/256kbit) - продаеца в платане и еще много где
zltigo
Цитата(cornflyer @ Feb 5 2009, 09:17) *
между плис и процессором есть 16 битная шина
У поминаемого Вами "lpc2148" никаких шин нет как класс. О  чем вообще речь?

 
cornflyer
я реализовал софтовую 8-битную шину между lpc2148 и ПЛИС
внутри ПЛИС все регистры я объединил в единую адресную страницу
и сделал функции чтения\записи smile.gif

8-бит для ввода\вывода
2-бит для статуса операции (00-control register R/W, 01-low address,10-high address,11-data)
1-бит - строб чтения\записи
1-бит - индикатор режима операции чтение\запись
zltigo
Цитата(cornflyer @ Feb 5 2009, 12:01) *
я реализовал софтовую 8-битную шину...



Дурдом. Сначала безумным ногомаханием через эмуляцию мультиплексированной 8bit шины к ПЛИС а потом с нее через SPI на последовательную память.  При этом если контроллер без FIO, то проиграет даже по скорости SPP, не говоря уже о затратах ресурсов контроллера.

http://www.telesys.ru/wwwboards/mcontrol/2...es/592756.shtml
cornflyer
архитектура проекта такова что всего хвататет smile.gif
безо всяких FIO шина работает на частоте 1МГц и больше не надо
(частота шины LPC2148 15 МГц, цикл записи 7 тактов, чтение - 8)
просто я всегда думаю как сделать лучше, быстрее и т.п.
К ПЛИС подключено 8 плат цифровых спектрометрических АЦП с нулевым мертвым временем (к ним подключены 8 сцинцилляционных детекторов гамма-квантов площадью 0.4 кв.м. каждый с разрешением <8%, с экраном от магнитного поля земли, со встроенной автостабилизацией, с активной защитой от фона)
с экспозицией 1 сек 8 спектров копяца и затем суммируются без потери разрешения с учетом калибровочных таблиц, хранящихся в банках памяти ПЛИС
суммирование занимает не более 2 мсек, после чего процессор через шину забирает суммарный спектр 1024х32(с разрешением <8% диапазон 3Мэв), космический счет (фотоны E>=3МэВ), нейтронный счет и прочие параметры и шлет через последовательный порт в ПК....
ПК оснащен GPS'ом и пишет спектры и GPS координаты в базу данных.
Спектры достаточно хорошего качества чтобы осуществлять изотопный анализ....
Изначально каждый из 8 спектрометрических каналов калибруется 10-20 источниками
калибровочные коэффициенты пишуца во внешний EEPROM
после включения питания запускаеца основной режим работы - отсылка раз в секунду инфы в ПК
но!!!! для крутизны девайса все 8 трактов постоянно подкалибровываюца (по изотопу Калия) и этим занимаеца процессор
для этого копяца 8 спектров... ищеца центры пиков, пересчитываюца коэффициенты эенргетических полиномов
из коэффициентов генеряца калибровочные таблицы и записываюца через шину в ПЛИС....
получилась очень чувствительная система aka "черный ящик", выплевывающая с заданной экспозицией инфу, работает в диапазоне -60...+80
сама коробочка (материнская плата с ПЛИС и lpc + 8 плат АЦП, которые втыкаюца в мамку) занимает мало места 150х100х70 мм, кушает всего 3Vх500 mA
габариты детекторов 1х1х1м
все это будет ставица в вертолеты
они будут летать и мониторить с воздуха....
да, забыл... вся система весит всего 120 кг (!!!!)
для сравнения - у французов весит 2000кг и нет автостабилизации (т.е. защиты от засветки ФЭУ и температурных колебаний)

P.S. оперативки не хватило чтобы подкалибровывать сразу все 8 трактов....
придеца оставить как есть - последовательную подкалибровку smile.gif
а если к вертолету еще приделать компактную нейтронную пушку (например линейный ускоритель позитронов + тритиевая мишень)
тогда можно будет ловить нейтронный и гамма-отклик из-под земли....
например, много ли там углеводородов.... или еще чего smile.gif
тока лучше такой вертолет делать беспилотным и близко к нему не подходить wink.gif
GetSmart
Ну прямо шедевр инжинерной мысли biggrin.gif

Но на вопрос "почему бы не использовать SPI1 на 1/2 PCLK, подключённый непосредственно к Serial SRAM ?" Вы так и не ответили? Зачем напрягать плисину и параллельную шину?

PS. LPC214x имеет Fast IO, так что можно сделать параллельную шину на чтение/запись = 3/2 такта.
cornflyer
я решил отказаца от внешнего SPI SRAM
работает он недостаточно быстро
MikePic
Да поставьте вы "для крутизны устройства" нормальный проц типа 2468 и навесьте памяти SDRAM хоть гиг, да и асинхронная шина с плиской будет корректнее реализована. Потратите +3$, зато бортовых расчётов можно вагон сделать, а заказчик при таком девайсе разницы в цене девайса не заметит, но софтом можно будет потом не напрягаясь дополнительные бабки за "фишки" получать
cornflyer
да, хороший процессор. корпус нормальный есть - SOT459-1 208 ног
просто на плате места уже не осталось - для этого процессора придется 2-й этаж над ПЛИС делать
похоже что в нем нет MMU(memory managment unit) - а это значит если ставить на него ECOS, то он не увидит внешний SDRAM....
KostyantynT
Цитата(cornflyer @ Feb 6 2009, 15:26) *
да, хороший процессор. корпус нормальный есть - SOT459-1 208 ног
просто на плате места уже не осталось - для этого процессора придется 2-й этаж над ПЛИС делать
похоже что в нем нет MMU(memory managment unit) - а это значит если ставить на него ECOS, то он не увидит внешний SDRAM....

А зачем ставить ECOS чтобы увидеть внешнюю SDRAM?
cornflyer
ECOS имеет смысл ставить если надо работать с LCD дисплеем
а без внешней оперативки - ECOS смысла ставить нет
например, в процессорах CIRRUS LOGIC есть MMU(одн делает переадресацию) и ECOS получает полноценную оперативку
ставишь внешний SDRAM, включаешь опцию кэширования - и ECOS работает оч быстро
sergeeff
Совершенно офигительный подход к проектированию. Из описания следует, что эта система малотиражная и собственно процессор в ней - доли процента от общей стоимости. Так за каким же с самого начала ставить что-то заведомо маломощное, которое и текущие задачи еле-еле может обрабатывать. А завтра стукнет в голову начальству чего-то добавить - все сначала начнем разрабатывать?
defunct
Цитата(cornflyer @ Feb 6 2009, 13:26) *
да, хороший процессор. корпус нормальный есть - SOT459-1 208 ног

AT91RM9200/AT91SAM9260 и MMU есть и ARM9 ядро. И корпус такой же.

Цитата
похоже что в нем нет MMU(memory managment unit) - а это значит если ставить на него ECOS, то он не увидит внешний SDRAM....

А Вы шепните ему на ушко, что SDRAM есть, если не поймет тогда поставите более адекватную систему.

Для того чтобы рассуждать, что значит наличие или отсутсвие MMU нужно четко представлять за что он отвечает.
MMU это такая хрень которая:
1. может транслировать виртуальные адреса в физические для дебильных систем которым физ памяти мало;
2. организовывать read-only регионы для защиты например кода ядра операционки;
3. выполнять range-checking (выход за границу физ памяти);
4. задавать зоны действия кеш памяти (актуально для многопроцессорной системы для создания shared memory).

Как видно за видимость/невидимость SDRAM'а MMU не отвечает.
Если у Вас в системе планируется всего один проц и не переживать насчет того, что пользовательская программа может затереть ядро операционки, то без MMU можно обойтись.

Цитата
ECOS имеет смысл ставить если надо работать с LCD дисплеем

Извините, но после описания системы которую Вы разрабатываете, Ваши посты с упоминаниями об ECOS'е смотрятся мягко говоря неадекватно (не в тему вообще).

Со стороны ветка выглядит примерно так:
- У меня черная куртка
- А у меня тоже синяя
cornflyer
хорошо smile.gif сейчас расскажу как было
когда мне показали ТЗ, я предложил архитектуру проекта, описанную выше...
и проект был поделен на части между разработчиками
изначально я делал материнскую плату, логику ПЛИС(накопление и суммирование спектров), платы спектрометрических АЦП
инженер-физик делал детекторы, активную защиту, экраны магнитного поля
с программистом мы придумали шину для чтения\записи спектров и т.п.
программист выбрал lpc2148(хотя я предлагал поставить процессор с большим кол-вом ОЗУ) и я развел плату 6-слойку
и в итоге программист оказался занят другим проектом
и мне пришлось программировать этот lpc2148, что в мои планы не входило
в итоге кривизна системы - в неудачном выборе процессора
в следующей версии поставлю другой процессор, lcd-дисплей, внешний SDRAM и ECOS
richie
Что значит "засветка" ФЭУ?
С ФЭУ можно работать в счетном режиме и в токовом. Токовый как раз для достаточно сильного излучения.

Вообще для таких целей деавайс представляется как кокупная DIMMPC-процессорная плата,
втыкаемая в Вашу материнскую. И вычислительной мощи хватит и ресурсов и коммутации.
А такой, извините, "еврейско-хохляцкий" подход, с экономией на микросхемах, череват в
кроилове при проектировании и попадалове в сопровождении.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.