আমাকে এম্বেড থাকা প্রসেসরে GPIO এর দিকনির্দেশ এবং তারপরে প্রথমে কেন প্রয়োজন হবে?


16

ফার্মওয়্যার ইঞ্জিনিয়ার হিসাবে আমার পুরো সময়ের কাজ রয়েছে। আমাকে সম্প্রতি জিপিআইও কনফিগারেশনগুলি পর্যালোচনা এবং প্রয়োজনীয় সেটিংস পরিবর্তন করার জন্য একটি টাস্ক দেওয়া হয়েছে। আমি কয়েকটি পিন পেয়েছি যা ভুলভাবে কনফিগার হয়েছিল তাই স্বাভাবিকভাবেই আমি সেগুলি পুনরায় কনফিগার করেছিলাম, তবে আমাকে বলা হয়েছিল যে আমি এটি ভুল ক্রমে করেছি। আমি এখানে যা বলছি তা এখানে:

পূর্বে:
GPIO1.direction = INPUT;

এর পরে:
GPIO1.direction = OUTPUT;
জিপিআইও 1.ভ্যালু = 0;

তবে কোড পর্যালোচনা চলাকালীন আমাকে জানানো হয়েছে যে আমাকে আরম্ভের ক্রমটি নিম্নলিখিতটিতে পরিবর্তন করতে হবে:

জিপিআইও 1.ভ্যালু = 0;
GPIO1.direction = OUTPUT;

অন্য কথায় প্রথমে মানটি সেট করুন এবং তারপরে পিনের দিকনির্দেশ করুন। আমাকে আরও বলা হয়েছে যে এটি আধুনিক প্রসেসরের উপর এটি হওয়া দরকার কারণ তারা দুটি রেজিস্টার ব্যবহার করে, একটি ইনপুট জন্য এবং একটি আউটপুট জন্য, তবে পুরানো প্রসেসর কেবল একটি রেজিস্টার ব্যবহার করে, সুতরাং ক্রিয়াকলাপের ক্রমটি বিবেচনা করে না।
(দ্রষ্টব্য: আধুনিক = এআরএম কর্টেক্স এম 3 এবং উপরে, ওল্ড = ইনটেল 8051)

আমি কর্মক্ষেত্রে আরও ভাল ব্যাখ্যা চেয়েছিলাম, তবে আমি ভাল উত্তর পেতে পারি না। সে কারণেই আমি এখানে জিজ্ঞাসা করার সিদ্ধান্ত নিয়েছি।

সুতরাং এখানে আমার প্রশ্নগুলি:

  1. কেন নতুন প্রসেসরের উপর আরম্ভের ক্রমটি গুরুত্বপূর্ণ?
  2. কেন প্রারম্ভিক ক্রম পুরানো প্রসেসরের উপর গুরুত্ব দেয় না?
  3. আধুনিক প্রসেসরগুলিতে তারা কোন দুটি নিবন্ধের কথা বলছেন?
  4. তারা পুরানো প্রসেসরের উপর কোন একক নিবন্ধের কথা বলছেন?

যদি কেউ কোনও ডায়াগ্রাম সরবরাহ করতে পারে তবে এটি আরও ভাল।


1
"আধুনিক" এবং "ওল্ড" প্রসেসরগুলির একটি দরকারী উত্তর দিতে খুব বেশি অস্পষ্ট। বিভিন্ন আর্কিটেকচারের বিভিন্ন রেজিস্টার সেটিংস রয়েছে; আপনি কোন বিষয়ে কথা বলছেন তা জেনেও সেগুলি সম্পর্কে বুদ্ধিমানভাবে মন্তব্য করার উপায় নেই।
নিক জনসন

@ ইগনাসিও ওয়াজকেজ-আব্রাম না, সত্যিই নয়। রুমে খুব অভিজ্ঞ প্রকৌশলী ছিলেন যারা বলেছিলেন যে আমার পথে এটি করা গেলে আপনার লাইনে গ্ল্যাচ থাকবে।
ফ্ল্যাশবার্ন

@ নিক জোনসন মডার্ন = এআরএম কর্টেক্স এম 4 এবং তার বেশি, ওল্ড = ইন্টেল 8051.
ফ্ল্যাশবার্ন

