Một lựa chọn tốt cho ARM để giao tiếp với bộ nhớ ngoài là gì?


13

Tôi vừa hoàn thành một dự án sử dụng chip LPC2132, nhưng gặp vấn đề với việc sử dụng toàn bộ 64kb RAM.

Đối với dự án tiếp theo của tôi, tôi muốn sử dụng một cái gì đó có thể tham chiếu chip bộ nhớ ngoài lớn hơn nhiều. Loại ARM nào có thể làm điều này và tôi cần phải làm gì để khiến hai thiết bị nói chuyện?


1
Chúng ta đang nói về loại bộ nhớ nào về SRAM, SDRAM, DDR, DDR2, DDR3?
Jay Atkinson

1
Không có loại đặc biệt. Một cái gì đó lớn hơn 64k ...
samoz

Câu trả lời:


10

Bạn không cần MMU cho bộ nhớ RAM ngoài, yếu tố quyết định nếu bạn cần là một vấn đề hoàn toàn tách biệt với việc chỉ cần thêm dung lượng. Nếu bạn đã mã hóa trực tiếp vào kim loại, nó thực sự có thể giúp cuộc sống của bạn dễ dàng hơn khi không có MMU. Tôi cũng muốn lưu ý rằng MMU hầu như không bao giờ là thành phần bên ngoài mà là trên SoC die.

Bạn có thể tìm thấy các SoC ARM trong nhiều gia đình cho phép bộ nhớ ngoài từ ARM7 trở lên, ví dụ Dòng NXP LPC2212 không nói là tốt nhất, chỉ là SoC ARM7 đầu tiên xuất hiện trên google với giao diện bộ nhớ ngoài, có rất nhiều tùy chọn .

Tôi sẽ chú ý hơn đến các tính năng của các lõi khác nhau trong các gia đình ARM vì bạn có thể tìm thấy hầu hết tất cả chúng trong SoC với bộ điều khiển bộ nhớ ngoài.

Bây giờ là loại bộ nhớ bạn cần và làm thế nào để nó hoạt động, điều đó phụ thuộc vào SoC bạn chọn và bộ nhớ mà bộ điều khiển bộ nhớ ngoài hỗ trợ. Ví dụ, ARM7 SoC i được liên kết hỗ trợ SRAM bên ngoài cũng như flash và rom và hỗ trợ tối đa 4 ngân hàng 16 MB, do đó bạn có thể kết nối flash ngoài và SRAM với nó cùng một lúc.

Bạn có thể sử dụng RAM và IC flash riêng biệt, cũng có các gói được gọi là MCP (Gói đa chip) có thể bao gồm cả flash và ram trong 1 gói. Cách bạn chọn các thiết bị này phụ thuộc vào nhiều yếu tố, bạn cần phải cụ thể hơn về ứng dụng của mình.

Làm thế nào dễ dàng để kết nối phụ thuộc vào tốc độ bạn cần. Hầu hết các bộ điều khiển bộ nhớ ngoài có tốc độ xung nhịp lập trình. Tốc độ xung nhịp giao diện bộ nhớ có thể rất cao ít nhất là 10 MHz và có khả năng cao hơn nhiều. Nói tóm lại, rất có thể bạn không sắp xếp thứ gì đó như thế này, bạn cần thiết kế PCB và đặc biệt chú ý đến các vấn đề toàn vẹn tín hiệu cho các dòng này.

Đặt cược tốt nhất của bạn là chọn một lõi mà bạn muốn chơi và tìm một trong nhiều bảng phát triển ngoài đó với bộ nhớ ngoài trên đó.


Cảm ơn câu trả lời Mark. Tôi đã bối rối nếu một MMU là cần thiết hay không. Nhìn vào Sparkfun, họ thực sự có một LPC 2294 đang được bán ngay bây giờ, có một bộ nhớ ngoài. Tôi nghĩ rằng tôi sẽ đi với điều đó.
samoz

4
MMU được sử dụng để ánh xạ không gian địa chỉ ảo tới các thiết bị vật lý. Nó được sử dụng bởi các hệ điều hành để cô lập bộ nhớ của các quá trình khác nhau, để phân trang, giải quyết các vấn đề phân mảnh bộ nhớ, ánh xạ bộ nhớ các thiết bị phần cứng động, v.v. Nó ảo hóa bộ nhớ phụ của bộ nhớ. Trong hầu hết các trường hợp, bạn sẽ chỉ cần một MMU nếu bạn muốn chạy một hệ điều hành với đầy đủ các tính năng đa xử lý. Chẳng hạn, bạn sẽ cần một MMU để chạy kernel linux đầy đủ, mặc dù có uClinux đã được sửa đổi để chạy mà không cần MMU.
Đánh dấu

