คำแนะนำหน่วยความจำสำหรับ MSP430


9

ฉันกำลังพัฒนาแอปพลิเคชั่นการวัดด้วย TI MSP430 และฉันต้องการฟังคำแนะนำเกี่ยวกับประเภทของหน่วยความจำที่ฉันสามารถใช้ได้

แนวคิดคือใช้สำหรับการบันทึกในช่วงเวลาหนึ่งจากนั้นดาวน์โหลดข้อมูลไปยังพีซีเมื่ออุปกรณ์เชื่อมต่อผ่าน USB ค่าประมาณคือเก็บข้อมูลได้สูงสุด 5MB ทุกตัวอย่างมีขนาดประมาณ 25 ไบต์ของข้อมูล

ชิป EEPROM อย่างง่าย ๆ จะทำหรือมีสิ่งที่ดีกว่าออกไปหรือไม่


1
ดูเหมือนว่าคุณจะมีอุปกรณ์ขับเคลื่อนส่วนใหญ่เวลาที่คุณมีข้อมูลที่ถูกต้อง SRAM สำรองข้อมูลของแบตเตอรี่ไม่เหมาะสมกว่า EEPROM (หรือดีกว่าแฟลช) ใช่ไหม
Federico Russo

คำตอบ:


7

ฉันใช้ชิปแฟลชอนุกรมของAT45Dซีรี่ส์แล้ว พวกเขามีบัฟเฟอร์ SRAM ภายในเพื่อตั้งค่าหน้าสำหรับการลบ / การเขียนโปรแกรม อินเตอร์เฟซ SPI เพื่ออ่านข้อมูลเข้าและออก


5

5MByte เป็นข้อมูลจำนวนมากที่จัดเก็บ การอ่านผ่าน USB หมายความว่าคุณกำลังใช้ชิ้นส่วนใหม่ที่มีส่วนต่อประสานอุปกรณ์ USB ในตัวถ้าไม่เช่นนั้นคุณจะต้องใช้ตัวแปลง USB เป็นอนุกรม (FTDI หรือคล้ายกัน) และจะถูก จำกัด เป็นอนุกรม async อัตราการส่งข้อมูลสำหรับการอ่านข้อมูล

คุณได้พิจารณาการเชื่อมต่อการ์ดหน่วยความจำ SD กับ MSP แล้วหรือยังเก็บข้อมูลไว้แล้วย้ายการ์ดไปยังพีซีเพื่ออ่านข้อมูลที่เก็บไว้ ฉันไม่ได้เขียนอินเทอร์เฟซลงในอุปกรณ์นี้ แต่มีมากมายที่มี


ใช่ฉันจะใช้ส่วนหนึ่งกับ USB ในตัว อุดมคติคือการใช้โปรโตคอล MSC แต่นั่นเป็นการเพิ่มความซับซ้อนให้กับโครงการของฉัน ฉันอาจจะตัดสินด้วยอัตราการถ่ายโอนข้อมูล HID ฉันคิดเกี่ยวกับการ์ด SD แต่มันเพิ่มความซับซ้อนเป็นพิเศษบนกล่องหุ้มเพราะมันต้องเป็นอุปกรณ์กันน้ำ
Padu Merloti

2
ฉันขอแนะนำเส้นทางนี้เพราะการ์ด SD จะให้พื้นที่เก็บข้อมูลมากที่สุด ตอนนี้คุณพูดได้ 5MB แล้ว แต่ถ้าคุณต้องการมากกว่านั้นคุณจะต้องเพิ่มขีด จำกัด ของแฟลชอนุกรม (และคุณก็อยู่เหนือขีด จำกัด ของ EEPROM) หากการป้องกันการรั่วซึมเป็นปัญหา (และคุณมีตัวเลือก USB ที่เหมาะสมซึ่งน่าจะเป็นกรณีนี้) คุณสามารถอ่านการ์ด SD ของคุณผ่านทาง USB และวางไว้ในตู้อย่างถาวร ฉันเห็นการออกแบบที่บัดกรี SD การ์ดไปยังบอร์ด (หมายเหตุ: ใช้งานได้ แต่ฉันไม่แนะนำ)
Kevin Vermeer

เข้าใจแล้วมีเหตุผล ฉันจะพิจารณาตัวเลือกนั้น ขอบคุณ
Padu Merloti

มีชิปพิเศษที่ดูแลอินเตอร์เฟส SD และใช้ระบบไฟล์หรือฉันยังต้องใช้ระบบไฟล์และคลาส MSC โดยใช้ MSP430 หรือไม่
Padu Merloti

@Padu - ฉันรู้สึกว่านี่ต้องใช้พื้นที่และการจัดรูปแบบมากกว่าความคิดเห็นเล็กน้อยดังนั้นฉันจึงเพิ่มคำตอบเป็นคำตอบ
Kevin Vermeer

3

