마이크로 컨트롤러와 함께 멀티 기가 바이트 DRAM 모듈을 사용할 수 있습니까?


20

업그레이드 할 때 MacBook Pro에서 제거한 남은 2GB RAM 모듈이 2 개 있습니다. 예를 들어 Arduino와 함께 사용할 수 있는지 궁금합니다. 실제로 어쨌든이 작업을 실제로 시도하기에는 초보자가 너무 많지만 가능한 경우 또는 마이크로 컨트롤러가 처리 할 수있는 메모리가 너무 많은지 궁금합니다.


1
아마도 무언가를 조작 할 수도 있지만 인터페이스 회로는 아마도 결과 시스템에서 가장 복잡한 부분 일 것이므로 결과에는 실질적인 가치가 거의 없을 것입니다.
JustJeff

큰 답변에 감사드립니다! 매우 흥미로운. 나는 조각들이 어떻게 어울리는 지 점차적으로 배우고 있습니다. 감사.
johndeo

ARM9 및 ARM11 플랫폼은 DDR2 컨트롤러를 호스팅하지만 마이크로 컨트롤러가 아니라 마이크로 프로세서에 대해 이야기하고 있습니다. FPGA는 또한 인터페이스 할 수 있습니다. 전체 작업은 매우 복잡합니다. 아두 이노는 8 비트에 불과하므로 대규모 어드레싱 작업을 수행 할 수 없습니다.
한스

Hans가 말한 것-그러한 종류의 RAM을 사용하기에 충분히 강력한 마이크로는 DDR 컨트롤러가 내장되어 있습니다. DDR 제어의 내부 작동을 면밀히 살펴 보지는 않았지만 전용 하드웨어가 필요하다는 사실을 알려줍니다. 오래된 모듈, 오래된 레이저 프린터 등이 더 유용 할 수 있습니다.
John U

답변:


24

가장 기본적인 비 호환성은 모듈에 너무 많은 핀이있어 물리적으로 Arduino에 인터페이스 할 수 없다는 것입니다. 유사한 소형 마이크로 컨트롤러를위한 Ditto. ARM Cortex M3가 점점 가까워지고 있지만 실제로 그러한 방식으로 RAM을 인터페이스하는 데 필요한 외부 버스가있는 것은 거의 없습니다 (제 생각에).

그러나 나는 더 나아갈 것이다. 칩을 Arduino에 인터페이스 할 수 있다고 가정하면 다른 기본적인 전기 호환성 문제는 필요한 전압입니다. 이 RAM 모듈은 바닐라 Arduino 보드 또는 다른 기본 취미 마이크로 컨트롤러에는 존재하지 않는 2.2V와 같은 이상한 것을 사용한다고 생각합니다.

칩을 처리했다고 가정하면 칩은 다른 외부 메모리와 마찬가지로 Arduino에 거의 작동합니다. 사람들은 웹 서버 로그 등을 저장하기 위해 중요한 상수 또는 SD / MMC 카드를 저장하기 위해 외부 EEPROM을 추가합니다. 물론,이 맥락에서 RAM 모듈은 Arduino에 실질적인 이점을 제공하지 않습니다. 주요 특징은 속도이며 Arduino (및 다른 취미 마이크로 제어 장치)는 일반적으로 클럭 속도에서 25MHz를 깨지 않습니다. 속도를 걱정하기에는 너무 느립니다. SD / MMC 카드와의 인터페이싱이 훨씬 쉽고 플레이 공간이 넓기 때문에 스토리지 크기는 큰 문제가되지 않습니다.

따라서 가능하더라도 실제로 권장되지는 않습니다.


오래된 DIP DRAM을 arduino와 인터페이스하는 것에 대해 생각했습니다. (그러나 그것은 브레드 보드에서도 가능하며 / 4164 시대의 정크). 다른, 전적으로 동의합니다.
JustJeff

1
그것은 단계별 가정을 사용하고 최종 조건에 도달하는 품질 답변입니다. 좋은 작업!
LeanerRocky

2
새로 고침 문제를 간과하지 마십시오. 컨트롤러의 마우스가 메모리의 맥 트럭을 운전하려고 할 때 "명령 기반"플래시가 더 적합한 이유 일 수 있습니다.
Chris Stratton

질문에 위의 의견을 달았지만 실제로 여기에 넣어야한다고 생각합니다. 답변 주셔서 감사합니다. 스택 교환은 훌륭한 리소스이며 사람들이 양질의 답변을 제공하는 데 시간이 걸리기 때문입니다.
johndeo

8

나는 fpga가 메모리와 대화하고 마이크로 컨트롤러가 페이징 방식을 사용하여 fpga와 대화하는 사이에 적절한 크기의 (fp count) fpga를 고수하지 않고 아니라고 말할 것입니다.


내 생각도 또한 FPGA를 투명 리프레시 컨트롤러로 사용하십시오. 그러나 실제로 ... 작은 ARM 시스템 에서 소프트웨어로 아두 이노에뮬레이트하는 것이 더 간단하고 저렴하지 않습니까?
Chris Stratton