Có phải okey to Breadboard một eeprom bên ngoài hoạt động ở chế độ SPI / IIC không? Tôi mong được mở rộng bộ nhớ flash của MCU bằng IC 24c64.
0xakhil

Nó sẽ là khó khăn; bạn cần có một bảng mạch tốt, dây rất ngắn (ví dụ 1 inch) và đồng hồ rất chậm (tránh mọi thứ vượt quá 2 MHz, tôi muốn nói). Tôi sẽ sử dụng điện trở 200 ohm thay vì dây chỉ trong trường hợp, để có thời gian tăng / giảm chậm hơn. Hãy nhớ rằng GND cũng nên ngắn giữa các chip. Điều này sẽ không phá vỡ bất kỳ hồ sơ, nhưng sẽ cung cấp cho bạn một bằng chứng về khái niệm bạn có thể dịch sang một bảng tốt hơn.
Guillermo Prandi

5

Dòng bộ xử lý STM32 lớn hơn (lõi Cortex-M3 32 bit) có FSMC, đây là Bộ điều khiển bộ nhớ tĩnh linh hoạt. Với điều này, bạn có thể kết nối Flash, RAM và các thiết bị ngoại vi bộ nhớ khác như LCD, v.v.

Tôi có thể giới thiệu STM32F103ZET6 như tcrosley cũng đã nói và bạn có thể nhận một bảng phát triển bao gồm flash và sram trên ebay với giá $ 68 - http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=220619908411


cảnh báo, mọi bộ nhớ ngoài bạn thêm vào STM32x sẽ không nhanh như SRAM bên trong hoặc Flash bên trong. Thích 6-9X chậm hơn. Nếu bạn cần bộ nhớ nhanh, hãy chắc chắn rằng nó là nội bộ. Tôi đang thực hiện một dự án với PSRAM 16 MB trên STM32 và nó khá chậm nếu bạn sử dụng nó làm bộ nhớ cho mục đích chung.
Đánh dấu Lakata

1
Bạn có thể khiến FSMC / PSRAM đi nhanh hơn, nhưng bạn không thể ánh xạ nó vào không gian bộ nhớ thông thường, tức là cho bộ nhớ heap. Bạn sẽ phải sử dụng truy cập DMA chuyên dụng.
Đánh dấu Lakata

4

Gần đây tôi đã có một yêu cầu tương tự cho một dự án mới và đã chọn STMicro STM32F103ZET6 (ARM 32-bit Cortex-M3), với 512K Flash nội bộ và 64K RAM nội bộ với giá khoảng 10 đô la. Nó có bộ điều khiển bộ nhớ có thể giải quyết tới 64 MB bộ nhớ ngoài (26 bit địa chỉ). Có sẵn trong gói LQFP 144 pin. (Tôi không thích sử dụng BGA cho các nguyên mẫu.) Tôi sẽ kết nối nó với SRAM Cypress 2 MB, mà không cần bất kỳ loại keo nào khác (không cần ghép kênh).


Mát mẻ! Bạn đang sử dụng một bảng phát triển hay bạn đã làm cho riêng mình?
samoz

Đại diện STMicro tại địa phương của tôi đã cho tôi "Bộ khởi động IAR cho STM32" iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/225 để chơi cùng; tuy nhiên micro chỉ là gói 64 chân nên nó không có chân FSMC, vì vậy tôi có thể sẽ nhận được bảng với gói 144 pin.
tcrosley

Tui bỏ lỡ điều gì vậy? 26 bit có thể trực tiếp giải quyết 2 ^ 6 = 64 M vị trí. 512MB có nghĩa là các từ 8 byte. Có nên là 512Mb?
XtL

1
@XTL: bắt tốt, tôi đã sửa câu trả lời của mình.
tcrosley

3

Có lẽ một Atmel AT91SAM9G20 ?

Đó là một chút của một con quái vật (gói BGA 217 pin), nhưng nó là một con chip tuyệt vời cho giá cả. Nếu bạn đang tìm kiếm thứ gì đó thân thiện với con người hơn một chút, có thể thử Atmel AT91M42800A . Tôi nghĩ đó là MCU nhỏ nhất có phần cứng bộ nhớ ngoài, ít nhất là từ Atmel. Đó là gói LQFP 144 pin.

Atmel có một bộ chọn tham số: http://www.atmel.com/dyn/products/param_table_v2.asp?family_id=605&OrderBy=part_no&Direction=ASC

(Tôi đoán tôi nên thêm rằng tôi không làm việc cho Atmel; tôi chỉ quen với những thứ của họ.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.