নিবন্ধন করুন খুব সুন্দর ব্যাখ্যা। তবে পুরানো প্রসেসরের সম্পর্কে কী, উদাহরণস্বরূপ 8051। এটি তাদের জন্য কেন গুরুত্বপূর্ণ নয়?
ফ্ল্যাশবার্ন

2
Q4 টি একটি ডেটাসিট লিঙ্কের সাথে উত্তর দেওয়া আরও সহজ হবে।
pjc50

উত্তর:


22

আসল 8051 তথাকথিত সিউডো-দ্বি-নির্দেশমূলক আউটপুট পোর্টগুলি ব্যবহার করেছে (পুলআপ সহ ওপেন-ড্রেন), তাই কোনও বন্দরের দিকনির্দেশ সেটিংস ছিল না।

অবশ্যই আধুনিক সত্য দ্বি নির্দেশমূলক আউটপুট পোর্টগুলির জন্য আউটপুটটির জন্য পোর্ট পিনটি সক্ষম করার আগে একটি পরিচিত মান সেট করা ভাল, কারণ অন্যথায় আপনার আউটপুটটিতে একটি ক্ষণস্থায়ী থাকতে পারে যা অনাকাঙ্ক্ষিত কিছু করতে পারে।

উদাহরণস্বরূপ, আমার উত্তর এখানে দেখুন ।

সম্পাদনা করুন: এখানে একটি (অপেক্ষাকৃত) আধুনিক সিএমওএস মাইক্রোকন্ট্রোলারের জন্য আই / ও পিনের কাঠামো রয়েছে :

এখানে চিত্র বর্ণনা লিখুন

টিআরআইএস (ট্রাইসেট) কে আরও অনেক মাইক্রোতে ডিডিআর (ডেটা নির্দেশিকা নিবন্ধক) বলা হয়। এই ক্ষেত্রে, যদি টিআরআইএস ল্যাচ আউটপুট বেশি হয় তবে উভয় ট্রানজিস্টর 'অফ' থাকে, তবে পোর্টটি এখনও পড়তে পারে।

এখানে একটি নতুন মাইক্রোচিপ একটি সামান্য বেশি জটিল ইনপুট / আউটপুট পিন কাঠামো মাইক্রো

এখানে চিত্র বর্ণনা লিখুন

আবার, টিআরআইএস ল্যাচ আউটপুট অক্ষম করে। এটির মধ্যে একটি ল্যাট ল্যাচ রয়েছে যা পাঠ্য-সংশোধন-লেখার সমস্যাগুলি এড়াতে সহায়তা করে । পিআইসি সিরিজে আপনার কেবল এলএটি রেজিস্টারে লিখতে হবে (এবং পোর্ট রেজিস্টার থেকে পড়ুন)।

এখানে আসল 8051 এবং সিএমওএস 8051 ক্লাসিক আই / ও পোর্ট পিন অভ্যন্তরীণ সার্কিট্রি রয়েছে ( এই উত্স থেকে ):

এখানে চিত্র বর্ণনা লিখুন

বাহ্যিক ক্যাপাসিট্যান্স কাটিয়ে উঠার জন্য সংক্ষেপে চালু হওয়া পুল-আপের সাথে সমান্তরালভাবে একটি স্পিড-আপ ট্রানজিস্টর রয়েছে এতে আরও কিছুটা জটিলতা রয়েছে। যেমন আপনি দেখতে পাচ্ছেন, এখানে কোনও টিআরআইএস / ডিডিআর নিয়ন্ত্রণ নেই। সাধারণ ক্রিয়াকলাপে ব্যবহৃত পুল-আপ এমওএসএফইটিগুলি 'দুর্বল' they এগুলি যথেষ্ট ছোট (নিম্ন আইডিস) যা পিনের সাথে যুক্ত একটি বহিরাগত আউটপুট সিউডো-বিডায়ারেশনাল পোর্ট লাইনটিকে টানতে পারে।


