এমসিপি 3424, সমান্তরালে চ্যানেলগুলি কীভাবে পড়বেন?


9

এই প্রশ্ন সম্পর্কে

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

নির্দিষ্ট ইলেকট্রনিক উপাদান / চিপ সম্পর্কে জিজ্ঞাসা করার সময়, আমি ধরে নিয়েছি লোকেরা আমাকে সঠিক উত্তর দেওয়ার জন্য পরীক্ষা / পরীক্ষা করতে পারবেন না। আমি আরও আশা করি যে লোকেরা এই উপাদানটিও জানবে না। সুতরাং আমি এই প্রশ্নে অনেক তথ্য যুক্ত করার চেষ্টা করব।

আপনার আরও তথ্যের প্রয়োজন হলে আমাকে জানান।

উপাদানটির চারটি এডিসি রয়েছে

4 চ্যানেল উপাদান, MCP3424 (ব্যবহার করছি উপাত্তপত্র )। এটি দুটি প্যাকেজে আসে। আমি এমসিপি 3424 ই / এসএল, 4 টি চ্যানেল এসওআইসি সংস্করণ ব্যবহার করছি, এমসিপি 3422 বা এমসিপি 3423 2 চ্যানেল সংস্করণ নয়।

আমি বিশ্বাস করি এর চারটি এডিসি রয়েছে। আরএস-অনলাইনে, মনে হয় ই / এসএল সংস্করণটিতে 4 টি এডিসি রয়েছে ( সরাসরি লিঙ্ক ), অন্যদিকে ই / এসটি-তে কেবল একটি ( সরাসরি লিঙ্ক ) রয়েছে। এখানে চিত্র বর্ণনা লিখুন

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

আমি কি সঠিক?

আই 2 সি এর মাধ্যমে যোগাযোগ

যোগাযোগটি একটি কনফিগার বাইট প্রেরণে ঘটে, তারপরে একটি নমুনা শেষ হওয়ার অপেক্ষায় এবং ফলাফলটি পড়ে read

কনফিগার বাইটের ফর্ম্যাট

এখানে চিত্র বর্ণনা লিখুন

আকর্ষণীয় বিষয়গুলি হ'ল:

  • বাম থেকে বিট তিন, 1 থেকে গণনা: অবিচ্ছিন্ন নমুনা
  • বাম থেকে এক এবং দুটি, 1 থেকে গণনা: ঠিকানা

কনফিগার বাইট সম্পর্কে আরও ডেটাশিট পৃষ্ঠায় পাওয়া যাবে 18, এছাড়াও এখানে চিত্রিত ।

পড়ার ফলাফলের ফর্ম্যাট

আমার উদাহরণগুলি কেবলমাত্র একটি 18 বিট রেজোলিউশনের সাথে থাকবে (বিট 5 এবং 6 সেটটি 1)। রিড ব্যাকের ফলাফলটি চারটি বাইট হবে: প্রথমটি তিনটি মানযুক্ত এবং চতুর্থটি কনফিগার বাইটযুক্ত।

তবে, বামদিকের বিট, আরডিওয়াই, শেষ পাঠের পর থেকে মানটি "নতুন", অর্থাত্ যদি এটি একটি নতুন পঠন হয়, তা বলে। প্রথমবার একটি ফলাফল পড়ার পরে মান 0 হয় এবং পরবর্তীগুলির জন্য এটি 1 হয়, যতক্ষণ না এডিসি একটি নতুন নমুনা মান সহ প্রস্তুত না হয়।

সমান্তরালে নমুনা ছাড়াই এটি কীভাবে ব্যবহার করবেন

আমি এটি পুরোপুরি ভাল জানি কিভাবে এটি করতে হয়। এবং সমস্ত উদাহরণ আমি অনলাইনে খুঁজে পেয়েছি, এটি সহজ দুটিও। উপাদানটিতে একটি কনফিগার বাইট লিখুন, তারপরে একটি মান ফিরে যান read

