Перейти к содержанию
    

Забавно, что в архитектуре AVR формально присутствуют регистры RAMPX, RAMPY, RAMPD для работы с ОЗУ сверх 64 Кбайт. Скорее всего, эта потенциальная возможность никогда не будет осуществлена из-за дороговизны памяти и дешевизны более продвинутых ядер. Даже в AVR32 больше 64К ОЗУ пока нет.

 

А сколько нужно памяти в МК? Для каждой задачи - по-разному. Но изготавливаются микроконтроллеры по какому-то усреднённому соображению, наверное, из расчёта стоимости кристалла, а не потребности юзеров (где ассортимент АВРок от "no SRAM" до "Full 64Kbytes"?). Жалобы на нехватку ОЗУ нередки, вот недавно проскочила.

 

Нужно заметить, что память для разных целей нужна разная. Для локальных переменных и стека - быстрая, для буферов - большая. Вот последней-то (сравнительно медленной и большой) как раз и не хватает. Фактически на АВРке нельзя сделать более-менее нормальный буфер для временного хранения пришедших пакетов. У меня такая потребность возникает часто. Хочу хотя бы 32 Кбайта.

 

Какие решения предлагаются?

1) В некоторых АВРках можно подключить внешнюю память. Что это означает на практике? Что будет ещё как минимум 2 немаленьких корпуса на ПП (память и защёлка адреса) и будут заняты 16 I/O ног МК. И что будет пучок сравнительно длинных высокочастотных дорожек на ПП (гудбай, АЦП), то есть, место потенциальных граблей и необходимость повышенного внимания к аккуратности изготовления ПП и монтажу. Да, нерадостная картина.

2) Можно поставить FRAM. 32 Кбайта - это 4 бакса, и мы просто выходим за рамки интересующей ценовой категории. Не то.

3) Можно поставить последовательную SRAM, 32 Кбайта - примерно 1 бакс, управление по SPI 20 МГц. Вещь! Казалось бы, наилучшее решение, то что надо. Но вот что удивительно - такое впечатление, что я первый, кому это надо. Статус производства - Active, но на зарубежных складах их в наличии нет. Один поставщик согласился привезти их в Москву. Очень привлекательное предложение, хотя и потребуется ждать более 3 месяцев (т.к. эту память сначала нужно произвести!).

 

Я не могу понять, почему положение таково. Хочу услышать ответ на вопрос:

Как эмбеддеры выкручиваются из ситуаций с нехваткой оперативной памяти в МК?

 

Может быть, есть какой-то 4-ый вариант (кроме тех трёх, которые перечислены)?

Или может быть, берут заведомо более дорогой и мощный камень, несмотря на то, что с задачей справилась бы обычная АВРка, будь у неё больше памяти?

Всё-таки ATtiny+SerialSRAM < 3$, а за три бакса никакой МК с 32 Кбайтами ОЗУ не найти. Почему это кажущееся идеальным решение не популярно среди эмбеддеров? Может, они про него просто не знают...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

