প্রকৃতপক্ষে, এসডি সূচনাতে আপনি যে তথ্য / কোডের সন্ধান করতে পারেন সেগুলির বেশিরভাগই তারিখ বা অসম্পূর্ণ, কারণ এটি বছরের পর বছর এসডিএইচসি এবং এসডিএক্সসির পূর্বাভাস দেয়। পদ্ধতিটি আজকাল আরও জটিল, কারণ এটি আপনাকে পুরানো হার্ডওয়্যারটিকে পিছনের দিকে সামঞ্জস্যপূর্ণ উপায়ে মোকাবেলা করতে বাধ্য করে।
প্রথমত, অন্যদের দ্বারা উল্লিখিত হিসাবে, একটি কম প্রাথমিক ঘড়ির হার নির্বাচন করুন (সাধারণত 100 কেএইচজেড - 400 কেজি হার্জ পরিসীমা; সম্ভব হলে 400 কেএইচজেড ব্যবহার করুন); আপনি যদি পরে ডিভাইসটির জন্য অনুমতি দেয় তবে আপনি উচ্চতর ঘড়িতে পরে যেতে সক্ষম হবেন। যদিও নতুন কার্ডগুলি নিরাপদে মেগা হার্জ-ইশ ক্লকিং প্রতিরোধ করতে পারে, পুরানোরা অভিযোগ করবেন (যেমন যোগাযোগ করবেন না বা আবর্জনা ফেরাবেন না)।
পরবর্তী জিনিসটি হ'ল CMD1
এসডি / এসডিএইচসি / এসডিএক্সসি কার্ডগুলি আরম্ভ করার জন্য আপনার কার্ড ব্যবহার করা উচিত নয় যতক্ষণ না আপনার কার্ড CMD55
/ সনাক্ত না করে ACMD41
; এসডি কার্ড স্পেসিফিকেশন হিসাবে বলা হয়েছে:
যে কোনও ক্ষেত্রে সিএমডি 1 এর প্রস্তাব দেওয়া হয় না কারণ হোস্টের পক্ষে মাল্টিমিডিয়াকার্ড এবং এসডি মেমোরি কার্ডের মধ্যে পার্থক্য করা কঠিন হতে পারে।
কিছু কন্ট্রোলার (বেশিরভাগ নতুন এবং উচ্চতর কার্ডের কার্ড) আপনি আইডলিতে থাকবেন যদি আপনি CMD1
তাদের কাছে ইস্যু করেন। আপনার প্রথমে CMD8 0x1AA
রিসেটের পরে ইস্যু করা উচিত ( CMD0
) এবং তারপরে ব্যবহার করার চেষ্টা করুন CMD55 + ACMD41
। যদি এবং শুধুমাত্র যদি এটি ব্যর্থ হয় তবে ব্যবহার করুন CMD1
।
টিপি; ডাঃ এসপিআই মোডে কার্ডটি আরম্ভ করার জন্য আপনার উচিত:
CMD0
যুক্তি :, 0x0
সিআরসি: 0x95
(প্রতিক্রিয়া 0x01
:) - নোট করুন যে 0xFF
গার্ল্ড প্রতিক্রিয়া ক্ষেত্রে আপনার কেবল এই পদক্ষেপটি পুনরাবৃত্তি করা উচিত; আরও তথ্যের জন্য নিচে দেখুন.
CMD8
আরগ:, 0x000001AA
সিআরসি: 0x87
(প্রতিক্রিয়া: 0x01
এরপরে আর্গো এর প্রতিধ্বনি অনুসরণ করে 0x000001AA
) - যদিও মনে হতে পারে যে এই আদেশটি alচ্ছিক , এটি নতুন কার্ডগুলির জন্য সম্পূর্ণ বাধ্যতামূলক। যদিও 0x1AA
এখানে একটি সাধারণ আরগ মান রয়েছে তবে আপনি অন্য মানগুলিও পাস করতে পারেন; "সারণী 7-5 দেখুন: এসপিআই মোডে সিএমডি 8 এর জন্য কার্ড অপারেশন", পি। 108 বিশদে বিশদ
3a। CMD55
ARG: 0x0
, সিআরসি: কোন, 0x65
আসলে (প্রতিক্রিয়া: 0x01
; CMD55
করার উপসর্গ হচ্ছে যে ACMD
, যদি প্রতিক্রিয়া 0x05
, আপনি একটি পুরানো কার্ড পেয়েছেন - পুনরাবৃত্তি CMD1
ARG সঙ্গে 0x0
[সিআরসি 0xF9
] এর পরিবর্তে CMD55
/ ACMD41
)
3b। ACMD41
, আরগ:, 0x40000000
সিআরসি: যে কোনও, 0x77
আসলে (মনে রাখবেন যে এই যুক্তিটি কার্ডটি এইচসিএস হিসাবে ধরেছে, যা সাধারণত ক্ষেত্রে হয়; পুরানো কার্ডগুলির জন্য 0x0
আর্গ [সিআরসি 0xE5
] ব্যবহার করুন)। প্রতিক্রিয়া যদি হয় 0x0
, আপনি ঠিক আছেন; যদি এটি হয় তবে 0x01
3 এ; যদি এটি 0x05
হয় তবে এটির উপরে নোটটি দেখুন (3 এ।); যদি তা না হয় তবে এর সাথে কিছু ভুল হয়েছে (নীচে দেখুন)।
CMD1
CMD0
CMD8
CMD55
ACMD41
CMD55
ACMD41
CMD0
CMD8
CMD1
CMD1
CMD55
ACMD41
CMD1
0x05
এনএন0
0xFF
CMD0
এনCMD0
0xFF
0x01
CMD8
নোট করুন যে এমএসবি সেট রয়েছে কিন্তু প্রতিক্রিয়াগুলি 0xFF
সাধারণত এমন হয় না যে আপনার এসপিআই ক্লকিংয়ের ক্ষেত্রে একটি শিফট পেয়েছে (যেমন, ভিসি ড্রপ, যা আপনি যখন এসডি হটপ্লাগগুলি করছেন তখন নিয়মিত ঘটে)। এটির সমাধানের জন্য, আপনি ডিভাইসটিকে পুরোপুরি পুনরায় সেট করার চেষ্টা করতে পারেন (পাওয়ার চালু / বন্ধ, ডিএস্রেট / এসেরেট এসেস ইত্যাদি); এটি সাধারণত কাজ করে।
এছাড়াও, জল্পনা বলে
সর্বশেষ এসডি মেমোরি কার্ড বাসের লেনদেনের পরে, হোস্টটি ক্লকটি বন্ধ করার আগে ক্রিয়াকলাপটি সম্পন্ন করার জন্য কার্ডের জন্য 8 (আট) ঘড়ি চক্র সরবরাহ করতে হবে।
এটি এটি ছাড়া কাজ করতে পারে, তবে যেহেতু 8 চক্র = 1 এসপিআই আউটপুট বাইট, এটি খুব বেশি ক্ষতি করবে না এবং এটি এটির পক্ষে ঠিক।
নোট করুন যে আপনার প্রত্যেকের আগে এবং পরে কমপক্ষে S̲S̲ (ওরফে সিএস) কম হওয়া উচিত CMD
- এটির ক্ষেত্রে এটি সম্পূর্ণ বাধ্যতামূলক CMD0
(ডিভাইসটি এটি ছাড়া চালু হবে না) এবং বাস্তবে CMD
আপনার যদি কোনও মান থাকে তবে অন্য সমস্ত ক্ষেত্রে প্রয়োজনীয় -কম্পিয়েন্ট এসডি কার্ড কার্ডের S GS̲ কে স্থায়ীভাবে GND এর সাথে সংযুক্ত করার ফলে মনে হতে পারেআপনার কার্ডটি কেবলমাত্র ইউএস আউটপুট পিন এবং কোড দ্বারা এটি পরিচালনা করার প্রয়োজনীয়তা উভয়কেই বাঁচাতে পারে, কারণ কার্ডটি কেবলমাত্র একমাত্র এসপিআই ক্লায়েন্ট হলেই আপনার ধারণাটি ভাল হতে পারে এবং কার্ডটি ধরে নেওয়া উচিত যে এটি সমস্ত নির্বাচিত হয়েছে because সময়. বাস্তবে, কিছু কার্ড (কেবল তাদের বেশিরভাগ না হলেও) কেবলমাত্র নিম্ন সনাক্তকরণের পরিবর্তে একটি উচ্চ থেকে নীচের opeালটি চালু হওয়ার প্রত্যাশা করে এবং আপনি যদি S̲S̲ বিটটি মোটেও টগল না করেন তবে ক্রুদ্ধ হন এবং তারপরেও পিছিয়ে যান ঘড়ি বা থুতু আবর্জনা; কিছু (সাধারণত নতুন) কার্ডগুলির কাজ করা উচিত, কিছু (পুরানো) নাও হতে পারে, ওয়াইএমএমভি (এখনও আবার)। তবুও, আরও শক্তিশালী এসপিআই কনফিগারেশনের জন্য (> 1 স্লেভ ডিভাইস) প্রদত্ত এসডি কার্ডের সাথে কোনও প্রকৃত লেনদেনের আগে পিনটি কম মনে করতে হবে।
এছাড়া যখন বৈশিষ্ট বলছেন যে শুধুমাত্র CMD0
এবং CMD8
SPI মোডে সিআরসি থাকা উচিত, কিছু এসডি কার্ড (Transcend বেশী মত) সঠিক সিআরসি প্রয়োজন বলে মনে হচ্ছে CMD55
/ ACMD41
- আপনি নিরাপদ পাশ হতে চাই, কেবল তাদের জন্য একটি precalculated মান ব্যবহার।
এছাড়াও, এসপিআইকে নিজে থেকে পুলআপ / ডাউনগুলি প্রয়োজন হয় না, তবে মিসোতে 47k পুলআপ নিক্ষেপ করা ভাল ধারণা হতে পারে; কিছু ডিভাইস নির্দিষ্ট পরিস্থিতিতে তাদের ডিও পিন উচ্চ-জেড ছেড়ে দেয় (যেমন প্রাথমিকভাবে নয়) এবং ভাসমান পিনগুলি সর্বদা অদ্ভুত সমস্যার উত্স হতে পারে। আপনার ইউসির যদি 3.3 ভিসি থাকে তবে আপনি অভ্যন্তরীণ পুলআপ ব্যবহার করতে পারেন; যদি এটি 5 ভি হয় তবে আপনার এমআইএসও লাইনটিতে ইতিমধ্যে যথাযথ 5-> 3.3V লজিক অনুবাদ না থাকলে এটি করবেন না।
আরও পড়া:
এমএমসি / এসডিসি কীভাবে ব্যবহার করবেন
এসডি স্পেসিফিকেশন পার্ট 1 সরলিকৃত শারীরিক স্তর সরলীকৃত স্পেসিফিকেশন - সর্বাধিক গুরুত্বপূর্ণ বিভাগ 6.4.1 পাওয়ার আপ এবং 7.2.1 মোড নির্বাচন এবং চিত্র 7-1 সহ প্রারম্ভিককরণ : এসডি মেমোরি কার্ডের স্টেট ডায়াগ্রাম (এসপিআই মোড)
CMD8
আগে জারি করা ছাড়া একেবারেই শুরু হবে না । এছাড়াও, ঘড়িটি সাধারণত বুদ্ধিমানের মধ্যে না হওয়া পর্যন্ত কোনও সমস্যা হয় না it's