দুটি পিন একই বিকল্প ফাংশনটি কনফিগার করা থাকলে এসটিএম 32 এ কী ঘটে?


10

STM32F051 ম্যানুয়ালটি পড়ে, দেখে মনে হচ্ছে দুটি পিনে একই বিকল্প ফাংশনটি কনফিগার করা সম্ভব; উদাহরণস্বরূপ, আপনার একই সাথে একাধিক USART1_TX পিন থাকতে পারে। বা উদাহরণস্বরূপ দুটি ইউএসইয়েন্টআরআরএক্স পিনের আরও সমস্যাযুক্ত কেস। এই ক্ষেত্রে ম্যানুয়ালটি নীরব। এটি কি আইনী / নিরাপদ? এটি কি দরকারী?


2
আকর্ষণীয় প্রশ্ন। আমি দেখতে পাচ্ছি কেন এটি কখনও কখনও কার্যকর হবে যদিও উদাহরণস্বরূপ, অন্য পিনে টিএক্স আউটপুট পেতে বা কয়েকটি জায়গায় বাফার ক্লকগুলি পেতে ডিবাগ করার সময়। এটি অনুসন্ধানের জন্য যে কেউ সংরক্ষণ করতে পারে যদিও এটি প্রাসঙ্গিক ম্যানুয়াল লিঙ্কে যুক্ত করার উপযুক্ত হতে পারে।
পিটারজে

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

আমি এটি কখনও চেষ্টা করি নি, তবে পিন ডায়াগ্রামগুলি থেকে আমি যা প্রত্যাহার করেছি তার উপর ভিত্তি করে আপনি মূলত অভ্যন্তরীণভাবে পিনগুলি একসাথে সংযুক্ত করবেন।
rjp

উত্তর:


5

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

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


3

হ্যাঁ, এটি দরকারী। STM32F407VGT6- এ পরীক্ষার ফলাফল: উভয় এফ পিনগুলি একযোগে এএফ হিসাবে ব্যবহার করা যেতে পারে, কমপক্ষে যদি এই পিনগুলি এএফ ইনপুট হিসাবে ব্যবহার করা হয়। পরীক্ষাটি ছিল বহিরাগত ট্রিগার - "TIM1_ETR" সিগন্যালের ক্রমবর্ধমান প্রান্তে TIM1 ট্রিগার করতে। "টিআইএম 1_ইটিআর" সিগন্যালটি পিন পিই 7 এবং / বা এমসিইউ প্যাকেজের পিএ 12 এ ম্যাপ করা যায়।

পরীক্ষা: টিআইএম 1 এর জন্য পিন পিই 7 এবং পিএ 12 উভয়কে এফ "টিআইএম 1_ইটিআর" হিসাবে শুরু করুন:

{
    GPIO_InitTypeDef GPIO_InitStruct = { 0 };
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;

    GPIO_InitStruct.Pin = GPIO_PIN_7;
    HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); // configure PE7 as AF

    GPIO_InitStruct.Pin = GPIO_PIN_12;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // configure PA12 as AF
}

ফলাফল - টিআইএম 1 টি যে কোনও পিনের PE7 বা PA12 এর প্রান্তে উঠিয়ে শুরু করা হয়।

এটি রান-টাইমে এমএউএক্স (পরিবর্তন) এএফ পিনগুলির উপায় প্রকাশ করে:

main
{
  GPIO_InitTypeDef GPIO_InitStruct = { 0 };

// Deactivate PA12 input (set as regular input):
        GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
        GPIO_InitStruct.Pin = GPIO_PIN_12;
        HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

// select PE7 as a trigger source,
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Pin = GPIO_PIN_7;
        HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

// Arm the timer
    arm_tim1();

/* Now timer will be started by rising edge only on PE7 */

// ... later one can select PA12 as trigger source. Deactivate PE7 (set as regular input):
        GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
        GPIO_InitStruct.Pin = GPIO_PIN_7;
        HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

// Activate PA12
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Pin = GPIO_PIN_12;
        HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

// Arm the timer
    arm_tim1();
/* timer will be started by rising edge only on PA12 */
}

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

"STM32CubeF4 v5.3" + "ফার্মওয়্যার প্যাকেজ ভি 1.24.0 / 08-08-ফেব্রুয়ারী -2018 দ্বারা কোড উত্পন্ন হয়েছে" "