был в тои же ситуации. перешел на M16C ренесас, потребляемыи ток примерно такои же, цена чуть выще но ядро несравнимо развитая. ARM не годился т.к. не имеет умного тактирования ( STR75x чтото уже позволяет).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тоже сейчас столкнулся. Мне бы даже больше 64К надо. Ну на худой конец 64. И переферии практически никакой. Много таймеров, SPI, I2C. Сделал два контроллера. Один на м64 с внешней памятью, а второй на LPC2106. Поглядываю на at32uc3a. Но их пока нет. :(

 

Вру. Появились в каком-то ЗАО "Альтекс" по цене чуть ли не выше ap7000! Короче от 8$.

 

Несмотря ни на что, чем хорош Atmel - только объявлены - и уже доступны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Забавно, что в архитектуре AVR формально присутствуют регистры RAMPX, RAMPY, RAMPD для работы с ОЗУ сверх 64 Кбайт. Скорее всего, эта потенциальная возможность никогда не будет осуществлена из-за дороговизны памяти и дешевизны более продвинутых ядер.

Почему вы так говорите за Atmel, вы работаете у них главным инженером? Давно ходят слухи про XMega, на слайдах было, что будут устройства с контроллером DRAM, вот там эти регистры и пригодятся. AVR + 16Mb ОЗУ???!!!!

 

:bb-offtopic: так это же почти банковская организация памяти, то за что я бросил PIC-и возвращается мне на AVR-ках.

 

:bb-offtopic: этиже регистры нужно будет сохранять/восстанавливать в обработчиках прерываний, на что же это будет похоже.....

 

Даже в AVR32 больше 64К ОЗУ пока нет.

 

А сколько нужно памяти в МК? Для каждой задачи - по-разному. Но изготавливаются микроконтроллеры по какому-то усреднённому соображению, наверное, из расчёта стоимости кристалла, а не потребности юзеров (где ассортимент АВРок от "no SRAM" до "Full 64Kbytes"?).

64К RAM - это (65535 * 8 * 6 =) 3 миллиона транзисторов. AVR-ки делаются по 'толстым' техпроцессам, (потому что так проще сделать мощные выходные транзисторы и чтобы от 5 вольт работали) и соответственно площадь и цена такого контроллера с 64К в RAM будет большой.

 

Нужно заметить, что память для разных целей нужна разная. Для локальных переменных и стека - быстрая, для буферов - большая. Вот последней-то (сравнительно медленной и большой) как раз и не хватает. Фактически на АВРке нельзя сделать более-менее нормальный буфер для временного хранения пришедших пакетов. У меня такая потребность возникает часто. Хочу хотя бы 32 Кбайта.

 

нужно много RAM, берите контроллер сделанный по более тонкому техпроцессу (ARM, AVR32, ????), у него и память дешевле и за мощные порты не переплачиваете (правда за более мощное ядро плотите). НЕТУ одного контроллера на все случай жизни.

 

Или ставьте внешнею память.

 

 

Анатолий.

Изменено пользователем aesok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

proba - STR75x, M16C

SasaVitebsk - LPC2106

То есть, Вы вышли за рубеж $5 (даже $10). Мне хотелось бы остаться. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

proba - STR75x, M16C

SasaVitebsk - LPC2106

То есть, Вы вышли за рубеж $5 (даже $10). Мне хотелось бы остаться. :)

 

ATmega644 - 4KB RAM ~ 7$

ATmega640 - 8KB RAM ~ 10$

ATmega128 - 4KB RAM ~ 5$

 

Даже если учесть что в 640 намного больше перефирии чем в 644, я предпологаю что мега с 32 КB RAM стоила бы 15-20 баксов.

 

Анатолий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, Вы вышли за рубеж $5 (даже $10). Мне хотелось бы остаться. :)

LPC2105 5USD (www.mt-system.ru) 32K оставайтесь!

ATmega128 - 4KB RAM ~ 5$

и 8MHz. Улыбнуло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как эмбеддеры выкручиваются из ситуаций с нехваткой оперативной памяти в МК?

