আমার মাইক্রোকন্ট্রোলারের কোনও ইউআআআআটি নেই তাই আমি কীভাবে এটি যুক্ত করতে পারি?


13

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


11
ইউআরটি 26129 দ্বারা বর্ণিত সফটওয়্যারটি ইউআআরটি উপায়কে বিট- বেং বলা হয় ।
জোহান.এ

4
কেবল আমার খুব সাবজেক্টিভ $ 0.02, তবে আমি সাধারণত অন্য উপায়ে পরিবর্তে আলাদা ডেডিকেটেড ব্যাটারি কন্ট্রোলার এবং ইউসি-ইন্টিগ্রেটেড ইউআআআরটি পছন্দ করি। ইউসিতে আপনার কেন ব্যাটারি পরিচালনার দরকার?
মেল

আমাকে রিচার্জেবল ব্যাটারি ব্যবহার করতে হবে যা সোলার প্যানেল ব্যবহার করে চার্জ করা হবে তাই সিরিজের চারটি যুদ্ধের দরকার যা একবারে একবার ব্যবহার করা হবে
user27475

4
একটি প্রশ্ন হ'ল আপনি ইউআআআরটি কতটি ব্যবহার করতে চান এবং কোন দিকে। আপনি যদি কেবলমাত্র একটি মাঝেমধ্যে ডিবাগ বা স্থিতি বার্তা উত্পন্ন করতে চান, এমন সময়ে যখন আপনার প্রসেসর অতিরিক্ত অতিরিক্ত চাহিদার আওতায় নেই, বিট বিংিং সিরিয়াল আউটপুটটি খুব আকর্ষণীয় দেখাচ্ছে। পিন-পরিবর্তন বাধা ব্যবহারের মতো টিকগুলি রয়েছে যা একটি ইনপুট চ্যানেল থাকার গড় ভারও কমিয়ে আনতে পারে, তবে আপনি যদি অন্য বাস্তব-সময় প্রতিশ্রুতি থাকে এমন সময়ে উচ্চ বৌদের হারে অক্ষর পাওয়ার আশা করেন, তবে এটি হতে পারে একটি ইস্যু.
ক্রিস স্ট্রাটন

উত্তর:


17

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

