একটি 16 বিট ড্যাক তৈরি করতে দুটি 8 বিট ডিএসি একত্রিত করা কি 16 বিট শব্দের একটি বাইট তাদের প্রত্যেককে প্রেরণ করা হবে?


16

দুটি ডিএসি-র জন্য, একজনকে ডি-ডি -7 পাঠানো হচ্ছে এবং অন্যটি ডি 8-ডি 15 প্রেরণ করা হচ্ছে, বিদ্যুত্ সরবরাহ 5V হ'ল, 5V যদি 2 য় ড্যাকের আউটপুটে সংযোজন করা হয় এবং দুটি ডিএসি আউটপুট সংক্ষিপ্ত করা হয়, তার ফলস্বরূপ 16 বিট ডিএসি হওয়া উচিত দুটি 8 বিট ডিএসি দিয়ে তৈরি।

একমাত্র সমস্যাটি হ'ল যদি দ্বিতীয় ডিএসি 0x00 ইনপুট থাকে তবে 5 ভি সংযোজনটি বাতিল করতে হবে যা আমি কীভাবে করব তা নিশ্চিত নই। সংবর্ধক সংশ্লেষ করে সামিংটি করা যায়। এই সার্কিটটির জন্য কেবল 10 কেএস হার্জ পর্যন্ত কাজ করা দরকার।

এই ধারণাটিতে মূলত কিছু ভুল আছে?


11
আপনার ধারণার সাথে মূলত কিছু ভুল নেই, তবে আপনাকে আপেক্ষিক জটিলতার একটি নকশা পরিচালনা করতে হবে। প্রথমত এটি এনালগ সিগন্যালে ফলাফলগুলি সংশ্লেষ করার বিষয় নয়। যোগফলের আগে, আপনাকে এমএসবি ড্যাককে x256 এর একটি ফ্যাক্টারে প্রসারিত করতে হবে কারণ এমএসবি ড্যাকের প্রতিটি বিট এলএসবি ড্যাকের 256 বিটের সমতুল্য। আপনি উভয় যোগ করার চেয়ে আপনার এই মানটি এলএসবি ড্যাক ফুলস্কেল ভোল্টে অফসেট করতে হবে।
PDuarte

7
শব্দ, বিকৃতি, সরবরাহের সক্ষমতা উল্লেখ না করা ...
PDuarte

4
যদি এটি এত সহজ ছিল, প্রত্যেকে এটি করছিল ... তাত্ত্বিকভাবে, হ্যাঁ, আপনি দুটি ডিএসি একত্রিত করতে পারেন (যদিও যোগ করার পরিবর্তে আপনার গুণন প্রয়োজন)। বাস্তবতাত্ত্বিকভাবে, আপনি 16 বর্গের কাছাকাছি, পারফরম্যান্স-ভিত্তিতে কোথাও যাবেন না। কেবল একটি 16 বিট ড্যাক কিনুন।
uint128_t

2
256x গুণিত মান খুব বড় হয়ে গেলে অফসেটিংয়ের প্রয়োজন। মনে করুন 8 বিট ডিএসিগুলি 1 ভোল্টকে পুরো স্কেল দেয়। 256 দ্বারা 256 ভি প্রদান করে এত গুণ ব্যবহার করা যায় না ;-)। একটি ড্যাক একটি কারেন্ট সরবরাহ করার সাথে এটি আরও সহজ, তারপরে আপনি কেবল বর্তমান আউটপুটগুলিকে সমান্তরালভাবে সংযুক্ত করতে পারেন (প্রদত্ত এমন কোনও লোড যা ভল্টেজকে সঠিক মান, ভার্চুয়াল গ্রাউন্ড বা এই জাতীয় স্থানে রাখবে)।
বিম্পেলরেকি