প্রতিটি চ্যানেল কীভাবে স্বয়ংক্রিয়ভাবে স্বতন্ত্রভাবে নমুনায় সেট করা যায় এবং চ্যানেলগুলিকে সমান্তরালে পড়তে হয় read

সিউডো কোডটি স্মেথের মতো হতে পারে

setup():
    start sampling channel 1, 18bit, 0gain, continuously
    start sampling channel 2, 18bit, 0gain, continuously
    start sampling channel 3, 18bit, 4gain, continuously
    start sampling channel 1, 18bit, 2gain, continuously

readADCs():
    // Run every 500ms
    // 18 bit samples take 375ms, so must happen in parallel 
    // to get a new sample for all every 500ms
    read channel 1
    read channel 2
    read channel 3
    read channel 4

আমার সেরা চেষ্টা

সুতরাং আমি আশা করি, নিম্নলিখিত প্রতিটি এডিসি নিয়মিত নমুনা সেট করে। এটি আরডুইনো কোড।

void setup() {

    Wire.write(0b00011100);
    Wire.write(0b01011100);
    Wire.write(0b10011110);
    Wire.write(0b11011101);
}

তারপরে, আমি কীভাবে একটি নির্দিষ্ট চ্যানেল পড়ব। আমি যদি ফলাফলটির জন্য কেবল উপাদানটি জিজ্ঞাসা করি তবে এটি চ্যানেলের ফলাফল রেজিস্টারটিতে ফিরিয়ে দেবে। উপরের সেটআপটি দিয়ে আমি চ্যানেল 4 পড়তে পেলাম তবে বলি যে আমি চ্যানেল 2 থেকে পঠন চাই some কিছু উপায়ে আমাকে কেবল এটি বলা দরকার, আমি চ্যানেল 2 এর ফলাফল চাই I আমি চাই না এটিকে যে কোনও কিছু নমুনা করতে বলুন, এটি কেবল একটি ক্রমাগত নমুনা চালিয়ে যাওয়া উচিত এবং আমি কেবলমাত্র স্বয়ংক্রিয়ভাবে নমুনা দেওয়ার সময় তৈরি করা সবচেয়ে বিরক্তিপূর্ণ নমুনা চাই।

নীচে আমার সেরা অনুমান করা হয়

void readADCs() {

    // Channel 1
    // ...

    // Channel 2
    Wire.beginTransmission(104);
    Wire.write(0b01011100); // I hope not to affect, just to select
    Wire.endTransmission();
    Wire.requestFrom(104);
    Wire.read(); // val byte 1
    Wire.read(); // val byte 2
    Wire.read(); // val byte 3
    Wire.read(); // config byte
}

সুতরাং আমার সেরা অনুমান হয়। আমি যদি চ্যানেল 2 পড়তে চাই, আমি একটি কনফিগার বাইট লিখি যা ঠিক একই, আমি চ্যানেল 2 স্যাম্পলিং শুরু করার জন্য যা ব্যবহার করেছি as

তবে, এটি কাজ করে না। প্রয়োজনীয় নমুনা 375 মিমি বেশি থাকলেও কোনও নমুনা প্রস্তুত নেই।

আমি কীভাবে এটি অর্জন করব?

আমি পছন্দসই ফলাফল এবং আমি যা চেষ্টা করেছি তার বর্ণনা দিয়ে যথাসাধ্য চেষ্টা করার চেষ্টা করেছি, তবে আমি জানি এটি পড়া সহজ নয়।

আপনি কীভাবে আমাকে সব এডিসি নমুনাটিকে সমান্তরালভাবে রাখবেন এবং তারপরে হস্তক্ষেপ না করে কীভাবে পড়তে পারেন সে সম্পর্কে পরামর্শ দিতে পারেন?


শুরুটা ভাল. কেবলমাত্র হারিয়ে যাওয়া জিনিসটি হ'ল এমসিপি 3424 এর জন্য ডেটাশিটের একটি লিঙ্ক, যা আমি যুক্ত করেছি।
JRE

