ฉันมีโมดูล RAM 2GB เหลืออยู่สองตัวที่ฉันลบออกจาก MacBook Pro ของฉันเมื่อทำการอัพเกรด ฉันแค่สงสัยว่าสิ่งเหล่านี้สามารถใช้งานได้ด้วยเช่น Arduino ฉันจะเป็นผู้เริ่มต้นมากเกินไปที่จะลองทำสิ่งนี้จริง ๆ ในตอนนี้ แต่ฉันอยากรู้ว่ามันเป็นไปได้หรือไม่
ฉันมีโมดูล RAM 2GB เหลืออยู่สองตัวที่ฉันลบออกจาก MacBook Pro ของฉันเมื่อทำการอัพเกรด ฉันแค่สงสัยว่าสิ่งเหล่านี้สามารถใช้งานได้ด้วยเช่น Arduino ฉันจะเป็นผู้เริ่มต้นมากเกินไปที่จะลองทำสิ่งนี้จริง ๆ ในตอนนี้ แต่ฉันอยากรู้ว่ามันเป็นไปได้หรือไม่
คำตอบ:
ฉันจะบอกว่าไม่: ความไม่ลงรอยกันขั้นพื้นฐานที่สุดคือมีวิธีพินมากเกินไปในโมดูลเหล่านั้นแม้จะสามารถเชื่อมต่อกับ Arduino ได้ เหมือนกันสำหรับไมโครคอนโทรลเลอร์ขนาดเล็กที่คล้ายกัน ARM Cortex M3 ใกล้เข้ามาแล้ว แต่มีเพียงไม่กี่คนที่มีบัสภายนอกที่จำเป็นต่อการเชื่อมต่อ RAM ในแบบนี้ (ฉันคิดว่า)
แต่ฉันจะเล่นไปด้วยกันต่อไป สมมติว่าคุณสามารถเชื่อมต่อชิปกับ Arduino อย่างอื่นปัญหาความเข้ากันได้ทางไฟฟ้าขั้นพื้นฐานคือแรงดันไฟฟ้าที่จำเป็น ฉันคิดว่าโมดูล RAM เหล่านี้ใช้อะไรแปลก ๆ เช่น 2.2V - ไม่มีอยู่ในบอร์ด Arduino ของ Vanilla หรือจริงๆแล้วไมโครคอนโทรลเลอร์พื้นฐานงานอดิเรกอื่น ๆ
สมมติว่าได้รับการดูแลแล้วชิปจะทำงานเหมือนหน่วยความจำภายนอกอื่น ๆ กับ Arduino ทำเช่นนี้ตลอดเวลา - ผู้ใช้เพิ่ม EEPROM ภายนอกเพื่อเก็บค่าคงที่สำคัญหรือการ์ด SD / MMC สำหรับการจัดเก็บบันทึกของเว็บเซิร์ฟเวอร์และอื่น ๆ แน่นอนในบริบทนี้โมดูล RAM ไม่ได้ให้ประโยชน์กับ Arduino อย่างแท้จริง คุณสมบัติหลักของมันคือความเร็วและ Arduino (และใช่ไมโครคอนโทรลเลอร์งานอดิเรกอื่น ๆ ) โดยทั่วไปแล้วจะไม่หยุดที่ 25MHz ด้วยความเร็วสัญญาณนาฬิกา พวกมันช้าเกินไปที่จะใส่ใจเรื่องความเร็ว และขนาดพื้นที่เก็บข้อมูลไม่ใช่ปัญหาใหญ่เนื่องจากการเชื่อมต่อกับการ์ด SD / MMC นั้นง่ายกว่าและให้พื้นที่ในการเล่นมากพอสมควร
ดังนั้นแม้ว่าจะเป็นไปได้ แต่ก็ไม่แนะนำให้เลือก
ฉันจะบอกว่าไม่ไม่ได้โดยไม่ต้องติด fpga ขนาดที่ดี (นับ pin) ในระหว่างที่ fpga พูดคุยกับหน่วยความจำและไมโครคอนโทรลเลอร์พูดกับ fpga โดยใช้รูปแบบเพจ
คุณอาจใช้ระบบแลตช์เพื่อให้บางอย่างเช่นอาร์ดิโนสร้างที่อยู่ 32 บิตและคุณอาจกำหนดรูปแบบบางอย่างเพื่อสร้างวงจรการรีเฟรช แต่ไม่มีประเด็นใดที่จะทำเช่นนั้นยกเว้นเป็นเทคนิค การออกกำลังกาย
วงจรอินเทอร์เฟซน่าจะเป็นส่วนที่ซับซ้อนที่สุดของระบบผลลัพธ์และจะมีค่าในทางปฏิบัติเล็กน้อยในผลลัพธ์ arduino จะไม่สามารถเรียกใช้รหัสจาก RAM ที่จัดเก็บจะระเหยและอาจใช้พลังงานมากกว่า arduino เช่นกัน หากคุณต้องการจัดเก็บข้อมูล SPI EEPROM น่าจะเป็นทางออกที่ดีกว่ามาก
หากคุณเคยดูเอกสารข้อมูลชิปชิป DRAM จะมีความเร็วสัญญาณนาฬิกาขั้นต่ำเช่น 50MHz + สำหรับ DDR2 ดังนั้นไม่คุณจะไม่สามารถติดต่อกับพวกเขาด้วยไมโครคอนโทรลเลอร์ (เว้นแต่จะมีการสนับสนุนฮาร์ดแวร์ในตัว)
คำตอบสั้น ๆ คือไม่
Arduino ไม่สามารถขับเคลื่อนอินเตอร์เฟสหน่วยความจำ DDR หรือ DDR2 คุณสามารถสร้างคอนโทรลเลอร์ DDR / DDR2 ด้วยอินเตอร์เฟส SPI พร้อม FPGA ได้ แต่นั่นเป็นภารกิจที่สำคัญ
คุณต้องการไดร์เวอร์แรงดันไฟฟ้าต่ำ (SSTL) และวิธีการควบคุมประมาณ 100 แชนเนล (แต่ละค่าดังนั้นประมาณ 200 พินคิดว่า BGA)
DRAM ส่วนใหญ่จะต้องมีการรีเฟรชอย่างน้อย 1kHz และอาจจะมีอัตราข้อผิดพลาดน้อยกว่า สิ่งนี้จะสร้างงานพื้นหลังที่สำคัญและใช้กำลังงาน prcoessing ส่วนใหญ่ของ Arduino หากเป็นไปได้ที่จะรีเฟรชหน่วยความจำในอัตราดังกล่าว
สิ่งที่คุณสามารถดูได้คือกับไมโครคอนโทรลเลอร์บางตัวเช่น PIC24F / H / dsPIC33F พวกเขาสนับสนุนอินเตอร์เฟสบัสต้นแบบแบบขนานซึ่งทำให้สามารถเข้าถึง SRAM แบบขนานบางประเภทได้ แม้จะมีการสนับสนุนด้วย C เนื่องจากหน่วยความจำภายนอกนี้สามารถแมปเข้ากับตัวแปรรหัสได้หลายแบบและแม้กระทั่งบล็อกที่รวมความทรงจำทั้งภายในและภายนอกเข้าด้วยกัน หน่วยความจำภายนอกคุณต้องเขียนรหัส PMB บางส่วน คุณจะสามารถจัดการกับสิ่งนี้ได้มากถึงประมาณ 1 MB
ไม่ไม่มีอินเทอร์เฟซการเพจชนิดใดระหว่างหน่วยความจำและ MCU ในความเป็นจริงแล้ว AVR MCU บางตัวมีอินเทอร์เฟซหน่วยความจำภายนอกในตัวเช่น Atmega2560 (ดูส่วนที่ 8 ของแผ่นข้อมูล ATmega640 / 1280/1281/2560/2561/2560) แต่พื้นที่ที่อยู่ถูกวัดเป็นกิโลไบต์ไม่ใช่กิกะไบต์