Со времен 51-х ставлю внешнюю память с защелкой и не ломаю голову насчет сложностей изготовления и доп. корпусов. Работает надежно, просто и быстро. Поддерживается отладчиками (при отладке видно и внешний и внутренний рам, просто как один общий RAM, может быть использована под стек и под heap без применеия изощренных драйверов.

 

Этот подход оправдывает себя вдвойне, когда к шине подкючается что-то еще - FPGA / NIC/ VGA контроллер.

 

LPC2105 5USD (www.mt-system.ru) 32K оставайтесь!

Это тоже вариант. Присоединяюсь.

 

и 8MHz. Улыбнуло.

не 8, а 16Mhz. 3 такта на выбоку из внешней памяти.

 

Зы, 4Kb внутренней (одно-тактовой памяти) отдаются под стек и под очень критические данные, внешний RAM - все остальное.

 

Еще варинты мк с шиной памяти:

m162 - 2.5$

m64 - ~4$

at89S52 - 1$ (но возможно придется еще и внешний ROM ставить) :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще варинты мк с шиной памяти:

m162 - 2.5$

m64 - ~4$

Есть ещё и ATmega8515 - 1.47$

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LPC2105 5USD
Ценой удивили. А как там с обвязкой? Тинькам-то для работы обвязка совсем не нужна (кроме последовательной памяти)...

 

Этот подход оправдывает себя вдвойне, когда к шине подкючается что-то еще - FPGA / NIC/ VGA контроллер.
Не спорю, просто вопрос изначально поставлен про несложные компактные девайсы, стоимость которых меньше 5$.
Изменено пользователем CD_Eater

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не могу понять, почему положение таково. Хочу услышать ответ на вопрос:

Как эмбеддеры выкручиваются из ситуаций с нехваткой оперативной памяти в МК?

 

нехватает памяти, говоришь? Да... есть такой момент.

Мы тоже с этим же столкнулись. Наш девайс должен опрашивать около двухсот устройств в 485-ой сетке, полученные от них данные складывать в таблицу и затем эту таблицу отсылать компу через Ethernet.

 

Сначала я взял, что было под-руками -- готовый девайc: Mega8, FM25C256, ENC28J60. Во фраме организовал хранение таблицы адресов (запросов) и таблицы результатов. Все влазит, и даже свободное место остается. Но, узким местом стала память самой Меги. Дело в том, что Ethernet-контроллер и фрам сидят на SPI. И перекачивать инфу из фрама в ENC-ишку все равно нужно через оперативу Меги. А у нее всего один килобайт на все про все! В результате пришлось нарезать UDP-поток на мелкие пакетики по 300 байт. Т.е. примерно в пять раз мельче, чем хтелось бы. Не смертельно, но неприятно. Сейчас в нерешительности -- то-ли заложить Мегу64 с той-жк фрамой, то-ли одну SAM7S256 поставить.

 

Скорости не важны. Поток информации от 485-х девайсов в сторону компа не более 10 кбайт/с.

 

А вообще было бы не плохо иметь в своем распоряжении RAM с последовательной шиной. Поддерживаю!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LPC2105 5USD (www.mt-system.ru) 32K оставайтесь!
Впечатляет. Температурный диапазон, правда, подкачал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для АЦП пригодилась бы последовательная SRAM со встроенным счетчиком адреса, который бы сам автоинкрементировался: записал массив, сбросил счетчик и считываешь с нулевого адреса.

 

Когда-то искал такую ИС, нашел память для оперативной записи звука, проблемы те же - цена, нет интереса на поставку неск.штук, к тому же снята с производства, т.к. в говых устр. она интегрирована в ИС записи-воспроизведения звука.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ценой удивили. А как там с обвязкой? Тинькам-то для работы обвязка совсем не нужна (кроме последовательной памяти)...

 

Не спорю, просто вопрос изначально поставлен про несложные компактные девайсы, стоимость которых меньше 5$.

 

Обвески немного (Стабилизатор + BOD маленькие, перемычка для записи + разъём записи). Но мне ещё вычислительная мощность требуется. И разрядность тоже играет роль. Вон в соседней ветке типа пишется, что AVR имеет проигрыш по сравнению с PIC на сложных битовых операциях. Задачу не показали поэтому судить сложно. Но у меня что-то подобное произошло. Много операций битовых было и производительность упала. Чтобы её увеличить я перелопатил алгоритм таким образом чтобы, работая с байтом, обрабатывать сразу несколько битовых операций. Результирующая скорость возросла более чем в 2 раза. Если использовать 32-ух битное слово, то это поможет ещё поднять скорость раза в 3. Это не считая прямого роста производительности за счёт тактовой. Надо учитывать что LPC работает с флэш быстрее at91sam7. Правда с доставабельностью у меня проблемы возникли. Даже MT-Link не могу купить. Бред какой-то. Паять не хочу. И так времени не хватает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...