ডেটাশিটের এক নজরে দেখে মনে হয় যে আপনার মাইক্রোকন্ট্রোলারের এসপিআই এবং আই 2 সি রয়েছে (যা এটমেল একটি টু-ওয়্যার ইন্টারফেস (টিডব্লুআই) বলে)। বাহ্যিক ইউআআআরটি সংযুক্ত করার জন্য এগুলি সম্ভবত সেরা ইন্টারফেস হতে পারে। বেশ কয়েকটি নির্মাতার কাছ থেকে বলা ডিভাইসগুলি পাওয়া যায়। কিছু উদাহরণ:

  • এক্সার ( http://www.exar.com/connectivity/uart-and-bridging-solutions/i2c-spi-uarts ) এসপিআই / আই 2 সি 1- এবং 2-চ্যানেল ইউআরটি ডিভাইসগুলির একটি লাইন পাওয়া যায়, যা covering 1.6- কে আচ্ছাদন করে 3.3V অপারেটিং পরিসীমা। আমি এই অংশগুলির কোনও বিশেষভাবে ব্যবহার করি নি, তবে আমি অতীতে এক্সার ডিভাইসগুলি ব্যবহার করেছি (সমান্তরাল মেমরি-বাস ইন্টারফেস সহ), এবং তারা ভাল কাজ করেছে।

  • এনএক্সপি ( http://ics.nxp.com/products/bridges/i2c.spi.slave.uart.irda.gpio/ ) এসপিআই / আই 2 সি ইউআরটি / আইআরডিএ / জিপিআইও ডিভাইসগুলির একটি লাইন উপলব্ধ, 1- এবং 2 তেও চ্যানেল বিভিন্ন একটি ভোল্টেজ পরিসীমা বিভিন্ন। আমি এই অংশগুলি (বিশেষত SC16IS762) অতীতে ব্যাপক সাফল্যের সাথে ব্যবহার করেছি।

  • ম্যাক্সিম ( http://www.maximiningrated.com/datasheet/index.mvp/id/2052 ) এর MAX3110E এবং MAX3111E ডিভাইস রয়েছে, যা এসপিআই-সংযুক্ত UART গুলি। এই ডিভাইসগুলির একটি অনন্য বৈশিষ্ট্য হ'ল তাদের একটি সংহত আরএস -232 লাইন ড্রাইভার রয়েছে। সুতরাং, আপনার যদি এমন কোনও ডিভাইসে ইন্টারফেস করার জন্য আপনার ইউআরটির প্রয়োজন হয় যা লজিক স্তরের (যেমন একটি পিসি) পরিবর্তে আরএস -৩৩২ লাইন ভোল্টেজ ব্যবহার করে, তবে এটি কার্যকর হতে পারে, কারণ এটি আপনাকে আপনার বোর্ডে অন্য একটি লাইন ড্রাইভার আইসি যুক্ত করা থেকে রক্ষা করবে।


বাহ, কখনই জানত না ম্যাক্সিমের কাছে এই আইটেমগুলি ছিল, আমি পারলে +2 করতাম।
তেভো ডি

10

আপনি যদি কোনও হার্ডওয়্যার সমাধান খুঁজছেন, ম্যাক্সিমের একটি মাইক্রোকন্ট্রোলারের কাছে এসপিআই ইন্টারফেস সহ কয়েকটি ইউআরটি আইসি রয়েছে (যা আপনার অংশে অন্তর্ভুক্ত)। MAX3100 বা অন্যান্য বিকল্পগুলি এখানে দেখুন: http://www.maximintegrated.com/products/interface/controllers-expanders/uart.cfm


8

আপনাকে একটি সফ্টওয়্যার ইউআআআরটি ড্রাইভার ব্যবহার করতে হবে। আপনি এই ইউআরটি থেকে ঠিক কী প্রত্যাশা করছেন তার উপর নির্ভর করে আপনি এভিআর 305 (অত্যন্ত কমপ্যাক্ট, তবে অর্ধ-দ্বৈত প্রেরণ / গ্রহণ বন্ধ করার বাইরে কোনও বৈশিষ্ট্য), AVR274 (বিঘ্নিত চালিত, মোটামুটি বৈশিষ্ট্য সম্পূর্ণ) ব্যবহার করতে পারেন, আপনি নিজের সফ্টওয়্যার ইউআরটি ড্রাইভার লিখতে পারেন বা আপনি ইন্টারনেটে খুঁজে পাওয়া একটি ব্যবহার করতে পারেন, উদাহরণস্বরূপ 'এআরআর সফ্টওয়্যার uart' গুগল করে


3

সফ্টওয়্যার "ইউআরটি" ডিজাইন সম্পর্কে একটি সংক্ষিপ্ত নোট: প্রয়োজনীয়তার উপর নির্ভর করে কমপক্ষে গুণগতভাবে ভিন্ন ভিন্ন পদ্ধতি গ্রহণ করা যেতে পারে:

  • একটি "সবকিছু নিয়ে যান" বিট-ব্যাং ড্রাইভার সমস্ত বিঘ্ন অক্ষম করবে এবং প্রতিটি বিট ঘড়ির জন্য চক্র-গণিত কোড ব্যবহার করবে। "সমস্ত কিছুর উপর নজর রাখুন" ড্রাইভারের সাথে ডেটা প্রাপ্ত করা দরকার যে ডেটা এলে নিয়ন্ত্রণকারী তার জন্য অপেক্ষা করা ছাড়া কিছুই করে না।

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

  • একটি সম্পূর্ণ-বিঘ্নিত-চালিত বিট-ব্যাং ড্রাইভার একটি স্থির হারের টাইমার ব্যবহার করে যা বেশিরভাগ ডেটার রেটে বেশিরভাগ চলমান থাকে (3x এবং 5x উভয়ই 4x এর চেয়ে ভাল) এবং সেই টাইমার দিয়ে সমস্ত কিছু করে। এই ধরনের ড্রাইভার অন্য সমস্ত কিছুর সাথে একযোগে চলতে পারে তবে পূর্বের ড্রাইভার ধরণের প্রয়োজনের চেয়ে দ্রুত সিপিইউ প্রয়োজন।

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

কেবলমাত্র তৃতীয় স্টাইলের ড্রাইভার কোনও ডেটা বাইট প্রেরণ করার সময় ডেটা বাইটের আগমন শুরু হওয়ার সম্ভাবনাটি পরিচালনা করতে সক্ষম হবে। প্রথম দুটি শৈলীর কিছু পূর্ণ গতির পূর্ণ-দ্বৈত যোগাযোগ প্রোটোকলের জন্য ব্যবহার করা যেতে পারে যদি কন্ট্রোলার সাথে কথা বলার সময় কেবল কথা বলতে হয়। কৌশলটি হ'ল "ডেটা পড়ুন এবং লেখুন" রুটিন যা একটি ইনকামিং স্টার্ট বিটের জন্য অপেক্ষা করবে এবং যখন একটি সনাক্ত করা যায় তখন একটি পঠনকে ওভারল্যাপ করে এবং এমনভাবে লিখুন যে নিয়ন্ত্রণকারী প্রতিটি বিট প্রেরণ করে ঠিক যেমন আগত তথ্যগুলি পরীক্ষা করার জন্য examine একবার নিয়ামক আগত প্রারম্ভিক বিটটি সনাক্ত করে ফেললে, ঠিক পরবর্তী সময় এটি 8 ডাটা বিট এবং স্টপ বিটটি সন্ধান করতে হবে তা ঠিক জানবে এবং এইভাবে জানবে যে এটি নিজের ডেটা আউটপুট দেওয়ার মধ্যে সময়টিকে নিরাপদে ব্যবহার করতে পারে।

একটি বিভাজন নোট: একটি কন্ট্রোলার যা তথ্য গ্রহণের জন্য বিট-ব্যাং উআর্টের প্রথম দুটি স্টাইলগুলির মধ্যে একটি ব্যবহার করে, ডেটা ক্ষতি এড়াতে পরবর্তী বাইটের স্টার্ট বিটের প্রান্তিক প্রান্তের আগে প্রতিটি বাইটের ডেটা প্রক্রিয়া করতে হবে। যদি নিয়ামক জানেন যে প্রসেসিংয়ে কমপক্ষে আধা বিট সময় নেবে, তবে স্টপ বিটের অপেক্ষা না করে সর্বশেষ ডেটা বিটটি গ্রহণ করার সাথে সাথে প্রতিটি বাইট গ্রহণের সাথে সাথে প্রসেসিংয়ের জন্য উপলব্ধ সময় সর্বাধিকতর করতে পারে। নিয়ামককে আরও বেশি সময় দেওয়ার আরও উপায় হিসাবে, তবে ডিভাইসটি এটির পরিবর্তে দুটি স্টপ বিটের সাহায্যে ডেটা সংক্রমণ সরবরাহ করা সহায়ক হতে পারে। যদি "মার্ক প্যারিটি" কনফিগার করা যায় তবে এটি আরও একটি বিট সময় যোগ করবে। উদাহরণস্বরূপ 115200-8-M-2 এ সংক্রমণ 57600-8-N-1 এর চেয়ে বেশি প্রক্রিয়াজাতকরণের অনুমতি দেবে, যদিও এটি 1.6 গুনের চেয়ে বেশি দ্রুত ডেটা ফিড করবে।


1

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

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