আমি একটি ভি-ইউএসবি প্রকল্পে কাজ করছি যা এটিএমগ 328 পি ব্যবহার করে কী-বোর্ড হিসাবে প্রদর্শিত হবে। ইউএসবি অংশটি দুর্দান্ত কাজ করছে (এটি আমার প্রথম ভি-ইউএসবি প্রকল্প নয়) তবে আমি ভি-ইউএসবি স্ট্যাকটি চালু usbInit()
করার পরে এসডি কার্ড লাইব্রেরিতে সমস্ত কল ব্যর্থ হয়। আমি যদি আগে একই ফাংশনগুলিতে কল করি তবে usbInit()
সবকিছু ঠিকঠাকভাবে কাজ করে।
আমি ডায়াভোলিনো নামে একটি আরডুইনো ক্লোন ব্যবহার করি তবে আরডুইনো / তারের কাঠামো ছাড়াই। আমার কাছে ডিজিটাল আই / ও 2 এবং 3 এর সাথে ইউএসবি সংযুক্ত রয়েছে এবং এসডি কার্ডটি 10-13 (অন্তর্নির্মিত এসপিআই লাইনগুলি) এ আছে।
আমি এসডি কার্ড গ্রন্থাগারটি সন্ধান করেছি এবং এটির ব্যতীত অন্য কোনও বাধা বা নিবন্ধগুলি ব্যবহার করে এর চিহ্ন নেই SPxx
। আমিও grep
ভি-ইউএসবি কোড থাকলেও এটি SPxx
রেজিস্টারগুলিতে স্পর্শও করে না।
সমস্যার প্রথম চিহ্নটি যখন এসডি কার্ডটি অ্যাক্সেস করার কথা ছিল তখন ডিভাইসটি সংযোগ বিচ্ছিন্ন হয়ে যায়। তারপরে আমি সমস্ত এসডি কার্ড হ্যান্ডলিং লুপগুলিতে রেখেছি usbPoll()
এবং wdt_reset()
কল করেছি এবং দেখেছি যে লেখার ক্ষেত্রে কার্ডটি সর্বশেষ দুটি বাইট (সিআরসি -16) প্রেরণের পরে কার্ড থেকে স্বীকৃতির জন্য চিরকাল অপেক্ষা করে।
আমার ব্যবহৃত এসডি কার্ড গ্রন্থাগারটি হল sd_raw
রোল্যান্ড রিগেল।