এমসিপি 3424 দুটি সংস্করণে নয়, দুটি প্যাকেজগুলিতে আসে এবং উভয়ই 4 টি চ্যানেল। এসটি টিএসএসপ, এসএল সোমিক। এমসিপি 3422 2 চ্যানেল, স্থির ঠিকানা, এমসিপি 3423, 2 চ্যানেল, সামঞ্জস্যযোগ্য ঠিকানা এবং এমসিপি 3424 4 চ্যানেল রয়েছে।
পাসেরবি

+1 খুব পুঙ্খানুপুঙ্খভাবে, ভাল লিখিত প্রশ্ন। দুঃখের বিষয় যে চিপটি একটি একক এডিসি। এটি "কার্যকরী ব্লক ডায়াগ্রাম" এর ডেটাশিটে চিত্রিত হয়েছে। আপনি এডিসি অর্থ হিসাবে ইনপুট চ্যানেলগুলি পড়েছেন। অনেকগুলি ইনপুট চ্যানেল থাকার ফলে একটি এডিসি বিভিন্ন সংকেত (ক্রমানুসারে) নমুনা ব্যবহার করতে দেয়। অ্যানালগ মাল্টিপ্লেক্সারের (যা চ্যানেলটি নির্বাচন করে) তুলনায় এডিসি অনেক বেশি ব্যয়বহুল এবং একাধিক সংকেত নমুনা দেওয়া একটি সাধারণ প্রয়োজন। তাই এডিসি চিপগুলি প্রায়শই এইভাবে কাজ করে। অ্যান্ডি ওরফে আপনার প্রশ্নের উত্তর দিয়েছে, তবে সম্ভবত গ্রহণের আগে অপেক্ষা করুন, কারণ আপনি আরও তথ্য পেতে পারেন।
gulmer

আমি বিশ্বাস করি যে এটিতে 4 টি এডিসি রয়েছে, কারণ আরএস-অনলাইন বলেছিল যে ই / এসএল 4 ছিল এবং ই / এসটি 1 পেয়েছে আমি বিবরণে যুক্ত করেছি
ম্যাডস স্কজার্ন

2
@ ম্যাডসস্কার্ন আরএস, মাইক্রোচিপ উপেক্ষা করুন এবং তাদের ডেটা শীটটি কিং। এটি আরএস-এ একটি ভুল। পরিবেশক সাইটগুলিতে ভুলগুলি বেশ সাধারণ।
পাসওয়ারবি

উত্তর:


11

আমার সাথে চারটি এডিসি রয়েছে। আমি ধরে নিচ্ছি এর অর্থ অবশ্যই হওয়া উচিত, এটি একই সাথে বেশ কয়েকটি চ্যানেলে নমুনা তৈরি করতে পারে।

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

এখানে চিত্র বর্ণনা লিখুন

নোট করুন মাল্টিপ্লেক্সার একবারে চারটি চ্যানেলের মধ্যে একটিতে কেবল নির্বাচন করে। এটি একাধিক চ্যানেল পড়ার জন্য ব্যবহৃত বেশ সাধারণ পদ্ধতি তবে সেখানে একযোগে নমুনার এডিসি রয়েছে। লিনিয়ার টেক, টিআই বা এডিআইয়ের পোর্টফোলিওগুলি দেখার চেষ্টা করুন।


+1, ইয়া আমাকে পরাজিত করেছে :-) এটি কোনও এডিসির নমুনা একাধিক চ্যানেলের পক্ষে একেবারেই সাধারণ বিষয়টির বানানটি মূল্যবান হতে পারে কারণ এটি বিভিন্ন অ্যানালগ সংকেতকে নমুনা করতে পারে, এটি একটি সাধারণ ঘটনা।
গলবার

এছাড়াও, যদি কম স্যাম্পলিংয়ের হারের জন্য ডাকা হয়, তবে মাল্টিপ্লেক্সিং / ইন্টারলিভিং প্রায়শই যথেষ্ট ভাল
স্কট সিডম্যান