1
সিগন্যালটিকে উপরের এবং নীচে 8 বিটে ভাগ করার পরিবর্তে, আপনি এটি দ্বি-পাসের প্রগতিশীল অনুমান হিসাবে (যেমন প্রগতিশীল জেপিজি বা পিএনজি রেন্ডারগুলির মতো) প্রয়োগ করেন, ডিএসি 1 প্রদান করে (মোটামুটি) সমান সংখ্যাযুক্ত বিট এবং ডিএসি 2 চলছে running বিজোড় সংখ্যাযুক্ত বিট সহ (আবার মোটামুটি) অর্ধেক শক্তি অঙ্কটি অগোছালো হবে তবে আমি মনে করি আপনি এটি থেকে 15 টি বিট সিগন্যাল নির্ভুলতা পেতে পারেন।
ফু বার বার

উত্তর:


28

এটি সম্ভব, তবে এটি কার্যকর হবে না।

প্রথমত, দুটি আউটপুট একত্রিত করার সমস্যা রয়েছে যার মধ্যে একটি অপরটির যথাযথভাবে 1/256 পরিমাণযুক্ত। (আপনি যদি 1/256 এর মধ্যে একটিকে কমিয়ে দেন, অন্যটিকে 256 বা আরও কিছু ব্যবস্থা দিয়ে প্রশস্ত করুন, উদাহরণস্বরূপ * 16 এবং / 16, কোনও ব্যাপার নয়)।

তবে বড় সমস্যাটি হ'ল একটি 8-বিট ডিএসি 8 বিটের চেয়ে আরও ভাল কোনও কিছুর সাথে সঠিক হতে পারে: এটির 1/4 এলএসবি "ডিএনএল" স্পেসিফিকেশন এবং 1 / 2LSB এর একটি "INL" স্পেসিফিকেশন থাকতে পারে। এগুলি হ'ল "ডিফারেনশিয়াল" এবং "ইন্টিগ্রাল" অরৈখিকতার নির্দিষ্টকরণ এবং এগুলি সংলগ্ন কোডগুলির মধ্যে প্রতিটি পদক্ষেপটি কতটা বড় তা পরিমাপ করে। (ডিএনএল কোনও দুটি সংলগ্ন কোডের মধ্যে গ্যারান্টি সরবরাহ করে, ড্যাকের সম্পূর্ণ পরিসীমা জুড়ে যে কোনও দুটি কোডের মধ্যে আইএনএল)।

আদর্শভাবে, প্রতিটি পদক্ষেপটি পুরো স্কেল মানের যথাযথভাবে 1/256 হবে; তবে একটি 1 / 4LSB ডিএনএল স্পেসিফিকেশন নির্দেশ করে যে সংলগ্ন পদক্ষেপগুলি 25% দ্বারা আদর্শের থেকে পৃথক হতে পারে - এটি একটি ড্যাকের মধ্যে সাধারণত গ্রহণযোগ্য আচরণ।

সমস্যাটি হ'ল আপনার এমএসবি ড্যাকের একটি 0.25 এলএসবি ত্রুটি আপনার এলএসবি ড্যাকের একটি 64 এলএসবি ত্রুটি (পুরো পরিসরের 1/4) অবদান রাখে!

অন্য কথায়, আপনার 16 বিট ড্যাকের 10 বিট ডিএসি এর রৈখিকতা এবং বিকৃতি রয়েছে, যা বেশিরভাগ 16 বিট ড্যাকের অ্যাপ্লিকেশনগুলির জন্য গ্রহণযোগ্য নয়।

এখন যদি আপনি একটি 8-বিট ড্যাক খুঁজে পেতে পারেন যা 16 বিট নির্ভুলতার গ্যারান্টি দেয় (INL এবং DNL 1/56 LSB এর চেয়ে ভাল) তবে এগিয়ে যান: তবে সেগুলি করা অর্থনৈতিক নয়, সুতরাং এটির একমাত্র উপায়টি শুরু করা একটি 16 বিট ড্যাক সহ!

