আমি কোথায় আমি একটি মাইক্রোকন্ট্রোলার (এনএক্সপি আছে একটি অ্যাপ্লিকেশন আছে LPC1343 ) যা সংযুক্ত করা হয় FPGA 16 বিট SPI মাধ্যমে। একই এসপিআই পোর্ট (এমআইএসও / এমওএসআই) ব্যবহার করে একটি এসডি কার্ড রয়েছে তবে আলাদা সিএস / এসএস পিনের সাথে (এসপিআই স্পেসিফিকেশন অনুযায়ী উভয়ই সক্রিয় রয়েছে)। আমার যা করা দরকার তার মধ্যে একটি হ'ল এফপিজিএ থেকে এসডি কার্ডের একটি ফাইতে FAT32 ব্যবহার করে ডেটা লিখুন এবং এটি মাইক্রোকন্ট্রোলারের কাজ। মাইক্রোকন্ট্রোলার ফ্যাটএফএস চালাচ্ছে , যা আমি নিজে থেকে নির্ভরযোগ্যভাবে কাজ করতে পেরেছি।
যেহেতু মাইক্রোকন্ট্রোলারের কাছে কেবল অল্প পরিমাণে র্যাম থাকে, কেবলমাত্র অল্প পরিমাণে ডেটা একবারে বাফার করা যায়। সুতরাং, মাইক্রোকে এফপিজিএ থেকে একটি বাফার পড়তে হবে, এসপিআই মোডটি 8-বিটে পরিবর্তন করতে হবে এবং তারপরে এফএটিএফএসে ডেটা লিখতে হবে। স্মরণ করুন যে এসপিআই মোডের জন্য এসডি কার্ডটি কনফিগার করতে, এসপিআই বাসটি 400 কিলাহার্টজ চলমান অবস্থায় একটি কমান্ড প্রেরণ করতে হবে, এবং একটি নির্দিষ্ট পরিমাণের জন্য অপেক্ষা করতে হবে। অতএব, আমি কেবল একবার সূচনা করতে চাই।
যাইহোক, এসডি কার্ডে সিএস উচ্চ ধরে থাকা সত্ত্বেও এফপিজিএতে লেনদেনগুলি সম্পাদন করা এসডি কার্ডটিকে একটি অদ্ভুত অবস্থায় ফেলেছে বলে মনে হয় এটি আবার আরম্ভের মধ্য দিয়ে যেতে হবে। অবশ্যই এটি অনাকাঙ্ক্ষিত, যেহেতু সূচনাটি কয়েক মিলিসেকেন্ডে নিতে পারে, কেবল মাত্র 4 কেবি বা তার বেশি ডেটা লিখতে (আবার আমার মাইক্রোটির ছোট র্যামের সামর্থ্য দ্বারা সীমাবদ্ধ)। যত তাড়াতাড়ি সম্ভব আমাকে বেশ কয়েকটি মেগাবাইট লিখতে হবে, এটি প্রায় 500 কেবি / এস থেকে 100 কেবি / সেকেন্ডের চেয়ে কম পারফরম্যান্স হ্রাস করে।
আমি সচেতন যে এসডি কার্ডগুলি প্রযুক্তিগতভাবে সম্পূর্ণ এসপিআই-এর অনুগত নয়, তবে কীভাবে এই সমস্যাটি ঠিক করা যায়?