সুচিপত্র:

দ্বৈত ট্রেস অসিলোস্কোপ: 11 টি ধাপ (ছবি সহ)
দ্বৈত ট্রেস অসিলোস্কোপ: 11 টি ধাপ (ছবি সহ)

ভিডিও: দ্বৈত ট্রেস অসিলোস্কোপ: 11 টি ধাপ (ছবি সহ)

ভিডিও: দ্বৈত ট্রেস অসিলোস্কোপ: 11 টি ধাপ (ছবি সহ)
ভিডিও: How to use Oscilloscope in Proteus Part 2 Bangla 2021 2024, জুলাই
Anonim
ডুয়াল ট্রেস অসিলোস্কোপ
ডুয়াল ট্রেস অসিলোস্কোপ

যখন আমি আমার আগের মিনি অসিলোস্কোপ তৈরি করি তখন আমি দেখতে চেয়েছিলাম যে আমি আমার ক্ষুদ্রতম এআরএম মাইক্রোকন্ট্রোলারকে কতটা ভাল করে একটি STM32F030 (F030) সম্পাদন করতে পারি এবং এটি একটি চমৎকার কাজ করেছে।

একটি মন্তব্যে এটি সুপারিশ করা হয়েছিল যে একটি STM32F103 (F103) সহ একটি "ব্লু পিল" F030 সহ উন্নয়ন বোর্ডের চেয়ে ছোট এবং সম্ভবত সস্তা। কিন্তু মিনি অসিলোস্কোপের জন্য আমি ডেভেলপমেন্ট বোর্ড ব্যবহার করিনি কিন্তু F030 এমনকি একটি ছোট SMD-DIP বোর্ডে, তাই সেখানে একটি নীল পিল অবশ্যই ছোট হবে না এবং আমি সন্দেহ করি যে এটিও সস্তা হবে।

কোড এখন গিটল্যাবে পাওয়া যায়:

gitlab.com/WilkoL/dual-trace-oscilloscope

সরবরাহ

অংশ তালিকা: - প্লাস্টিকের বাক্স - পারফোর্ড (ডাবল সাইডেড প্রোটোটাইপ বোর্ড 8x12cm) - ব্লু পিল - ST7735s TFT ডিসপ্লে - লিথিয়াম -আয়ন ব্যাটারি - HT7333 3.3V লো ড্রপআউট রেগুলেটর - MCP6L92 ডুয়েল opamp - TSSOP8 থেকে DIP8 বোর্ড - 12 MHz স্ফটিক (প্রয়োজন নেই)) - ঘূর্ণমান এনকোডার প্লাস গাঁট (2x) - পাওয়ারসুইচ - কলা টার্মিনাল (4x) - লিথিয়াম -আয়ন চার্জার বোর্ড - বেশ কয়েকটি প্রতিরোধক এবং ক্যাপাসিটার - নাইলন স্পেসার, বাদাম এবং স্ক্রু

সরঞ্জাম:

- সোল্ডারিং স্টেশন - সোল্ডার 0.7 মিমি - কিছু তার - সাইড কাটার - চশমা এবং লাউপ - ড্রিল - মাল্টিমিটার - অসিলোস্কোপ - STLink -V2

সফটওয়্যার:

- STM32IDE - STM32CubeMX - STLink ইউটিলিটি - LowLayer লাইব্রেরি - ST7735s এর জন্য অভিযোজিত লাইব্রেরি - নোটপ্যাড ++ - কিক্যাড

ধাপ 1: ইন্টারলিভ বা একই সাথে মোড

ইন্টারলিভ বা একই সাথে মোড
ইন্টারলিভ বা একই সাথে মোড
ইন্টারলিভ বা একই সাথে মোড
ইন্টারলিভ বা একই সাথে মোড

নীল বড়ি

কিন্তু ধারণাটি ছিল, এবং আমি জানতাম যে F103 এর দুটি ADC আছে! যদি আমি সেই দুটি এডিসি একসাথে "ইন্টারলিভ" মোডে ব্যবহার করি, যা আমি STM32F407 (F407) এর আগে করেছি। নমুনার গতি দ্বিগুণ হবে। এটি, একটি দ্রুত মাইক্রোকন্ট্রোলারের সাথে একত্রিত করুন এবং এটি মিনি অসিলোস্কোপের জন্য একটি মহান উত্তরসূরি তৈরি করবে।

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