অন্য একটি জবাব "সফ্টওয়্যার ক্ষতিপূরণ" এর পরামর্শ দেয় ... আপনার এমএসবি ড্যাকের সঠিক ত্রুটিগুলি ম্যাপিং এবং এলএসবি ডিএসি-তে বিপরীত ত্রুটি যুক্ত করে তাদের ক্ষতিপূরণ দেওয়ার জন্য: 16-বিট ড্যাকগুলি ব্যয়বহুল হওয়ার দিনগুলিতে অডিও ইঞ্জিনিয়াররা দীর্ঘকালীন কিছু চিন্তা করেছিলেন। ..

সংক্ষেপে, এটি কিছুটা কাজ করার জন্য তৈরি করা যেতে পারে, তবে যদি তাপমাত্রা বা বয়সের সাথে 8-বিট ডিএসি ড্রিফ্ট হয় (এটি সম্ভবত অতি-স্থিতিশীল হওয়ার জন্য ডিজাইন করা হয়নি), ক্ষতিপূরণটি এখন আর যথেষ্ট পরিমাণে যথাযথ নয় জটিলতা এবং ব্যয়।


1
ড্রিফ্ট সম্পর্কে আপনার বক্তব্যটি একটি ভাল এবং দুটি 8-বিট ডিএসি সংযুক্ত করে 20-বিট যথার্থতা পাওয়ার চেষ্টা করার জন্য এই পদ্ধতিটিকে ব্যবহারিক করে তুলবে। আমি মনে করি 2x8 থেকে 13-14 ব্যবহারযোগ্য বিট পাওয়ার চেষ্টা করা সম্ভব হবে।
ক্যাট

19

28=256

216=65536

কীভাবে এটি বেড়ে যায় তা দ্রষ্টব্য, এটি কোনও সংযোজন নয় (যখন আপনি দুটি 8 বিট ডিএসি এর আউটপুটগুলি যোগ করেন)।

আমি যদি দুটি 8 বিট ডিএসি নিই এবং তাদের আউটপুটগুলি যোগ করতে পারি তবে সম্ভাব্য মানগুলি কী?

উত্তর: 0, 1, 2, ..., 256, 257, 258, .... 511, 512 এবং এটিই!

একটি 16 বিট ড্যাক 0,1,2 ..., 65535, 65536 করতে পারে যা আরও অনেক বেশি!

তাত্ত্বিকভাবে হয় সম্ভব কিন্তু তারপর আপনি করতে হবে গুন আউটপুট এক দ্বারা 8 বিট DACs এর ঠিক 256 256x ড্যাক প্রয়োজন এবং lsb 1x DAC এবং MSB বিট বিট সংযোগ। সঠিকতা এবং লাইনারিটি যদি ভোগে তবে অবাক হবেন না!


হুঁ আমি দেখছি। আমি বুঝতে পারি নি ...
কোয়ান্টাম 231

1
যদি কেউ 256 এরও কম গুনের গুণক ব্যবহার করে তবে সফ্টওয়্যারটিতে অ-রৈখিকতার জন্য ক্ষতিপূরণ দেওয়া যেতে পারে। ডিফারেনশিয়াল নন-লিনিয়ারিটি কমপক্ষে ছোট ডিএসি-র ধাপের আকারের সমান হবে তবে দু'টি 8-বিট ড্যাক ব্যবহার করে এমন ব্যক্তি যদি একচেটিয়া 14-বিট ড্যাক ব্যবহার করতে পারে তবে যদি কোনও সঠিক ক্ষতিপূরণ কারণগুলি প্রয়োগ করতে পারে তা নির্ধারণ করতে পারে
সুপারক্যাট

2
আপনি একটি ডিএসি এর আউটপুট 257/256 দ্বারা গুণতে এবং সেগুলি যোগ করতে পারেন, যদি আপনি নির্ধারিত মোট আউটপুট পেতে কোন ড্যাককে কোন মান পাঠাতে হয় তা নির্ধারণের গাণিতিক চ্যালেঞ্জ উপভোগ করেন। অন্যথায়, callenges একই :) হয়
হবস

