Що є гарним вибором для ARM для взаємодії із зовнішньою пам'яттю?


13

Я щойно завершив проект за допомогою мікросхеми LPC2132, але зіткнувся з проблемами з використанням всього 64 КБ оперативної пам’яті.

Для свого наступного проекту я хотів би використати щось, на що можна посилатися на зовнішню, значно більшу мікросхему пам'яті. Який тип ARM може це зробити, і що мені потрібно зробити, щоб два пристрої розмовляли?


1
про яку пам’ять ми говоримо про SRAM, SDRAM, DDR, DDR2, DDR3?
Джей Аткінсон

1
Ніякого роду зокрема. Щось більше, ніж 64 к ...
самоз

Відповіді:


10

Вам не потрібен MMU для зовнішньої пам’яті оперативної пам’яті, визначальним фактором, якщо він вам потрібен, є зовсім окрема проблема від просто необхідності більше місця. Якщо ви кодували безпосередньо метал, це може полегшити ваше життя, не маючи MMU. Я також хотів би зазначити, що MMU практично ніколи не є зовнішнім компонентом, а скоріше на SoC-штампі.

Ви можете знайти ARM SoC в багатьох сім'ях, які дозволяють зовнішню пам’ять від ARM7 увімкнути, наприклад, серія NXP LPC2212 не найкраще, просто перший ARM7 SoC, який з'явився в Google з зовнішнім інтерфейсом пам'яті, є безліч варіантів .

Я зверну більше уваги на особливості різних ядер у сімействах ARM, оскільки ви можете знайти майже всі їх у SoC із зовнішніми контролерами пам'яті.

Тепер щодо того, який тип пам’яті вам потрібен і як змусити його працювати, це залежить від обраного вами SoC та пам'яті, яку підтримує зовнішній контролер пам'яті. Наприклад, підключений ARM7 SoC i підтримує зовнішню SRAM, а також флеш-пам’яті та диски, підтримує до 4 банків на 16 МБ, щоб ви могли одночасно підключити зовнішній спалах та SRAM до нього.

Ви можете використовувати окремі оперативні пам’яті та флеш-пам’яті. Є також пакети під назвою MCP (Multi Chip Package), які можуть включати як спалах, так і таран у 1 пакет. Те, як ви вибираєте ці пристрої, залежить від багатьох факторів, вам потрібно буде конкретніше щодо вашої програми.

Наскільки просто це підключити, залежить від необхідної вам швидкості. Більшість контролерів зовнішньої пам'яті мають програмовані тактові частоти. Тактова частота інтерфейсу пам'яті може бути дуже високою принаймні 10 МГц і, ймовірно, набагато вище. Коротше кажучи, вам, ймовірно, не доводиться щось подібне, вам потрібно розробити друковану плату і приділити особливу увагу проблемам цілісності сигналу для цих ліній.

Ваша найкраща ставка - вибрати ядро, в яке ви хочете пограти, і знайти одну з безлічі плат для розробки там із зовнішньою пам’яттю.


Дякую за відповідь Марк. Мене збентежило, чи потрібен MMU чи ні. Дивлячись на Sparkfun, у них насправді у продажу є LPC 2294, який має зовнішню шину пам'яті. Я думаю, я піду з цим.
samoz

4
MMU використовується для відображення віртуального адресного простору на фізичні пристрої. Він використовується операційними системами для ізоляції пам'яті різних процесів, для пейджингу, вирішення питань фрагментації пам'яті, відображення динамічних апаратних пристроїв пам'яті тощо. Він віртуалізує підсистему пам'яті. У більшості випадків вам потрібен MMU, лише якщо ви хочете запустити операційну систему з повним набором функцій багатопроцесорної обробки. Наприклад, вам знадобиться MMU для запуску повного ядра Linux, хоча є uClinux, який був модифікований для запуску без MMU.
Марк

це нормально, щоб зовнішній eeprom працював у режимі SPI / IIC? Я з нетерпінням чекаю розширити флеш-пам’ять мого MCU, використовуючи 24c64 IC.
0xakhil

Це було б важко; вам потрібна гарна дошка, дуже короткі дроти (наприклад, 1 дюйм) і дуже повільні тактові годинники (я б сказав, щоб уникнути нічого, що перевищує 2 МГц). Я б використовував резистори 200 Ом замість проводів на всякий випадок, щоб отримати повільніший час підйому / падіння. Пам’ятайте, що GND також повинен бути коротким між фішками. Це не зламає жодного рекорду, але дасть вам підтвердження концепції, яку ви можете перекласти на кращу дошку.
Гільєрмо

5

Більш велика серія процесорів STM32 (32-розрядне ядро ​​Cortex-M3) має FSMC, який є гнучким контролером статичної пам'яті. Завдяки цьому ви зможете підключити Flash, RAM та інші периферійні пристрої пам'яті, такі як LCD та інші.

Я можу порекомендувати STM32F103ZET6, як сказав tcrosley, і ви можете отримати плату розробки, включаючи flash та sram на ebay за $ 68 - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411


попередження, будь-яка зовнішня пам'ять, яку ви додаєте до STM32x, не буде такою швидкою, як внутрішня SRAM або внутрішня Flash. Як на 6-9X повільніше. Якщо вам потрібна швидка пам'ять, переконайтеся, що вона внутрішня. Я роблю проект з PSRAM 16MB на STM32, і це досить повільно, якщо ви використовуєте його як пам'ять загального призначення.
Марк Лаката

1
Ви можете змусити FSMC / PSRAM працювати швидше, але ви не можете просто відобразити його в звичайний простір пам'яті, тобто в купу пам'яті. Вам доведеться використовувати спеціалізований доступ DMA.
Марк Лаката

4

Нещодавно у мене виникли подібні вимоги до нового проекту, і я вибрав STMicro STM32F103ZET6 (ARM 32-розрядний Cortex-M3), з 512K внутрішнього Flash та 64K внутрішньої оперативної пам’яті приблизно за 10 доларів США. Він має контролер пам'яті, який може адресувати до 64 МБ зовнішньої пам'яті (26 адресних біт). Випускається в 144-контактному пакеті LQFP. (Мені не подобається використовувати BGA для прототипів.) Я буду поєднувати його з 2 Мб Cypress SRAM, без необхідності будь-якого іншого клею (без мультиплексування).


Класно! Ви використовуєте дошку розвитку або ви зробили свою власну?
samoz

Мій місцевий представник STMicro дав мені "IAR KickStart Kit для STM32" iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/225, щоб грати; однак мікро - лише 64-контактний пакет, тому він не має штифтів FSMC, тому я можу в кінцевому підсумку отримати дошки із 144-контактним пакетом.
tcrosley

Я щось пропускаю? 26 біт можуть безпосередньо адресувати 2 ^ 6 = 64 М розташування. 512 Мб з цим означало б 8-байтові слова. Це повинно бути 512Mb?
XTL

1
@XTL: хороший улов, я виправив свою відповідь.
tcrosley

3

Може бути, Atmel AT91SAM9G20 ?

Це трохи звір (217-контактний пакет BGA), але це чудовий чіп за ціною. Якщо ви шукаєте щось більш дружнє для людей, можливо, спробуйте Atmel AT91M42800A . Я думаю, що це найменший MCU, який має апаратне забезпечення зовнішньої пам'яті, принаймні від Atmel. Це 144-контактний пакет LQFP.

Atmel має параметричний селектор: http://www.atmel.com/dyn/products/param_table_v2.asp?family_id=605&OrderBy=part_no&Direction=ASC

(Напевно, я повинен додати, що я не працюю в Atmel; я просто знаю їхні речі.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.