แฟลชอนุกรมดีกว่า EEPROM ในแอปพลิเคชันนี้ Atmel ทำให้ดีผู้เล่นตัวจริง ทางเลือกของคุณจะขึ้นอยู่กับสองสิ่ง: (1) ความต้องการของคุณในการแก้ไข / แบ่งเซกเมนต์ของคุณในไมโครและ (2) ความพร้อมใช้งาน RAM ของคุณใน MSP430

Flash ซึ่งแตกต่างจาก EEPROM สามารถเขียนได้ตั้งแต่ 1 ถึง 0 การเปลี่ยนข้อมูลจาก 0 ถึง 1 ต้องลบส่วนของชิ้นส่วนซึ่งโดยทั่วไปจะใช้ได้เฉพาะกับหน้าหรือบล็อกของข้อมูล คุณจะต้องบัฟเฟอร์หน้านี้เป็น RAM ลบหน้าทำการแก้ไขใน RAM แล้วเขียนกลับหากคุณต้องการเปลี่ยนแปลงบางสิ่ง

ซีรีย์ AT45D ดังที่ได้กล่าวมาแล้วมีข้อเสนอหลายส่วนซึ่งมี RAM บัฟเฟอร์บนชิปเพื่ออำนวยความสะดวกในกระบวนการนี้โดยไม่ต้องใช้ RAM บนไมโครคอนโทรลเลอร์

ในตอนท้ายชุดทั้งชุดนั้นใช้งานร่วมกับขาได้ดังนั้นเพียงวาง 8-SOIC footprint (150mil) จากนั้นคุณสามารถสลับส่วนต่าง ๆ ได้หากคุณต้องการตัวเลือกต่าง ๆ ในภายหลัง


ฉันเห็นด้วยกับสิ่งที่คุณพูด แต่คุณสามารถคัดลอกข้อมูลจากหน้าแฟลชต้นทางไปยังหน้าแฟลชปลายทางในขณะที่แก้ไขไบต์ที่คุณต้องการเปลี่ยนก่อนที่จะลบต้นฉบับ
mjh2007

@mjh - จะเกิดอะไรขึ้นถ้าแหล่งที่มาและปลายทางของคุณเหมือนกันและ / หรือคุณไม่มีเพจว่าง นอกจากนี้ยังช้า: ส่งคำสั่งอ่านส่งที่อยู่อ่านไบต์เปลี่ยนหากจำเป็นลบส่งคำสั่งเขียนส่งที่อยู่เขียนไบต์ทำซ้ำ x256, x512 หรือ x4k ตัวเลือกอื่นของคุณคือการส่งคำสั่งอ่านส่งที่อยู่ที่อ่าน, นาฬิกาสำหรับรอบที่ N, แก้ไขไบต์ที่คุณต้องการเปลี่ยน, ลบ, ส่งคำสั่งเขียน, ส่งที่อยู่การเขียน, นาฬิกาสำหรับรอบที่ N ใช้เวลาประมาณ 1/3 ของเวลาที่บัฟเฟอร์ RAM ใช้
Kevin Vermeer

ทำไมเครื่องบันทึกข้อมูลถึงต้องแก้ไขบันทึกในไมโคร?
davidcary

@davidcary - หากเครื่องบันทึกข้อมูลของคุณไม่ทำอะไรเลยนอกจากบันทึกไบต์ยาวหนึ่งรายการคุณพูดถูก - คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงใด ๆ หากมีการกำหนดค่าหลายอย่างหรือไฟล์บันทึกที่อาจข้ามขอบเขตหน้า / บล็อกหรือหากคุณต้องการเปลี่ยนแปลงส่วนหัวของไฟล์ในตอนท้ายคุณจะต้องแก้ไขหน่วยความจำโดยไม่ต้องลบข้อมูลที่มีอยู่
Kevin Vermeer

ณ จุดนี้ฉันเพียงแค่ต้องสร้างไฟล์บันทึกหลายไฟล์ไม่จำเป็นต้องแก้ไขไฟล์ยกเว้นเมื่อผู้ใช้เสียบอุปกรณ์กับ USB และดาวน์โหลดจากนั้นฉันต้องลบ (หรือทำให้พื้นที่ว่างพร้อมใช้งานอีกครั้ง) บันทึกเก่า
Padu Merloti

2

ฉันอยากจะแนะนำซีรีส์ AT25D เพราะมันดูง่ายกว่าการใช้ AT45D นิดหน่อย แม้ว่ามันจะช้ากว่านิดหน่อย แต่ก็ไม่ได้เสนอตัวเลือกการถ่ายโอนข้อมูลจำนวนมากหรือบัฟเฟอร์ SRAM มันมีข้อได้เปรียบในเรื่องของราคาที่ถูกกว่าและยังเร็วพอสำหรับแอพพลิเคชั่นส่วนใหญ่เช่นการบันทึกข้อมูล