@ হোবস: আমি মনে করি না যে এটি বেশ কার্যকর হয়েছে। যদি একটি ডিএসি 256 এর ধাপে 0 থেকে 65280 আউটপুট দেয় এবং অন্যটি 257 এর ধাপে 0 থেকে 65535 কে আউটপুট দেয়, কেউ 65280 এবং 65535 এর মধ্যে সমস্ত আউটপুট মান অর্জন করতে সক্ষম হবে, তবে পরিসরে কোনও অর্জন করতে সক্ষম হবে না উদাহরণস্বরূপ, 32639 এবং 32768 এর মধ্যে That's এটি একটি একক 8-বিট ড্যাকের চেয়ে সত্যি বেশি ভাল করছে না।
সুপারক্যাট

@ সুপের্যাট আপনি ঠিক বলেছেন, আমি গণিতটি ভাসিয়ে দিয়েছি। আমি মনে করি এমন একটি সংস্করণ রয়েছে যা যদি আপনি নেতিবাচক দিকে যেতে পারেন তবে এটি কাজ করে তবে এটি আমার লেখার মতো কাজ করে না। বেশিরভাগ ক্ষেত্রেই এটি হাস্যরসের চেষ্টা ছিল।
hobbs

6

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

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


4

21 বছর আগে যখন আমি একজন দরিদ্র কলেজের ছাত্র ছিলাম (এবং কেবল 8-বিট ড্যাকগুলিই বহন করতে পারতাম) তখন আমি এই কৌশলটি দুটি বিট ড্যাককে একটি উচ্চ-বিট ড্যাকের সাথে সংযুক্ত করতে ব্যবহার করেছিলাম, আমি জেনেছিলাম যে আমি 16 বিটের যথার্থতা পাব না, কারণ এর অবিচ্ছেদ্য nonlinearity (INL) এবং ডিফারেনশিয়াল nonlinearity (DNL)। সর্বাধিক উল্লেখযোগ্য-বাইট ডিএসি-তে ডিএনএল হ'ল এই ক্ষেত্রে হত্যাকারী; আপনার যদি INL থাকে তবে আউটপুটটি বিকৃত হয় তবে এখনও মসৃণ হয়। ডিএনএল একটি ডিএসি পদক্ষেপের থেকে পরবর্তীটিতে আকার নির্ধারণ করে এবং যদি এটির পরিমাণে তফাত হয় তবে 8-বিট সীমানা অতিক্রম করার সময় আপনি বিচ্ছিন্নতা বা বিপরীতগুলি দেখতে পাবেন: 0x07ff <-> 0x0800 উদাহরণস্বরূপ, এমএসবি ড্যাক 0x07 থেকে পরিবর্তিত হয়েছে <-> 0x08, এটি এলএসবি ড্যাকের আদর্শ 256 গণনা দ্বারা পরিবর্তিত হতে পারে না, তবে 384 টি গণনা বা 128 গুনে (নিজের স্বল্পতম বিটটির 1 ডলার / 2) দ্বারা পরিবর্তিত হতে পারে। একটি ভাল ড্যাকের কেবল ১/২ এলএসবি ডিএনএল থাকবে, একটি সাধারণ ডিএসি এর থেকে খারাপ ডিএনএল হবে, যদিও এটি রেজোলিউশনটি আরও শক্ততর হয়, সুতরাং একটি 8-বিট ড্যাকের মধ্যে 1/2 এলএসবি ডিএনএল পাওয়া মোটামুটি সহজ হওয়া উচিত তবে তা নয় একটি 16 বিট ড্যাক মধ্যে।

আমার ক্ষেত্রে কার্যকর রেজোলিউশনটি কী ছিল তা আমি মনে করতে পারি না, সম্ভবত 12 বা 13 বিটস ছিল এবং আমি পেন্টিওমিটারের সাহায্যে ম্যানুয়ালি ২ য় পর্যায়ের লাভটি টিউন করতে হয়েছিল।


2