যুগপৎ মোড

কিন্তু, দুটি এডিসি থাকার ফলে আরও অনেক অপশন পাওয়া যায়, দুটি এডিসিকে "নিয়মিত-যুগপৎ" মোডেও সেট করা যায়। কিভাবে একটি দ্বৈত ট্রেস-অসিলোস্কোপ সম্পর্কে?

একটি দ্বৈত ট্রেস অসিলোস্কোপ তৈরির চেষ্টা করার সিদ্ধান্ত নেওয়ার পরে আমি পরিবর্তনশীল ইনপুট সংবেদনশীলতাও চেয়েছিলাম, একটি বিকল্প যা আমার কাছে মিনি অসিলোস্কোপে ছিল না। এর অর্থ ইনপুটগুলিতে একটি অ্যাটেনুয়েটর (এবং পরিবর্ধক)। এবং সম্ভবত আমি আরও চেয়েছিলাম? তাই আমি "চমৎকার-থেকে" -এর একটি ছোট তালিকা তৈরি করেছি।

ইচ্ছেতালিকা

দুটি চ্যানেল

উভয় চ্যানেলে পরিবর্তনশীল সংবেদনশীলতা

উভয় চ্যানেলে ট্রিগার

উভয় চ্যানেলে পরিবর্তনশীল ট্রিগার স্তর

পরিবর্তনশীল অফসেট

একক ব্যাটারি শক্তি

মিনি-অসিলোস্কোপের মতো একই বাক্সে ফিট

ধাপ 2: প্রোটোটাইপিং

প্রোটোটাইপিং
প্রোটোটাইপিং
প্রোটোটাইপিং
প্রোটোটাইপিং

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

ধাপ 3: Attenuators

Attenuators
Attenuators

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

তারপর আমি "এনালগ সুইচ" এর কথা ভাবলাম, সেগুলো দিয়ে আমি নিজে ডিজিটাল পোটেন্টিওমিটার বানাতে পারি। আমার পার্টস সংগ্রহে আমি CD4066 চারটি এনালগ সুইচ সহ পেয়েছি। ধারণা হল প্রতিক্রিয়া প্রতিরোধকের সমান্তরালভাবে এবং বাইরে প্রতিরোধক পরিবর্তন করে একটি opamp ভেরিয়েবলের প্রতিক্রিয়া প্রতিরোধক তৈরি করা।

এটি খুব ভাল কাজ করে, কিন্তু 4066 এ মাত্র 4 টি সুইচ এবং 2 টি চ্যানেল থাকার ফলে তিনটি সংবেদনশীলতার মাত্রা বেশি করা সম্ভব ছিল না। আমি প্রতি বিভাগে 500mV, 1V এবং 2V বেছে নিয়েছি কারণ সেগুলি হল ভোল্টেজের মাত্রা যা আমি সবচেয়ে বেশি ব্যবহার করি। স্ক্রিনটি 6 টি বিভাগে বিভক্ত, যাতে এটি -1.5V থেকে +1.5V, -3V থেকে +3V এবং -6V থেকে 6V রেঞ্জ তৈরি করে।

"ভার্চুয়াল-গ্রাউন্ড" এর সাহায্যে আপনি এই রেঞ্জগুলিকে উপরে এবং নিচে সরাতে পারেন তাই 0v থেকে +12V পর্যন্ত সম্ভব।

ধাপ 4: ভার্চুয়াল গ্রাউন্ড

ভার্চুয়াল গ্রাউন্ড
ভার্চুয়াল গ্রাউন্ড
ভার্চুয়াল গ্রাউন্ড
ভার্চুয়াল গ্রাউন্ড