หากคุณต้องการข้อมูล 5MB เป็นไปได้ยากที่ EEPROM จะทำงานได้เนื่องจากมันมาในแพ็คเกจ <1Mbit โดยทั่วไป ชิปแฟลชจาก Atmel รองรับสูงสุด 64-bit หรือ 8MB


1
ฉันไม่เห็นด้วย. ส่วนที่ลบได้ที่เล็กที่สุดใน AT25D คือหน้าขนาด 4kB และไมโครไซต์บางตัวมี RAM สำรองจำนวนมากที่พร้อมใช้งาน ฉันใช้ชิปซีรีส์ AT25FS ซึ่งมีการลบหน้าขนาดเล็ก (256 ไบต์) แต่มันน้อยกว่า 5MB การใช้ระบบบัฟเฟอร์หมายความว่าคุณไม่ต้องกังวลเกี่ยวกับการจัดการ RAM มากนัก แน่นอนถ้าคุณไม่จำเป็นต้องแก้ไขบันทึกของคุณชุด AT25 จะทำงานได้ดี
Kevin Vermeer

ใช่หน้าการลบขนาดใหญ่นั้นน่ารำคาญเมื่อแอพพลิเคชั่นจำเป็นต้องเขียนไบท์บางส่วนจากนั้นเปลี่ยนไบท์นั้น แต่ทำไมเครื่องบันทึกข้อมูลถึงต้องทำเช่นนั้น? สำหรับฉันแล้วดูเหมือนว่าสำหรับแอปพลิเคชันการบันทึกข้อมูลมันไม่ได้สร้างความแตกต่างเลยถ้าส่วนที่ลบได้ที่เล็กที่สุดคือ 256 ไบต์หรือ 1 เมกะไบต์
davidcary

1

[นี่คือการตอบสนองต่อความคิดเห็นต่อคำตอบของเอียน]
การ์ด SD เป็นเพียงอุปกรณ์ SPI ดังนั้นจึงไม่จำเป็นต้องมีชิป / อินเตอร์เฟส โปรโตคอลอื่น ๆ รวมถึงอินเตอร์เฟสแบบ 2 สาย (เช่น I2C) และอินเตอร์เฟสแบบ 4 สาย (ที่มี CRC ที่ซับซ้อน) แต่ SPI นั้นใช้บ่อยที่สุด

มีเอกสารการใช้งานการ์ด SD สามารถใช้ได้สำหรับ MSP430 จาก TI คือที่นี่ มันสั้น แต่ก็มีรหัสตัวอย่าง มันจัดการการอ่านและการเขียนไปยังภาคส่วนต่าง ๆ ในการ์ด SD ซึ่งอาจเป็นสิ่งที่คุณต้องการหากคุณไม่ได้เสียบเข้ากับพีซี ดูการใช้งานเหล่านี้โดยFoust (แนะนำ) หรือEvansจาก MSU

เมื่อคุณมีฟังก์ชั่นพื้นฐานในการอ่านและเขียนเซ็กเตอร์แล้วคุณสามารถสร้างระบบไฟล์ที่เรียบง่ายและกำหนดเองผ่าน USB หรือใช้ไลบรารีระบบไฟล์ที่มีอยู่ก็ได้ FatFS , EFSLหรือDOSFsเป็นตัวเลือกทั้งหมดสำหรับรุ่นหลัง หากการใช้งานฟังก์ชั่นที่จำเป็นทั้งหมดดูเหมือนจะยากเกินไปโปรดจำไว้ว่าทั้งหมดไม่กี่คนสามารถ / จะไม่สมบูรณ์

อย่างไรก็ตามระบบไฟล์จะได้รับการสรุปผ่านอินเตอร์เฟส USB ของคุณในระดับหนึ่ง สิ่งนี้จะง่ายขึ้นหากคุณมีไลบรารีระบบไฟล์จริงและการ์ดของคุณอยู่ในระบบไฟล์ที่อ่านได้ แต่ใช้งานได้ หากคุณต้องการเขียน "ระบบแฟ้ม" ของคุณเองและบันทึกงาน / เวลา / หน่วยความจำสำหรับการใช้งาน USB คุณสามารถกำหนดได้อย่างง่ายดายและไม่ยืดหยุ่นเมื่อบันทึก 1 เริ่มต้นที่ 0x0, บันทึก 2 เริ่มที่ 0x10 0000, บันทึก 3 ที่ 0x20 0000 และบันทึก 4 ที่ 0x30 0000 จากนั้นคุณสามารถส่งข้อมูลนี้ผ่าน USB

อินเตอร์เฟส USB นั้นมีความซับซ้อนเท่าที่คุณต้องการตั้งแต่อินเตอร์เฟสแบบอนุกรมไปจนถึงอุปกรณ์เก็บข้อมูลขนาดใหญ่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.