1
그러나 재미 있거나 교육적인 것은 DDR이 간단하지 않으며 초보자도 아닙니다. 이 메모리에 넣을 다른 랩톱이나 마더 보드를 찾고 측면에 약간의 비글 보드 또는 이와 유사한 것을 가진 fpga eval 보드를 사용하여 DDR에 대해 배우십시오. 첫 번째 문제는 핀 수, 두 번째 문제는 신호, 타이밍 등입니다. 자신의 pcboard를 만들 때 작동하기가 어렵습니다. LCD 인터페이스 나 마이크로 컨트롤러에 브레드 보드 할 수있는 것과는 다릅니다.
old_timer

7

아마도 래치 시스템을 사용하여 arduino와 같은 것이 32 비트의 주소를 생성 할 수 있으며 아마도 리프레시 사이클을 생성하는 몇 가지 체계를 고안 할 수는 있지만 기술적으로는 예외가 아닙니다. 운동.

인터페이스 회로는 아마도 결과 시스템에서 가장 복잡한 부분 일 수 있으며 결과에는 실질적인 가치가 거의 없습니다. 아두 이노는 RAM에서 코드를 실행할 수없고, 스토리지는 휘발성이며, 아두 이노보다 더 많은 전력을 소비 할 것입니다. 데이터를 저장하려면 SPI EEPROM이 훨씬 더 나은 솔루션 일 것입니다.


1
어떤 상황에서도 AVR이 RAM의 코드를 실행할 수 있습니까?
Nick T

@ Nick T-가능한 시나리오가 있다고 간접적으로 제안하지는 않았습니다. 나는 누군가가 이런 종류의 RAM과의 인터페이스를 생각하고 있다면, 그것을 사용할 수 있다고 생각하는 것은 잘못이라고 직접 말하고 있었다.
JustJeff

1
직렬 플래시 또는 SRAM은 일반적으로 EEPROM보다 훨씬 빠릅니다. 비 휘발성 데이터가 많이 필요한 경우 (원격 코드 사용 사례) Flash가 더 나은 선택 일 수 있습니다. 큰 버퍼의 경우 SRAM을 사용하십시오. EEPROM보다 훨씬 빠릅니다. 독립적으로 토글해야 할 구성 비트가 몇 개인 경우 실제로 EEPROM에 남아있는 유일한 틈새 시장입니다.
Kevin Vermeer

@reemrevnivek-좋은 지적, 나는 당신의 의견을 +1합니다. 수십 개의 구성 설정을 유지하는 경우 EEPROM. 비디오 프레임을 유지하려면 SRAM.
JustJeff

7

DRAM 칩 데이터 시트를 살펴보면 DDR2의 최소 클럭 속도는 50MHz +입니다. 따라서, 하드웨어 지원 기능이 내장되어 있지 않으면 마이크로 컨트롤러와 인터페이스 할 수 없습니다.


메모리를 자주 새로 고쳐야한다는 것은 말할 것도 없습니다! Arduino는 메모리 제어 라인을 구동하는 데 많은 시간을 소비하고 있습니다!
Toybuilder

6

짧은 대답은 '아니요'입니다.

Arduino는 DDR 또는 DDR2 메모리 인터페이스를 구동 할 수 없습니다. FPGA가있는 SPI 인터페이스를 사용하여 DDR / DDR2 컨트롤러를 만들 수는 있지만 중요한 작업입니다.


6

저전압 드라이버 (SSTL)와 약 100 개의 채널을 제어 할 수있는 방법이 필요합니다 (각 차동, 약 200 핀. BGA를 생각해보십시오).

대부분의 DRAM은 최소 1kHz에서 리프레시해야하며 비트 오류율이 낮을 수 있습니다. 그런 다음 주요 백그라운드 작업을 구성하고 그러한 속도로 메모리를 새로 고칠 수 있다면 Arduino의 대부분의 처리 능력을 사용합니다.

그래도 PIC24F / H / dsPIC33F와 같은 일부 마이크로 컨트롤러에서는 병렬 마스터 버스 인터페이스를 지원하여 일부 유형의 병렬 SRAM에 액세스 할 수 있습니다. 이 외부 메모리는 여러 개의 코드 변수와 내부 및 외부 메모리를 결합하는 블록에 매핑 될 수 있으므로 C도 지원합니다. 외부 메모리를 사용하려면 PMB 코드를 작성해야합니다. 그래도 최대 1MB까지만 처리 할 수 ​​있습니다.


AFAIK DDR은 SSTL하지 LVDS 사용
mazurnification

@mazurnification, 그래, 당신은 맞습니다 (내 오류.) 아직도, Arduino에서 제어하는 ​​악몽.
Thomas O

그런 다음 답을 수정하십시오!
케빈 베르메르

@reemrevnivek, 알았어. 수정했습니다. 그러나 나는 그것이 비현실적이라고 지적했습니다. 어떤 시그널링 형식이 사용 되든 상관 없습니다.
Thomas O

2

메모리와 MCU 사이의 페이징 인터페이스가 없으면 아닙니다. 실제로 일부 AVR MCU에는 내장 외부 메모리 인터페이스 인 Atmega2560이 있습니다 (ATmega640 / 1280 / 1281 / 2560 / 2561 데이터 시트의 섹션 8 참조). 그러나 주소 공간은 기가 바이트가 아닌 킬로바이트 단위로 측정됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.