কারণ অসিলোস্কোপ একটি একক পাওয়ার রেল ব্যবহার করে (3.3V) opamps একটি ভার্চুয়াল স্থল স্তরের প্রয়োজন হয় বা তারা কাজ করবে না। এই ভার্চুয়াল গ্রাউন্ড লেভেলটি TW4 এর একটি আউটপুট চ্যানেলে PWM দিয়ে তৈরি করা হয়েছে, এর ডিউটি চক্র মাত্র কয়েক শতাংশ থেকে প্রায় শতভাগে পরিবর্তিত হয়। একটি 1k রোধকারী এবং 10uF ক্যাপাসিটরের একটি কম পাস ফিল্টার এটিকে (প্রায়) 0V থেকে (প্রায়) 3.3V এর ভোল্টেজে রূপান্তরিত করে। স্কয়ারওয়েভের ফ্রিকোয়েন্সি মাত্র 100kHz এর নিচে, তাই সাধারণ লো পাস ফিল্টার যথেষ্ট ভাল।

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

ধাপ 5: রোটারি এনকোডার এবং ডিবাগিং

রোটারি এনকোডার এবং ডিবাগিং
রোটারি এনকোডার এবং ডিবাগিং
রোটারি এনকোডার এবং ডিবাগিং
রোটারি এনকোডার এবং ডিবাগিং

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

এবং আপনি দেখতে পাচ্ছেন, একটি ডিসপ্লে থাকাও ডিবাগিং তথ্য প্রদর্শন করতে খুব সুবিধাজনক হতে পারে।

ধাপ 6: প্রদর্শন এবং টাইমবেস

ডিসপ্লে এবং টাইমবেস
ডিসপ্লে এবং টাইমবেস

ডিসপ্লের 160 x 128 পিক্সেলের রেজোলিউশন আছে তাই এক স্ক্রিনফুলের জন্য 160 টি নমুনা প্রয়োজন, আমি ADC গুলিকে প্রতি সেকেন্ডে 1.6 মিলিয়ন নমুনা করার জন্য গতিশীল করতে পেরেছি এবং এটি অনেক বেশি ক্লক মাইক্রোকন্ট্রোলারের সাথে (পরে আরও), দেয় প্রতি বিভাগে 20us এর ন্যূনতম টাইমবেস (প্রতি পর্দায় 100us)। এইভাবে 10kHz একটি তরঙ্গাকৃতি পুরো পর্দা পূরণ করবে।

এটি আমার আগে তৈরি করা মিনি অসিলোস্কোপের চেয়ে দ্বিগুণ দ্রুত। ওহ, এখন এটি দুটি চ্যানেলের সাথে রয়েছে:-)

যেমনটি বলা হয়েছে, ডিসপ্লেটি 160 পিক্সেল প্রশস্ত তাই প্রতি স্ক্রিনে কেবল 160 টি মান প্রয়োজন। কিন্তু সব বাফার আসলে 320 নমুনা রয়েছে। সুতরাং ডিএমএ একটি ট্রান্সমিশন কমপ্লিট ইন্টারাপ্ট (টিসি) ট্রিগার করার আগে 20২০ ভ্যালু সংরক্ষণ করে। কারণ সফটওয়্যারে ট্রিগার করা হয়। নমুনা একটি এলোমেলো মুহূর্তে শুরু হয়, তাই এটি খুব অসম্ভাব্য যে বাফারের প্রথম মানটি সেই জায়গা যেখানে ট্রিগার পয়েন্ট হওয়া উচিত।

অতএব ট্রেস_এক্স_বফারের মাধ্যমে পড়ার মাধ্যমে ট্রিগার পয়েন্ট পাওয়া যায়, যদি মানটি ট্রিগার ভ্যালুতে থাকে এবং যদি আগের মানটি এর ঠিক নীচে থাকে তবে ট্রিগার_পয়েন্ট পাওয়া যায়। এটি বেশ ভাল কাজ করে, কিন্তু প্রকৃত প্রদর্শন আকারের চেয়ে আপনার একটি বড় বাফার প্রয়োজন।