গতিশীল পরিসীমা বাড়াতে আমি এইচপিএলসি ইউভি সনাক্তকারীতে অনুশীলনে দেখেছি। ডিএসিগুলির একটি হ'ল প্রয়োজনীয় পরিমাণ দ্বারা অফেট। বলুন যে প্রথম ডিএসি 0 থেকে 10 ভি এবং দ্বিতীয়টি 10 ​​থেকে 20 ভোল্ট পরিচালনা করে।


1
এটি কি কেবল একটি বিট যোগ করবে না?
সিজিদর

হ্যাঁ এটি কেবল একটি বিট যোগ করে। তবে অডিও শর্তে এটি খুব সফল আপস হতে পারে। একটি "স্ট্রেইট" ডিএএকে আধা স্কেলে একটি বিশাল সমস্যা রয়েছে যেখানে সমস্ত 16 টি বিট একবারে স্যুইচ করে - এমএসবি স্যুইচ করে, অন্য সমস্তগুলি স্যুইচ অফ করে এবং সেখানেই সবচেয়ে বড় একক ডিএনএল ত্রুটি হবে। একটি অডিও সিগন্যালে এই বৃহত্তম ত্রুটিটি সবচেয়ে খারাপতম স্থানেও রয়েছে - শূন্য ক্রসিং - এমনকি সবচেয়ে শান্ত শব্দকেও দূষিত করে। এখন যদি একটি ড্যাক ইতিবাচক সংকেতগুলি পরিচালনা করে এবং অন্যটি নেতিবাচক সংকেতগুলি পরিচালনা করে তবে আপনি এই সমস্যাটিকে পুরোপুরি এড়াতে পারবেন। কিংবদন্তি বুড়-ব্রাউন পিসিএম -৩ D ড্যাক এটিকে সুন্দরভাবে ব্যবহার করেছে।
ব্রায়ান ড্রামন্ড

1

এটি সম্ভব এবং এটি আগেও হয়ে গেছে। EDN.com এই চমৎকার বাস্তবায়ন দেখুন http://www.edn.com/design/analog/4329365/Combine-two-8-bit-outputs-to-make-one-16-bit-DAC


কমপক্ষে লিঙ্কের ডেটা সংক্ষিপ্ত করতে দয়া করে এই উত্তরটি সম্পাদনা করুন। কেবলমাত্র লিঙ্কযুক্ত উত্তরগুলি ভ্রান্ত হয় কারণ লিঙ্কগুলি প্রায়শই মারা যায়।
বোর্ট

0

আমার এটির ভিন্নতা আছে ... কেবলমাত্র একটি 8 বিট ড্যাক ব্যবহার করুন। আপনি উল্লেখ করেছেন যে এটি কেবলমাত্র কয়েক দশক হার্টজ হার্ট পর্যন্ত কাজ করা দরকার, সুতরাং আপনি কেবলমাত্র একটি ড্যাক ব্যবহার করতে পারেন (যা সম্ভবত 100kHz পর্যন্ত কাজ করতে পারে), এবং এটি একটি মডুলেটর হিসাবে ব্যবহার করতে পারে। মূল ধারণাটি হ'ল এমএসবি মানের 256 চক্রের সাথে 8 বিট আহরণকারী থেকে এক বিট ওভারফ্লো / বহন পতাকা যেখানে প্রতিটি চক্রকে এলএসবি যুক্ত করা হয়। এলএসবি থেকে অতিরিক্ত 'মডিউলিং বিট' দেওয়ার কারণে আপনি সর্বাধিক এমএসবি হিসাবে মাত্র 254 পান তবে এটি পরিসীমাটি হ্রাস করে না।

উদাহরণ: আপনি যদি 30kHz এ চক্রটি চালান, 256 চক্রটি 117Hz এ পুনরাবৃত্তি করে, তাই আপনি আউটপুটে একটি 50Hz লো-পাস ফিল্টার লাগাতে পারতেন যা বেশিরভাগ মসৃণ এবং নির্ভুল সংকেতের জন্য যা আপনার প্রয়োজনের হার পর্যন্ত কাজ করতে পারে।

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

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