বর্নানার জন্য ধন্যবাদ. আমি কিছুক্ষণের জন্য হার্ডওয়ারের সাথে কাজ করি নি তাই বিবরণ থেকে ব্যাখ্যাটি বুঝতে আমার খুব কষ্ট হয়। আপনি কি ছবি সরবরাহ করতে আপত্তি করবেন? বলুন যে একটি পিন কনফিগারেশন হার্ডওয়্যারটি কীভাবে একটি আধুনিক প্রসেসরের বনাম 8051 এ প্রদর্শিত হবে? আমি সত্যিই কৃতজ্ঞ হবে।
ফ্ল্যাশবার্ন

হার্ডওয়্যার বলতে কী বোঝ? চিপের অভ্যন্তরীণ জিপিআইও সার্কিটরি?
স্পিহ্রো পেফানি

এটাই সঠিক. কিছু ধরণের চিত্রটি সত্যই সহায়ক হবে।
ফ্ল্যাশবার্ন

16

আপনি যদি দিকটি প্রথমে সেট করেন তবে পিনটি তার বর্তমান আউটপুট মান যাই হোক না কেন সংক্ষেপে আউটপুটটিতে কনফিগার করা হবে। আপনি যদি মানটি আগে সেট করেন তবে এটি হবে না।

সুতরাং, আপনাকে যেভাবে সুপারিশ করা হয়েছে সেভাবে কাজটি আউটপুটটির ভুলগুলি এড়িয়ে চলে, যা পিনের সাথে কীভাবে সংযুক্ত রয়েছে তার উপর নির্ভর করে নির্দোষ থেকে বিপর্যয় পর্যন্ত হতে পারে।


ধন্যবাদ। সুতরাং পুরানো প্রসেসরগুলির কী, কেন এটি তাদের পক্ষে গুরুত্বপূর্ণ নয়? পুরাতন = ইন্টেল 8051
ফ্ল্যাশবার্ন

আমি ৮০৫১ এর সাথে পরিচিত নই your আপনার সহকর্মীরা যা বলেছিলেন তার উপর ভিত্তি করে, যদি একই রেজিস্টারটি দিক এবং মান উভয়কে কনফিগার করে তবে এটি কোনও বিষয় নয় কারণ সংকলক দুটি লেখাকে একটিতে অনুকূলিত করবে।
নিক জনসন

2
উপরের কারণগুলির জন্যও পুরানো প্রসেসরগুলির জন্য এই "নতুন" উপায়টি করা এখনও সম্ভবত একটি ভাল অভ্যাস হবে। বিভিন্ন orocessors বিভিন্ন প্রয়োজন হতে পারে, বিভিন্ন বিক্রেতাদের অন্যদের তুলনায় ভাল পরামর্শ দিতে পারে, এবং বিভিন্ন সংস্থার / নিয়োগকারী / দল এই জাতীয় বিবরণ সম্পর্কে বিভিন্ন নীতি থাকতে পারে।
বিল

2
প্রকৃতপক্ষে ... সবসময় ধরে নিও যে ডিআইও সর্বনাশের লেজারের সাথে প্রদত্ত;)
মাইকেল

4

ডিফল্ট দিকটি ধরে নেওয়া একটি ইনপুট (অর্থাত্ হাই-জেড, যা আমরা বোঝাচ্ছি না যে এমসিইউ সংযুক্ত লাইনগুলিতে কোনও মান চাপিয়ে দেবে), বন্দর স্থাপনের এই আদেশটি পছন্দনীয় তবে প্রয়োজনীয় নয়। এটি সত্যই প্রয়োজনীয় যখন আপনার অ্যাপ্লিকেশনটির প্রয়োজন হয় যে প্রারম্ভকালে বন্দরের মান হবে না, বলুন 1। তারপরে আপনি মানটি সেট করবেন 0এবং তারপরে দিকটি পরিবর্তন করবেন। এই ক্ষেত্রে আপনি সেটিংসের দিকনির্দেশ এবং মানের মধ্যে সম্ভাব্য ক্ষণিকের "ভুল" এড়াতে পারেন যার ফলস্বরূপ সেই পিনটিতে স্পাইক হতে পারে। এবং এটি কেবল নতুন নয়, এমন যুক্তিযুক্ত সমস্ত প্রসেসরের ক্ষেত্রেও এটি সত্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.