এসটিএম 32 জিপিআইও সেটিংস বোঝা


41

এসটিএম 32 স্ট্যান্ডার্ড পেরিফেরাল লাইব্রেরিতে আমাদের জিপিআইও কনফিগার করতে হবে।

তবে 3 টি ফাংশন রয়েছে যা সেগুলি কনফিগার করতে হবে তা আমি নিশ্চিত নই;

  • GPIO_InitStructure.GPIO_Speed
  • GPIO_InitStructure.GPIO_OType
  • GPIO_InitStructure.GPIO_PuPd

ইন GPIO_Speed সেখান থেকে বাছাই 4 সেটিংস

GPIO_Speed_2MHz  /*!< Low speed */
GPIO_Speed_25MHz /*!< Medium speed */
GPIO_Speed_50MHz /*!< Fast speed */
GPIO_Speed_100MHz

আমি কীভাবে জানব যে আমি কোন গতিটি বেছে নিই? উচ্চ গতি বা কম গতি ব্যবহার করে কি কোনও সুবিধা বা অসুবিধা রয়েছে? (যেমন: বিদ্যুৎ খরচ?)

ইন GPIO_OType সেখান থেকে বাছাই 2 সেটিংস

GPIO_OType_PP // Push pull
GPIO_OType_OD // Open drain

কোনটি বেছে নেবেন তা কীভাবে জানবেন? এবং খোলা ড্রেন এবং পুশ পুল কি?

ইন GPIO_PuPd সেখান থেকে বাছাই 3 সেটিংস

GPIO_PuPd_NOPULL // No pull
GPIO_PuPd_UP     // Pull up
GPIO_PuPd_DOWN   // Pull down

আমি মনে করি এই সেটিংসটি পুশ পুলের প্রাথমিক সেটিংসের সাথে সম্পর্কিত।


সম্পর্কিত: মাইক্রোকন্ট্রোলারগুলিতে স্পষ্টভাবে "ওপেন ড্রেন" মোডকে কীভাবে বাধ্য করা যায় যা এভিআর / আরডুইনো, পিআইসি ইত্যাদির মতো এটি স্থানীয়ভাবে সমর্থন করে না: ইলেক্ট্রনিক্স.সটেকেক্সচেঞ্জ
গ্যাব্রিয়েল স্ট্যাপলস

উত্তর:


45
  • জিপিআইওপুপিডি (পুল-আপ / পুল-ডাউন)

    ডিজিটাল সার্কিটগুলিতে, গুরুত্বপূর্ণ যে সিগন্যাল লাইনগুলি কখনই "ভাসমান" হতে দেয় না। অর্থাৎ, তাদের সর্বদা উচ্চতর বা নিম্ন রাজ্যে থাকা দরকার। ভাসমান অবস্থায়, রাজ্যটি নির্ধারিত হয় এবং কয়েকটি বিভিন্ন ধরণের সমস্যা সৃষ্টি করে।

    এটি সংশোধন করার উপায় হ'ল সিগন্যাল লাইন থেকে ভিসি বা জিএনডিতে একটি প্রতিরোধক যুক্ত করা। এইভাবে, যদি লাইনটি সক্রিয়ভাবে উচ্চ বা নিম্নটি ​​চালিত না হয়, তবে প্রতিরোধক একটি পরিচিত স্তরে যাওয়ার সম্ভাবনা তৈরি করবে।

    এআরএম (এবং অন্যান্য মাইক্রোকন্ট্রোলার) এটি করার জন্য অন্তর্নির্মিত সার্কিট্রি করেছে। এইভাবে, আপনার সার্কিটে আপনাকে আর একটি অংশ যুক্ত করার দরকার নেই। উদাহরণস্বরূপ, আপনি যদি "GPIO_PuPd_UP" চয়ন করেন তবে এটি সংকেত লাইন এবং ভিসি-র মধ্যে একটি প্রতিরোধক যুক্ত করা সমান।

  • GPIO_OType (আউটপুট ধরণ):

    পুশ-পুল: এটি আউটপুট টাইপ যা বেশিরভাগ লোকেরা "স্ট্যান্ডার্ড" হিসাবে ভাবেন। যখন আউটপুট কম যায়, সক্রিয়ভাবে মাটিতে "টানা" হয়। বিপরীতে, যখন আউটপুট উচ্চে সেট করা হয়, তখন সক্রিয়ভাবে ভিসিটির দিকে "ধাক্কা" দেওয়া হয়। সরলীকৃত, এটি দেখতে এরকম দেখাচ্ছে:

    ধাক্কা দাও, টান দাও

    অন্যদিকে ওপেন-ড্রেন আউটপুট কেবল এক দিকে সক্রিয়। এটি পিনটি মাটির দিকে টানতে পারে তবে এটি এটিকে বেশি চালাতে পারে না। পূর্ববর্তী চিত্রটি কল্পনা করুন তবে উপরের মোসফেট ছাড়াই। যখন এটি স্থলভাগে টানছে না, এমওএসএফইটিটি কেবল অ-পরিবাহী, যার ফলে আউটপুটটি ভাসমান হয়:

    খোলা নর্দমা

    এই ধরণের আউটপুটটির জন্য, সার্কিটের সাথে একটি পুল-আপ রেজিস্টার যুক্ত হওয়া দরকার, যা কম চালিত না হলে লাইনটি উচ্চতর হয়। আপনি এটি বাহ্যিক অংশের সাথে বা GPIO_PuPd মানটি GPIO_PuPd_UP এ সেট করে করতে পারেন।

    নামটি এসেছে যে মোসফেটের ড্রেন অভ্যন্তরীণভাবে কোনও কিছুর সাথে সংযুক্ত নেই connected মোসফেটের পরিবর্তে বিজেটি ব্যবহার করার সময় এই ধরণের আউটপুটটিকে "ওপেন-কালেক্টর "ও বলা হয়।

  • GPIO_Speed

    মূলত, এটি আউটপুট সিগন্যালের স্লিভ রেট (উত্থানের সময় এবং পতনের সময়) নিয়ন্ত্রণ করে। স্লিভ রেট যত দ্রুত, সার্কিট থেকে তত বেশি শব্দ প্রসারিত হয়। বেশিরভাগ হার কমিয়ে আনা ভাল অনুশীলন, এবং আপনার যদি কোনও নির্দিষ্ট কারণ থাকে তবে কেবল এটি বাড়ান।


ধন্যবাদ! দুর্দান্ত উত্তরের জন্য;), ভাসমান অবস্থায় থাকাকালীন আপনার কি বিভিন্ন সমস্যা সম্পর্কে আরও কিছুটা ব্যাখ্যা করতে আপত্তি আছে?
টিম

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

@ টিম হ্যাঁ, ক্রিস স্ট্রাটন ঠিক কী বলেছেন :)
বিটস্যাক

3
@ টিম এছাড়াও, যখন লাইনগুলি ভাসমান হয় তখন ভোল্টেজের মাত্রাটি সঙ্কুচিত করা খুব সহজ। ক্যাপাসিটিভ মিথস্ক্রিয়তার কারণে কেবলমাত্র সার্কিটের চারপাশে আপনার হাত
বুলানো ইনপুটটির

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

5

জিপিআইও গতি হ'ল জিপিআইও উত্পাদন করতে পারে সর্বোচ্চ ফ্রিকোয়েন্সি। লোয়ার সেটিংস শক্তি সঞ্চয় করতে পারে।

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

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

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