আমি ঠিক বুঝতে পেরেছি যে স্ট্যান্ডার্ড বাউডের হারগুলি উত্পন্ন করার জন্য 8051 পরিবার 11.0592 মেগাহার্টজ এবং এর গুণগুলি ব্যবহার করে। তবে এমন এসসি রয়েছে যা 15 মেগাহার্টজ ব্যবহার করে। তারা কীভাবে তখন এটি করবে?
আমি ঠিক বুঝতে পেরেছি যে স্ট্যান্ডার্ড বাউডের হারগুলি উত্পন্ন করার জন্য 8051 পরিবার 11.0592 মেগাহার্টজ এবং এর গুণগুলি ব্যবহার করে। তবে এমন এসসি রয়েছে যা 15 মেগাহার্টজ ব্যবহার করে। তারা কীভাবে তখন এটি করবে?
উত্তর:
যতক্ষণ না এটি যুক্তিসঙ্গতভাবে নির্ভুল হয় ততক্ষণ ইউআরটির যত্ন নেই।
সুতরাং আপনার ইউআরটি 15000 এর একটি ফ্যাক্টর দ্বারা খুব দ্রুত হতে চলেছে। এটি1+1এ সমস্যা হয়ে যায়
তুলনামূলকভাবে উচ্চ প্রান্তের এআরএম এমসিইউর বিবরণটি এখানে 'বড় মুদ্রণ' রয়েছে।
অনেকগুলি পিএলএল এবং প্রিসকেলার এবং পোস্টক্যালারগুলির সাথে বিভাজক রয়েছে যা আপনাকে পূর্ণসংখ্যার অনুপাত হিসাবে প্রয়োজন হতে পারে প্রায় কোনও ফ্রিকোয়েন্সি তৈরি করতে সক্ষম। PLL তা বৃদ্ধি পায় কিছু পূর্ণসংখ্যা দ্বারা তার ইনপুট ফ্রিকোয়েন্সি, এবং একটি বিভাজক কিছু নম্বর (দ্বারা বিভক্ত করা যেতে পারে না অগত্যা প্রতিটি ক্ষেত্রে 2 ক্ষমতা)।
অভ্যন্তরীণ তুলনামূলকভাবে উচ্চ ফ্রিকোয়েন্সিগুলি (এই ক্ষেত্রে প্রায় অর্ধেক গিগাহার্টজ) কোনও সমস্যা নয় (যেমনটি তারা চিপের বাইরে থাকলে) - অপেক্ষাকৃত সামান্য শক্তি গ্রাস করা হয়।
কেবলমাত্র 2 এর শক্তির দ্বারা বিভাজনের দিনগুলি বেশ কিছুদিন আগে শেষ হয়ে গিয়েছিল এবং এখন পিএলএলগুলি সাধারণত প্রয়োগ করা হয় আমাদের সঠিক স্ফটিক ফ্রিকোয়েন্সি সম্পর্কে প্রায় ততটা চিন্তা করার দরকার নেই। অন্যদিকে আমাদের একাধিক অভ্যন্তরীণ বাস ঘড়ি, ইউএসবি, ইথারনেট, ইউআরটি ইত্যাদির পেরিফেরিয়ালগুলির জন্য বিভিন্ন ঘড়ির ফ্রিকোয়েন্সিগুলির প্রয়োজন হতে পারে।
আপনি কীভাবে এই কাজগুলি সম্পর্কে আরও জানতে চান, আপনি কিছু উত্সর্গীকৃত ঘড়ির সংশ্লেষ চিপগুলি তুলনামূলকভাবে সহজ (যদিও এটি এখনও জটিল যে কিছু নির্মাতারা সেটআপ ধাপগুলি গণনা করার জন্য সফ্টওয়্যার সরবরাহ করে) অধ্যয়ন করতে পারেন।
এটি একটি মডুলেটর ব্যবহার করে অর্জন করা যেতে পারে ।
উদাহরণস্বরূপ MSP430x1xx ব্যবহারকারী গাইড দেখুন । 260 পৃষ্ঠায় এটি বলে:
ইউএসআর্ট বাউড রেট জেনারেটর অ-মানক উত্স ফ্রিকোয়েন্সিগুলি থেকে স্ট্যান্ডার্ড বাড রেট উত্পাদন করতে সক্ষম। বাউড রেট জেনারেটর চিত্র 13−7-তে দেখানো হয়েছে এমন একটি প্রেসক্যালার / ডিভাইডার এবং একটি মডিউলেটর ব্যবহার করে। এই সংমিশ্রণটি বাড রেট জেনারেশনের জন্য ভগ্নাংশ বিভাজনকে সমর্থন করে।
(ধূসর অঞ্চল নোট করুন)
বিভাগ ফ্যাক্টর এন প্রায়শই একটি অ-পূর্ণসংখ্যার মান যার দ্বারা পূর্ণসংখ্যার অংশটি প্রেসক্যালার / বিভাজক দ্বারা উপলব্ধি করা যায়। বাউড রেট জেনারেটরের দ্বিতীয় পর্যায়ে, মড্যুলেটরটি যতটা সম্ভব ঘনিষ্ঠ অংশটি পূরণ করতে ব্যবহৃত হয়।
[...]
বিআইটিসিএলকে সময়সীকরণের প্রয়োজন মেটাতে মডিউলারের সাথে কিছুটা বিট থেকে সামঞ্জস্য করা যেতে পারে যখন কোনও আন্তঃসংখ্যক বিভাজক প্রয়োজন হয়। প্রতিটি বিটের সময়সীমা একটি বিআরসিএলকে ঘড়ি চক্র দ্বারা প্রসারিত করা হয় যদি মডিটর বিট মাই সেট করা থাকে। প্রতিবার কিছুটা প্রাপ্তি বা সঞ্চারিত হওয়ার পরে, মড্যুলেশন নিয়ন্ত্রণ রেজিস্টারের পরবর্তী বিট সেই বিটের জন্য সময় নির্ধারণ করে। একটি সেট মোডুলেশন বিট বিভাজন ফ্যাক্টরকে একের সাথে বাড়িয়ে দেয় যখন একটি ক্লিয়ার ক্লিপ মোডুলেশন বিট ইউএক্সবিআর দ্বারা প্রদত্ত বিভাগ ফ্যাক্টরটি বজায় রাখে
[...]
অনেক লোক ধরে নেয় যে ইউআআরটি আসলে একটি নির্দিষ্ট ঘড়িতে চলছে অর্থাৎ আপনি প্রতিটি নমুনা নেন take সেকেন্ড। এটি অগত্যা সত্য নয়। কমপক্ষে আমি সমস্ত ইউআরটি মডিউলগুলি ডিজাইন করেছি not
এটি যেভাবে কাজ করে তা হ'ল আপনার একটি অভ্যন্তরীণ নমুনা ঘড়ি। বলুন আপনি প্রতি 100ns নমুনা করতে পারেন। আপনি জানেন যে প্রতিটি বিটের মাঝখানে। সুতরাং, আপনি একটি নমুনা পয়েন্ট বাছাই করুন যা মাঝের নিকটেতম। এটি আপনাকে সর্বাধিক 50ns এর ত্রুটি দেয়।
যা হয় তা হল আপনি কিছুটা শুরু করুন। তারপরে আপনি নির্ধারণ করুন বিটের মাঝখানে কোথায় এটি আপনার রেফারেন্সিং পয়েন্ট। তারপরে আপনি জানবেন পরবর্তী বিটটি নমুনার জন্য আপনার আর কতক্ষণ অপেক্ষা করতে হবে। সুতরাং, আপনি একটি কাউন্টার লোড করুন, এবং এটি আপনার নমুনা পুনরায় সেট করে। এখন, আপনি আপনার দ্রুত অভ্যন্তরীণ ঘড়ির সর্বাধিক 1 ঘড়ি চক্র দ্বারা বন্ধ থাকবেন, তবে বেশিরভাগ ক্ষেত্রে এটি ন্যানো সেকেন্ড। এছাড়াও, আপনি জানেন যে আপনি কতটা দূরে আছেন। পরবর্তী বিটের জন্য আপনি নিজের কাউন্টারটি আলাদা মান দিয়ে লোড করেন, সুতরাং আপনি মাঝের যতটা সম্ভব কাছাকাছি এবং আরও অনেক কিছু।
বাস্তব সিস্টেমে আরও অনেক কিছু ঘটে থাকে। উদাহরণস্বরূপ, আপনি একটি নমুনা গ্রহণ করেন না, আপনি কিছু নিতে পারেন এবং তাদের উপর কিছু প্রক্রিয়াজাতকরণ ইত্যাদি করতে পারেন বাস্তবে এটি 1 বিট এডিসি, কোয়ান্টাইজেশনের আওয়াজের মতো সমস্ত প্রবণতা সহ। তবে আপনার সাধারণ ধারণাটি পাওয়া উচিত।
আধুনিক এসসিগুলি ইন্টারফেসের জন্য প্রয়োজনীয় যে কোনও ঘড়ি তৈরি করতে (প্রায়) তৈরি করতে তথাকথিত পিএলএল ব্যবহার করে। সরল ভাষায়, পিএলএল সার্কিট একটি উচ্চ-ফ্রিকোয়েন্সি ভিসিও (ভোল্টেজ-নিয়ন্ত্রিত দোলক) নিয়োগ করে, তারপরে উভয় ভিসিও এবং ইনপুট ঘড়িতে ডিফিটাল ফ্রিকোয়েন্সি ডিভাইডার ব্যবহার করে এবং ফ্রিকোয়েন্সি অনুপাতের ভিত্তিতে একটি ভোল্টেজ প্রতিক্রিয়া উত্পন্ন করে। এই প্রতিক্রিয়াটি ভিসিওকে নিয়ন্ত্রণ করে, যেমন পুরো লুপটি পছন্দসই ফ্রিকোয়েন্সিতে লক হয়ে যায়।
একটি বিট বাইট ধরে একক শুরুর বিট এবং তার পরে একটি একক স্টপ বিট এবং রিসিভার দ্বারা নিখুঁত নমুনা ধরে নেওয়া মানে যে 9.5 বিট পিরিয়ড পরে ঘড়িটি আধ বিট পিরিয়ডেরও কম সময়ের মধ্যে বন্ধ হতে হবে um
তার অর্থ ট্রান্সমিটার এবং রিসিভারের মধ্যে সর্বাধিক সহনীয় সহনীয় ঘড়ির পার্থক্য প্রায় 5%। তবে লিঙ্কটির উভয় প্রান্তে ত্রুটি থাকতে পারে এবং রিসিভারের সিঙ্ক্রোনাইজেশনটি সঠিক নাও হতে পারে। বাস্তবে তাই আমি সাধারণত সুপারিশ করব যে প্রকৃত বাড রেট নামমাত্র বাউড হারের 1% এর মধ্যে রাখা হয়।
আমি যে মাইক্রোকন্ট্রোলারের সাথে সর্বাধিক পরিচিত সেগুলি হ'ল পিক 18 ডিভাইস। এগুলির পুরানো মডেলগুলি বাউড্রেটকে স্কেল করতে একটি নমনীয় 8 বিট কাউন্টার ব্যবহার করে যখন নতুনগুলির মধ্যে একটি নমনীয় 16 বিট কাউন্টার থাকে। এখানে highচ্ছিক "উচ্চ" এবং "নিম্ন" গতির মোডগুলিও রয়েছে যা চারটির একটি উপাদান দ্বারা বাউড্রেটকে পরিবর্তন করে change
20 মেগাহার্টজ ইনপুট ক্লক সহ এই প্রজন্মের স্কিমের 8 বিট সংস্করণ 1800 থেকে 19200 পর্যন্ত সমস্ত রেটগুলির জন্য নামমাত্র বাড রেটের 0.25% এর মধ্যে পাওয়ার পক্ষে যথেষ্ট। 16 বিট সংস্করণ আপনাকে আরও কম গতিতে নামতে দেয়।
http://www.nicksoft.info/el/calc/?ac=spbrg&submitted=1&mcu=+ জেনেরিক +16 বিট + বিআরজি অ্যান্ড ফসাস=20&FoscMul=1000000&FoscAutoSelector=0&MaxBaudRateError=1 (তারা ইউএস-এর জন্য চলছে সিঙ্কটি = 1 কলম্ব উপেক্ষা করুন সিঙ্ক্রোনাস মোড)
ইউএআরটি সিরিয়ালটির জন্য পিএলএল, ভগ্নাংশ বিভাজক ইত্যাদির সত্যই প্রয়োজন নেই।
সিরিয়াল ডেটা এক্সচেঞ্জ করতে একটি নিয়ামকের অবশ্যই "আদর্শ" সময়ের একটি নির্দিষ্ট উইন্ডোর মধ্যে আউটপুট বা নমুনা ডেটা আবশ্যক। যদিও এমন একটি কন্ট্রোলার থাকা সহজ যা একটি ঘড়িটিকে প্রোগ্রামযোগ্য ফ্যাক্টর দ্বারা এবং তারপরে আবার অতিরিক্ত হার্ড-কোডেড ফ্যাক্টর দ্বারা ভাগ করে দেয়, বিটগুলি সমান বিরতিতে পড়তে বা লিখতে হবে এমন কোনও প্রয়োজন নেই। যদি কোনও সংযোগের প্রান্তের শেষ প্রান্তটি বাউডের হারের সাথে মিলিত হুবহু অভিন্ন বিরতিতে বিট দেয় তবে কোনও রিসিভার সঠিক সময়ে নমুনার জিনিস সরবরাহ করে বাউডের হারের দ্বিগুণের চেয়ে বেশি যে কোনও নমুনা হারের সাথে পেতে পারেন। উদাহরণস্বরূপ, ধরুন ডেটা 19,200 এ আউটপুট এবং একটি সঠিকভাবে 48,000Hz (2.5x) এ নমুনা দিচ্ছে।
যখন কেউ একটি পড়ন্ত প্রান্ত দেখবে, তখন কেউ জানতে পারবে যে স্টপ বিটটি 0 ও 1 নমুনার সময়গুলির মধ্যে আগে শুরু হয়েছিল। যদি কোনও প্রথম নমুনা লেবেল করে যেখানে শুরুর বিটটি সময় 0 হিসাবে দেখা হত, বিট 0 সময় 1.5 এবং 2.5 এর মধ্যে কোথাও শুরু হবে; বিট 1 কোথাও শুরু হবে সময়ের 4.0 এবং 5.0 এর মধ্যে, বিট 2 কোথাও সময় 6.5 এবং 7.5 এর মধ্যে শুরু হবে, এবং বিট 3 কোথাও 9 9 থেকে 10.0 সময়ের মধ্যে শুরু হবে। 3 সময় নেওয়া একটি নমুনা এভাবে বিট 0 ক্যাপচারের গ্যারান্টিযুক্ত হবে [যা সময় 1.5 এবং 2.5 এর মধ্যে শুরু হয় এবং সময়টি 4.0 এবং 5.0 এর মধ্যে শেষ হয়]। তেমনি, time সময়ে নেওয়া একটি নমুনা বিট ১ টি এবং ৮, ১১, ১৩, ১ 16, ১৮, এবং ২০-তে গৃহীত নমুনাগুলি বিট ২- capture গ্রহণ করবে।
একটি দ্রুত নমুনা হার ব্যবহার করা উত্সের প্রাপককে অপূর্ণতাগুলির প্রতি আরও সহনশীল করে তুলবে, তবে এমনকি মাত্র 2.5x বিট রেটের একটি নমুনা হারের সাথে মার্জিনগুলি ভয়ঙ্কর নয় [প্রায় 1/5 সময়ের মধ্যে]]