এটিও কারণ যে নিম্ন টাইমবেস সেটিংসে রিফ্রেশ রেট আপনার প্রত্যাশার চেয়ে ধীর। যখন আপনি 200ms/div সেটিং ব্যবহার করেন তখন একটি পূর্ণ স্ক্রিন ডেটা 1 সেকেন্ড হয়, কিন্তু কনভার্সনের পরিমাণ দ্বিগুণ হয়ে গেলে, এতে 2 সেকেন্ড সময় লাগে। দ্রুত টাইমবেস সেটিংসে আপনি এটিকে ততটা লক্ষ্য করবেন না।

TIM3 টাইমবেস তৈরি করতে ব্যবহৃত হয়। এটি নির্বাচিত টাইমবেস সেটিং দ্বারা প্রয়োজনীয় গতিতে ADC কে ট্রিগার করে। টিআইএম 3 এর ঘড়ি 120 মেগাহার্টজ (ওভারক্লকিং দেখুন), সর্বোচ্চ সংখ্যা যা এটি গণনা করে (এআরআর) নির্ধারণ করে যে এটি কীভাবে উপচে পড়ে বা এসটি ভাষায় এটি আপডেট হয়। TRGO এর মাধ্যমে এই আপডেট ডালগুলি ADC কে ট্রিগার করে। এটি উৎপন্ন সর্বনিম্ন ফ্রিকোয়েন্সি হল 160 Hz, সর্বোচ্চ হল 1.6MHz।

ধাপ 7: এডিসি এবং ডিএমএ

এডিসি এবং ডিএমএ
এডিসি এবং ডিএমএ

দুটি ADC গুলি একই সময়ে তাদের ইনপুটগুলিতে ভোল্টেজ রূপান্তর করে, তারা সেই দুটি 12 বিট মানগুলিকে একটি 32 বিট ভেরিয়েবলে সংরক্ষণ করে। সুতরাং ডিএমএতে স্থানান্তর করার জন্য প্রতি (দ্বিগুণ) রূপান্তর মাত্র একটি পরিবর্তনশীল।

এই মানগুলি ব্যবহার করার জন্য তাই তাদের দুটি মানগুলিতে বিভক্ত করা প্রয়োজন যাতে তারা দুটি ট্রেস প্রদর্শন করতে ব্যবহার করা যায়। যেমনটি বলা হয়েছে, F103 এ ADC 12 বিটের চেয়ে অন্য রেজুলেশনে সেট করা যাবে না। এগুলি সর্বদা 12 বিট মোডে থাকে এবং তাই রূপান্তরগুলি সর্বদা একই সংখ্যক ঘড়ি ডাল নেয়। তবুও, ADCs এর overclocking সঙ্গে, 1.6 MSamples প্রতি সেকেন্ডে করা যেতে পারে (অতিরিক্ত দেখুন: Overclocking)।

ADCs এর রেফারেন্স হল Vdd, 3.3V রেল। এটিকে আরও সুবিধাজনক মানগুলিতে (প্রতি বিভাগ) রূপান্তর করার জন্য আমি অ্যাটেনুয়েটরগুলির মান গণনা করেছি, কারণ আমার কাছে সঠিক প্রতিরোধক মান নেই যা সেই গণনা থেকে বেরিয়ে আসে কিছু সংশোধন সফ্টওয়্যারে করা হয়।

এই প্রকল্পে আমি "নিয়মিত-মোডে" ডিএমএ ব্যবহার করি। এই মোডে ডিএমএ ডেটা স্থানান্তর বন্ধ করে দেয় (ডি এডিসি থেকে মেমরিতে) যখন শব্দের সংখ্যা (বা অর্ধ-শব্দ বা বাইট) সব স্থানান্তরিত হয়। অন্য সম্ভাব্য মোডে, "সার্কুলার মোড" ডিএমএ নিজেকে পুনরায় সেট করে এবং অবিরামভাবে ডেটা স্থানান্তর করা চালিয়ে যায়। এটি F103 এর সাথে কাজ করে নি, এটি এত দ্রুত যে এটি বাকি প্রোগ্রামটি পড়ার আগে এটি adc_buffer এ ডেটা ওভাররাইট করে। সুতরাং এখন প্রক্রিয়াটি নিম্নরূপ:

- স্থানান্তরিত করা ডেটার সংখ্যার জন্য ডিএমএ সেটআপ করুন এবং ডিএমএ সক্ষম করুন

- এডিসিগুলির ট্রিগার শুরু করুন, এগুলি প্রতিটি (দ্বিগুণ) রূপান্তরের পরে ডিএমএ স্থানান্তরের অনুরোধ করবে

- রূপান্তরগুলির নির্ধারিত সংখ্যা স্থানান্তরিত হওয়ার পরে, ডিএমএ বন্ধ হয়ে যায়

- অবিলম্বে এডিসির ট্রিগারিংও বন্ধ করুন

- মেমরিতে ডেটাতে প্রয়োজনীয় সমস্ত ম্যানিপুলেশন করুন

- পর্দায় ট্রেস দেখান

- প্রক্রিয়াটি আবার শুরু করুন

ধাপ 8: ইউজার ইন্টারফেস

ব্যবহারকারী ইন্টারফেস
ব্যবহারকারী ইন্টারফেস

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

ধাপ 9: বিল্ডিং এবং সম্ভাব্য উন্নতি

বিল্ডিং এবং সম্ভাব্য উন্নতি
বিল্ডিং এবং সম্ভাব্য উন্নতি
বিল্ডিং এবং সম্ভাব্য উন্নতি
বিল্ডিং এবং সম্ভাব্য উন্নতি
বিল্ডিং এবং সম্ভাব্য উন্নতি
বিল্ডিং এবং সম্ভাব্য উন্নতি
বিল্ডিং এবং সম্ভাব্য উন্নতি
বিল্ডিং এবং সম্ভাব্য উন্নতি

আমি এই প্রকল্প সম্পর্কে বেশ খুশি। এটি সূক্ষ্ম কাজ করে এবং কাজটি করে, তবে এটি আরও ভাল হতে পারে।

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

আমি BNC বা SMA সংযোগকারীর পরিবর্তে কলা সংযোজক ব্যবহার করে জীবনকে আরো কঠিন করে তুলেছি, এর মানে হল যে পারফবোর্ডের একটি বড় অংশ ছিল "নো-গো-এরিয়া", এটা আমার নিজের জন্য পরিষ্কার করার জন্য আমি নিজেকে আটকানোর জন্য তার উপর ক্যাপটন টেপ লাগিয়েছিলাম তার উপর অংশ রাখা থেকে।

এতো ছোট প্রজেক্ট বক্সে সবকিছু রাখার আরেকটি সমস্যা হল যে এনালগ এবং ডিজিটাল সার্কিটগুলি খুব কাছাকাছি। আপনি দেখতে পাচ্ছেন যে উভয় ট্রেসে প্রচুর শব্দ দৃশ্যমান। এটি আমার কাছে রুটিবোর্ডেও ছিল না! এনালগ এবং ডিজিটাল সার্কিটের জন্য পাওয়ার লাইনগুলি যতটা সম্ভব দূরে সরিয়ে একটি ছোট উন্নতি করা হয়েছিল, কিন্তু আমার পছন্দ করার জন্য যথেষ্ট নয়। এনালগ সার্কিটে সমস্ত প্রতিরোধক মান হ্রাস করা আমার চেয়েও বেশি (ইনপুট প্রতিরোধ 1km এর পরিবর্তে 100kOhm) সাহায্য করেনি। আমি সন্দেহ করি যে দ্রুততম টাইমবেস সেটিং (20us/div) তে ট্রিগার করা, যা দুর্দান্ত নয়, সংকেতগুলিতে কম শব্দ দিয়েও উন্নতি হবে।

যদি আপনি এই নকশাটি "বাস্তব" পিসিবিতে তৈরি করেন, সমস্ত এসএমডি অংশ এবং এনালগ, ডিজিটাল এবং পাওয়ারের জন্য পৃথক স্তর (এটি 4 স্তর!) সম্ভবত এটি খুব ভাল কাজ করবে। এটি অনেক ছোট হবে, এটি একটি সম্পূর্ণ নীল পিল ব্যবহার করবে না কিন্তু শুধুমাত্র F103 এবং এটি ADCs এর জন্য একটি পৃথক (পরিষ্কার) এনালগ Vdda সরবরাহ করা সম্ভব করবে।

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