2

মূলত, পিনগুলি হ'ল জিপিআইও যা বিকল্প ফাংশনগুলিতে বরাদ্দ করা যেতে পারে, যেমন ইউপয়েন্টআরএক্স। প্রতিটি বিকল্প ফাংশনটির ডিফল্ট পিন এবং বিকল্প পিন রয়েছে যেখানে ফাংশনটি পুনরায় করা যেতে পারে। আপনি যদি বিভাগ 9.1.5 তে STM32F103 এর রেফারেন্স ম্যানুয়ালটি পরীক্ষা করেন তবে তারা বলে:

বিভিন্ন ডিভাইস প্যাকেজের জন্য পেরিফেরাল I / O ফাংশনের সংখ্যাটি অনুকূল করতে, কিছু অন্য পিনে কিছু বিকল্প ফাংশন পুনরায় তৈরি করা সম্ভব। এটি সফ্টওয়্যার দ্বারা, সম্পর্কিত রেজিস্টারগুলি প্রোগ্রামিংয়ের মাধ্যমে অর্জন করা হয় (177 পৃষ্ঠায় এএফআইও রেজিস্ট্রারগুলি পড়ুন that সেক্ষেত্রে বিকল্প ফাংশনগুলি আর তাদের আসল কার্যভারগুলিতে ম্যাপ করা হয় না


আমি যেভাবে ছাঁটাই করেছি তা হ'ল: একবার আপনি নতুন পিনগুলি অর্পণ করার পরে, পূর্বের কার্যভারটি সরিয়ে দেওয়া হবে, যাতে আপনি প্রযুক্তিগতভাবে একই পেরিফেরিয়াল ফাংশনের সাথে একাধিক পিন সংযুক্ত করতে পারবেন না।
dext0rb

1
এটি সম্ভব নয়, কারণ (কমপক্ষে F103 এ, আমি এসটিএম 32 এর অন্যান্য ডেরিভেটিভগুলির সাথে কাজ করি নি), বিকল্প পিনটি পুনরায় তৈরির বৈশিষ্ট্যটি ব্যবহার না করে ফাংশনে বরাদ্দ করা যায় না, এমনকি আপনি এএফ_আউটপুট হিসাবে সেট আপ করলেও জিপিআইও সেটআপ। এবং রিম্যাপ করার পরে, ফাংশনটি আমি আর মূল পিনটিতে উপলব্ধ নেই। আমি আশা করি এটি আমার অর্থ কি তা স্পষ্ট করে দিয়েছে।
Manu3l0us

1
এই সম্পন্ন করা হয় ভিন্ন ভিন্ন উপগোত্রে উপর। এফ 1 রেজিস্টার কাঠামো এটি নিষিদ্ধ করতে পারে তবে এফ 3 কাঠামোটি আলাদা, যেখানে আপনি পিনটি ফাংশনের পরিবর্তে একটি পিনে বিকল্প ফাংশনে পিনটি কনফিগার করেন, তাই সদৃশ ম্যাপিংগুলি সম্ভব বলে মনে হচ্ছে। বাস্তবে, আপনি জিজ্ঞাসিত প্রশ্নের পরিস্থিতিটির উত্তর দিচ্ছেন না, যা মনে হয় এমন একটি অংশ সম্পর্কে যেখানে নিবন্ধকার কাঠামো এটির অনুমতি দেয়।
ক্রিস স্ট্রাটন

1
@ ক্রিস স্ট্রাটন এসটিএম 32 এফ 302 রেফ ম্যানুয়াল বিভাগ 8.3.2 : "ডিভাইস I / O পিনগুলি মাল্টিপ্লেজারের মাধ্যমে অনবোর্ড পেরিফেরিয়াল / মডিউলগুলির সাথে সংযুক্ত রয়েছে যা একবারে কেবলমাত্র একটি পেরিফেরিয়াল বিকল্প ফাংশন (এএফ) একযোগে I / O পিনের সাথে সংযুক্ত করে In এইভাবে, একই আই / ও পিনে পেরিফেরিয়ালগুলির মধ্যে কোনও বিরোধ থাকতে পারে না । " তবে বাস্তবে, এটি এক এএফ-তে একাধিক আই / ও সম্পর্কে কিছু বলে না। ইনপুট পিনের জন্য কি একাধিক বিকল্প রয়েছে?
Manu3l0us

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