স্পিফিং উন্নতি, স্যার।
gulmer

@ গাবলুমার আপনি খুব দয়ালু স্যার !!
অ্যান্ডি ওরফে

5

MCP3424 সামনে প্রান্তে একটি মাল্টিপ্লেক্সার সঙ্গে একটি একক এডিসি হয়।

ডেটাশিটের এই চিত্রটি এটিকে বেশ স্পষ্টভাবে দেখায়

MCP3424 আর্কিটেকচার

ডেটাশিট এটিকে উপস্থাপনের সাথে সমর্থন করে:

৪.১ সাধারণ পর্যালোচনা

এমসিপি 3422/3/4 ডিভাইসগুলি ডিফারেন্সিয়াল মাল্টিচ্যানেল লো-পাওয়ার, 18-বিট ডেল্টা-সিগমা এ / ডি রূপান্তরকারী একটি আই 2 সি সিরিয়াল ইন্টারফেস সহ। ডিভাইসগুলিতে একটি ইনপুট চ্যানেল নির্বাচন মাল্টিপ্লেজার (ম্যাক্স), একটি প্রোগ্রামেবল লাভ এমপ্লিফায়ার (পিজিএ), একটি বোর্ড-ভোল্টেজ রেফারেন্স (2.048 ভি), এবং একটি অভ্যন্তরীণ দোলক রয়েছে।

অতএব, আপনি একই সাথে বিভিন্ন চ্যানেল রূপান্তর করতে পারবেন না, তবে আপনি চ্যানেলগুলির মধ্যে তাদের মধ্যে তুলনামূলকভাবে সংক্ষিপ্ত বিলম্বের সাথে নমুনা নিতে পারেন।

ডিভাইসটি ব্যবহার করার সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আই 2 সি ঠিকানা বিট স্থিতিশীল রয়েছে; আর একবার, ডাটাশিট থেকে:

MCP3423 এবং MCP3424 এর দুটি বহিরাগত ডিভাইস ঠিকানা পিন রয়েছে (অ্যাড্র 1, অ্যাড্রে0)। এই পিনগুলি একটি লজিক উচ্চ (বা ভিডিডির সাথে আবদ্ধ), কম (বা ভিএসএসের সাথে আবদ্ধ), বা বাম ভাসমান (কোনও কিছুর সাথে সংযুক্ত নয়, বা ভিডিডি / 2 এ আবদ্ধ) সেট করা যেতে পারে, দুটি পিন ব্যবহার করে যুক্তি স্তরের এই সংমিশ্রণগুলি আটটি সম্ভাব্য ঠিকানা অনুমতি দিন। সারণি 5-3 অ্যাড্রেস নির্বাচন পিনের যুক্তির স্থিতির উপর নির্ভর করে ডিভাইসের ঠিকানা দেখায়। ডিভাইসটি নিম্নলিখিত ইভেন্টগুলিতে অ্যাড্র00 এবং অ্যাড্র 1 পিনের যুক্তির স্থিতির নমুনা দেয়:

ক। ডিভাইস পাওয়ার আপ

খ। সাধারণ কল রিসেট

(বিভাগ 5.4 দেখুন "সাধারণ কল")।

গ। জেনারেল কল ল্যাচ

(বিভাগ 5.4 দেখুন "সাধারণ কল")।

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

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

আপনি সত্যিই ডিভাইসের সাথে যোগাযোগ করছেন তা নিশ্চিত করার জন্য আপনি এই প্রস্তাবটি অনুসরণ করার পরামর্শ দিচ্ছি।

একটি নির্দিষ্ট চ্যানেল পড়তে আপনাকে কনফিগারেশন রেজিস্ট্রারে চ্যানেলটি নির্বাচন করতে হবে এবং একটি রূপান্তর শুরু করতে হবে । যখন রূপান্তরটির ফলাফল আউটপুট রেজিস্টারে পাওয়া যায় তখন আরডিওয়াই বিট কম যায়।

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