ধাপ 10: কোড এবং একটি সংক্ষিপ্ত ভিডিও

ধাপ 11: অতিরিক্ত: ওভারক্লকিং

অতিরিক্ত: ওভারক্লকিং
অতিরিক্ত: ওভারক্লকিং

আমি যেমন F03 এর সাথে করেছি, আমি দেখতে চেয়েছিলাম যে F103 কে কতটা ওভারক্লক করা যায়। এই মাইক্রোকন্ট্রোলারের স্পেসিফিকেশন দাবি করে যে সর্বাধিক ঘড়ির গতি 72MHz অতিক্রম করা উচিত নয় (যা অবশ্যই F030 এর চেয়ে দ্রুততর) কিন্তু আমি বেশ কয়েকটি ব্লগে পড়েছিলাম যে ওভারক্লকিং করা সহজ ছিল, তাহলে কেন নয়?

ব্লু পিল একটি 8 মেগাহার্টজ স্ফটিক দিয়ে সরবরাহ করা হয়, পিএলএল 9 থেকে 72 মেগাহার্টজ এর একটি গুণককে গুণ করে। 128 মেগাহার্টজ ঘড়ি দিয়ে পিএলএল 16 পর্যন্ত বাড়ানো যেতে পারে। আমার ব্লু পিলের জন্য এটি মোটেও সমস্যা ছিল না, আসলে, আমার সমস্ত ব্লু পিল 128MHz এ কোনও সমস্যা ছাড়াই কাজ করে।

কিন্তু এখন আমি জানতে চেয়েছিলাম আসল সীমা কি। তাই আমি 8MHz স্ফটিক সরিয়েছি এবং এটি 12MHz এর একটি দিয়ে প্রতিস্থাপন করেছি। আবার আমি পিএলএল গুণক বাড়িয়েছিলাম যতক্ষণ না মাইক্রোকন্ট্রোলার শেষ পর্যন্ত হাল ছেড়ে দেয়। যে ছিল 168MHz! 156MHz এ এটি এখনও ভাল কাজ করে। আমি এটিকে সেই গতিতে ঘণ্টার পর ঘণ্টা রেখে দিয়েছি এবং এটি কখনই ক্র্যাশ হতে দেখিনি। এই অসিলোস্কোপে আমি 120 মেগাহার্টজের জন্য স্থির হয়েছি, একটি গতি যা 12 মেগাহার্টজ স্ফটিক এবং 10 এ পিএলএল, সেইসাথে 8 মেগাহার্টজ স্ফটিক এবং 15 এ পিএলএল দিয়ে নির্বাচন করা যেতে পারে।

এডিসিগুলি এখন দ্রুত কাজ করে, আমি তাদের 30MHz (14 এর পরিবর্তে) চালাচ্ছি, তারা এখনও 60MHz এ ভাল কাজ করছে, STMicroelectronics কিছু চমৎকার হার্ডওয়্যার তৈরি করে!

STMicroelectronics এই সীমাবদ্ধতাগুলিকে ডেটশীটে রেখেছে সঙ্গত কারণে, তারা গ্যারান্টি দেয় যে মাইক্রোকন্ট্রোলার সব অবস্থার অধীনে নির্দিষ্ট 72MHz এ কাজ করে।

কিন্তু যেহেতু আমি -40 সেলসিয়াস, +85 সেলসিয়াস মাইক্রোকন্ট্রোলার ব্যবহার করি না, মাত্র 2.0 ভোল্ট বা 3.6 ভোল্টে আমি মনে করি এটি ওভারক্লক করা নিরাপদ। যখন আপনি তাদের মাইক্রোকন্ট্রোলারগুলির সাথে একটি ডিভাইস বিক্রির ইচ্ছা করেন তখন এটি করবেন না, আপনি কখনই জানেন না সেগুলি কোথায় ব্যবহার করা হবে।

প্রস্তাবিত: