MSP430 के लिए मेमोरी सुझाव


9

मैं TI MSP430 के साथ एक माप एप्लिकेशन विकसित कर रहा हूं और मैं कुछ सुझाव सुनना चाहूंगा कि मैं किस प्रकार की मेमोरी का उपयोग कर सकता हूं।

यह विचार एक निश्चित समय के दौरान लॉगिंग के लिए इसका उपयोग करना है और फिर डिवाइस को यूएसबी के माध्यम से कनेक्ट होने पर एक पीसी पर डेटा डाउनलोड करना है। अनुमान 5MB डेटा तक रखने का है, हर नमूना लगभग 25 बाइट्स डेटा का है।

एक साधारण EEPROM चिप करना होगा या वहाँ कुछ बेहतर है?


1
ऐसा लगता है कि आपके पास अधिकांश समय के लिए उपकरण होगा जो आपके पास मान्य डेटा है। क्या EEPROM (या बेहतर, Flash) की तुलना में बैटरी बैकअप-एड SRAM अधिक उपयुक्त नहीं है?
फेडेरिको रूसो

जवाबों:


7

मैंने सीरियल फ्लैश चिप्स की AT45D श्रृंखला का उपयोग किया है । उनके पास इरेज़ / प्रोग्रामिंग के लिए एक पेज सेटअप करने के लिए एक आंतरिक SRAM बफर है। एसपीआई इंटरफ़ेस में और बाहर डेटा पढ़ने के लिए।


5

5MByte स्टोर करने के लिए बहुत अधिक डेटा है। USB पर इसे पढ़ने से तात्पर्य है कि आप USB डिवाइस इंटरफेस के साथ नए भागों में से एक का उपयोग कर रहे हैं। यदि नहीं तो आप धारावाहिक कनवर्टर (FTDI या इसी तरह) के लिए USB का उपयोग करने जा रहे हैं और यह async सीरियल तक सीमित रहेगा। डेटा को पढ़ने के लिए डेटा दरें।

क्या आपने एमएसपी को एसडी मेमोरी कार्ड से कनेक्ट करने पर विचार किया है, जिसमें डेटा संग्रहीत किया गया है और फिर संग्रहीत डेटा को पढ़ने के लिए कार्ड को पीसी में स्थानांतरित किया जा रहा है। मैंने इस उपकरण के लिए एक इंटरफ़ेस नहीं लिखा है, लेकिन बहुत सारे हैं।


हां, मैं एम्बेडेड USB के साथ एक हिस्से का उपयोग करने जा रहा हूं। आदर्श MSC प्रोटोकॉल का उपयोग करना होगा, लेकिन यह मेरी परियोजना में बहुत जटिलता जोड़ता है। मैं शायद HID डेटा ट्रांसफर दरों के साथ समझौता करूंगा। मैंने एसडी कार्ड के बारे में सोचा लेकिन यह बाड़े पर अतिरिक्त जटिलता जोड़ता है क्योंकि इसे वाटर स्प्लैश प्रूफ होना चाहिए।
पादु मेरलोती

2
मैं इस मार्ग का सुझाव दूंगा, क्योंकि SD कार्ड आपको सबसे अधिक संग्रहण स्थान देंगे। आप अब 5 एमबी कहते हैं, लेकिन यदि आप अधिक बाद में चाहते हैं, तो आप धारावाहिक फ्लैश की सीमा को आगे बढ़ा रहे हैं (और आप EEPROM की सीमाओं से ऊपर हैं)। यदि वॉटरप्रूफिंग एक समस्या है (और आपके पास एक उपयुक्त यूएसबी विकल्प है, जो ऐसा लगता है) तो आप अपने एसडी कार्ड को यूएसबी पर पढ़ सकते हैं, और इसे स्थायी रूप से बाड़े के अंदर रख सकते हैं। मैंने कुछ डिज़ाइन देखे हैं, जिन्होंने एसडी कार्ड को बोर्ड में मिलाया (नोट: यह काम किया, लेकिन मैं इसकी सिफारिश नहीं करता)।
केविन वर्मेयर

समझ गया, समझ में आता है। मैं उस विकल्प पर विचार करूंगा। धन्यवाद
Padu Merloti

क्या कोई विशेष चिप है जो SD इंटरफ़ेस का ध्यान रखती है और फ़ाइल सिस्टम को लागू करती है या क्या मुझे अभी भी MSP430 का उपयोग करके फ़ाइल सिस्टम और MSC क्लास को लागू करना होगा?
पादु मर्लोटी

@ पैडू - मुझे लगा कि यह एक टिप्पणी की तुलना में थोड़ा अधिक कमरे और स्वरूपण की आवश्यकता है, इसलिए मैंने जवाब के रूप में अपनी प्रतिक्रिया जोड़ी।
केविन वर्मर

3

इस एप्लिकेशन में EEPROM से सीरियल फ्लैश बेहतर है। Atmel एक महान लाइनअप बनाता है । आपकी पसंद काफी हद तक दो चीजों पर निर्भर करेगी: (1) आपको माइक्रो पर अपने लॉग को संपादित / सेक्टर करने की आवश्यकता है और (2) MSP430 पर आपकी रैम उपलब्धता।

EEPROM के विपरीत, फ़्लैश को केवल 1 से 0. तक लिखा जा सकता है, 0 से 1 तक के डेटा को भाग के एक हिस्से को मिटाने की आवश्यकता होती है, जो आमतौर पर केवल पेज या डेटा के ब्लॉक के लिए उपलब्ध होता है। आपको इस पेज को रैम में बफर करना होगा, पेज को मिटाना होगा, रैम में अपना एडिट करना होगा, और फिर अगर आप कुछ बदलना चाहते हैं तो इसे वापस लिखें।

AT45D श्रृंखला, जैसा कि पहले ही बताया जा चुका है, इस प्रक्रिया को सुगम बनाने के लिए चिप पर रैम बफ़र्स के कई भाग प्रदान करता है, जिसमें माइक्रोकंट्रोलर पर रैम का उपयोग किए बिना।

अंत में, पूरी श्रृंखला पिन-संगत है, इसलिए बस एक 8-एसओआईसी (150mil) पदचिह्न डालें, और फिर बाद में अलग-अलग विकल्पों की आवश्यकता होने पर आप भागों को स्वैप कर सकते हैं।


मैं इस बात से सहमत हूं कि आप क्या कह रहे हैं, लेकिन आप स्रोत को मिटाने के लिए पूर्व में बदलने के लिए इच्छित बाइट्स को संशोधित करते हुए स्रोत फ्लैश पेज से गंतव्य फ़्लैश पृष्ठ पर डेटा कॉपी कर सकते हैं।
mjh2007

@ mjh - क्या होगा यदि आपका स्रोत और गंतव्य समान हैं, और / या आपके पास एक निःशुल्क पृष्ठ नहीं है? इसके अलावा, यह धीमा है: रीड कमांड भेजें, एक एड्रेस भेजें, एक बाइट पढ़ें, यदि आवश्यक हो तो बदलें, मिटाएं, कमांड भेजें, एक एड्रेस भेजें, एक बाइट लिखें, x256, x512, या x4k दोहराएं। आपका अन्य विकल्प एक रीड कमांड भेजना, एन एड्रेस, एन साइकल के लिए क्लॉक भेजना है, आप जिस बाइट को बदलना चाहते हैं उसे संशोधित करें, मिटाएं, कमांड लिखें, एन एड्रेस भेजें, एन साइकल के लिए घड़ी भेजें। यह उस समय का 1/3 भाग लेता है जो RAM बफर लेता है।
केविन वर्मेयर

माइक्रो पर लॉग को संपादित करने के लिए कभी डेटा लॉगर की आवश्यकता क्यों होगी?
davidcary

@davidcary - यदि आपका डेटा लकड़हारा बाइट्स की एक लंबी धारा को रिकॉर्ड करने के अलावा कुछ नहीं करता है, तो आप सही हैं - आपको कभी भी बदलाव करने की आवश्यकता नहीं होगी। यदि इसमें कई कॉन्फ़िगरेशन या लॉग फाइलें हैं, जो पृष्ठ / ब्लॉक सीमाओं के पार हो सकती हैं, या यदि आप अंत में फ़ाइल पर हेडर में बदलाव करना चाहते हैं, तो आपको मौजूदा डेटा को मिटाए बिना मेमोरी को संपादित करना होगा।
केविन वर्मर

इस बिंदु पर, मुझे बस कई लॉग फ़ाइलें बनाने की आवश्यकता है, उन्हें संशोधित करने की आवश्यकता नहीं है, जब उपयोगकर्ता डिवाइस को यूएसबी में प्लग करता है और इसे डाउनलोड करता है, तो मुझे पुराने लॉग को मिटाना होगा (या उस स्थान को फिर से उपलब्ध करना होगा)।
पादु मेरलोटी

2

मैं AT25D श्रृंखला का सुझाव दूंगा क्योंकि यह AT45D की तुलना में उपयोग करना थोड़ा आसान प्रतीत होता है। हालांकि यह थोड़ा धीमा है और कई डेटा ट्रांसफर विकल्प या SRAM बफ़र्स के रूप में पेश नहीं करता है। इसमें कम खर्चीला होने का लाभ है और यह अभी भी अधिकांश अनुप्रयोगों जैसे डेटा लॉगिंग के लिए पर्याप्त त्वरित है।

यदि आपको 5MB डेटा की आवश्यकता है, तो यह संभव नहीं है कि एक EEPROM काम करेगा क्योंकि वे आम तौर पर <1Mbit पैकेज में आते हैं। Atmel से फ्लैश चिप्स 64-mbit या 8MB तक का समर्थन करते हैं।


1
मैं असहमत हूं। AT25D पर सबसे छोटा इरेज़ेबल सेक्शन 4kB पेज है, और कुछ माइक्रोएस में इतना अतिरिक्त रैम उपलब्ध है। मैंने चिप्स की AT25FS श्रृंखला का उपयोग किया है, जिसमें एक छोटा (256 बाइट) पृष्ठ मिटा है, लेकिन वे 5 एमबी से कम हैं। बफ़र्ड सिस्टम के साथ जाने का मतलब है कि आपको रैम मैनेजमेंट के बारे में ज़्यादा चिंता करने की ज़रूरत नहीं है। बेशक, अगर आपको अपने लॉग को संपादित करने की कोई आवश्यकता नहीं है, तो एटी 25 श्रृंखला ठीक काम करेगी।
केविन वर्मर

हां, बड़े मिटाए पृष्ठ तब परेशान होते हैं जब किसी एप्लिकेशन को कुछ बाइट लिखने की आवश्यकता होती है, और फिर बाद में उस बाइट को बदल देते हैं। लेकिन डेटा लॉगर को कभी ऐसा करने की आवश्यकता क्यों होगी? यह मुझे लगता है कि, डेटा लॉगिंग एप्लिकेशन एप्लिकेशन के लिए, इससे कोई फर्क नहीं पड़ता है यदि सबसे छोटा इरेज़ेबल सेक्शन 256 बाइट या 1 मेगाबाइट है।
डेविसडरी

1

[यह इयान के उत्तर के बाद टिप्पणियों की प्रतिक्रिया में है]।
एक एसडी कार्ड सिर्फ एक SPI डिवाइस है, इसलिए कोई भी चिप / इंटरफ़ेस आवश्यक नहीं है। अन्य प्रोटोकॉल में 2-वायर इंटरफ़ेस (जैसे I2C) और 4-वायर इंटरफ़ेस (एक जटिल सीआरसी के साथ) शामिल हैं, लेकिन एसपीआई सबसे अधिक उपयोग किया जाता है।

यहाँ TI से MSP430 के लिए एसडी कार्ड आवेदन नोट उपलब्ध है । यह संक्षिप्त है, लेकिन इसमें नमूना कोड शामिल है। यह एसडी कार्ड पर विभिन्न क्षेत्रों में पढ़ना और लिखना संभालता है, जो आप चाहते हैं कि आप इसे पीसी में प्लग न करें। इसके अलावा MSU से Foust (अनुशंसित) या इवांस द्वारा इन कार्यान्वयनों को देखें ।

एक बार जब आपके पास एक सेक्टर को पढ़ने और लिखने के लिए बुनियादी कार्य होते हैं, तो आप USB पर एक सरल, कस्टम फाइल सिस्टम को अमूर्त कर सकते हैं या किसी मौजूदा फाइल सिस्टम लाइब्रेरी का उपयोग कर सकते हैं। FatFS , EFSL या DOSFs बाद के लिए सभी विकल्प हैं। यदि सभी आवश्यक कार्यों को लागू करना बहुत कठिन लगता है, तो याद रखें कि सभी लेकिन कुछ कैन / स्टब्स हो सकते हैं।

हालाँकि, फ़ाइल सिस्टम आपके USB इंटरफ़ेस के माध्यम से एक हद तक अमूर्त हो जाएगा। यह आसान होगा यदि आपके पास एक वास्तविक फाइल सिस्टम लाइब्रेरी है और आपका कार्ड एक पठनीय फाइल सिस्टम में है, लेकिन यह काम करता है। यदि आप अपना खुद का "फाइलसिस्टम" लिखना चाहते हैं और यूएसबी कार्यान्वयन के लिए काम / समय / मेमोरी को बचाते हैं, तो आप इसकी परिभाषा को सरल और अनम्य बना सकते हैं जैसे कि 1 लॉग 0x0 से शुरू होता है, लॉग 2 0x10 0000 से शुरू होता है, लॉग 3 से 02020 0000 पर शुरू होता है। , और 0x30 0000 पर 4 लॉग इन करें। फिर, आप इस डेटा को USB पर भेज सकते हैं।

USB इंटरफ़ेस उतना ही जटिल हो सकता है जितना आप इसे पसंद करते हैं - सीरियल इंटरफ़ेस से लेकर मास स्टोरेज डिवाइस तक।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.