যদিও আমি উপলব্ধ বিভিন্ন প্রোগ্রামিং পদ্ধতিতে ডুব দিতে পছন্দ করব তবে অন্য কারও কাছে ইতিমধ্যে রয়েছে। এভিআরফ্রিক্স, এভিআর প্রোগ্রামিং পদ্ধতিগুলির বিষয়ে ডিন ক্যামেরার টিউটোরিয়ালটি এখানে রয়েছে :
এভিআর মাইক্রোকন্ট্রোলারগুলি প্রোগ্রাম করার বিভিন্ন উপায় রয়েছে। যেহেতু অনেকে এক সময় বা অন্য সময়ে বিভিন্ন সম্পর্কে জিজ্ঞাসা করে, তাই আমি ভেবেছিলাম যে আমি তাদের এখানে রূপরেখা করব যাতে তাদের প্রশ্নের উত্তরগুলি দ্রুত এবং দক্ষতার সাথে দেওয়া যেতে পারে। আমি যদি কোনও পদ্ধতি মিস করি বা ত্রুটি করি তবে দয়া করে আমাকে ক্ষমা করুন।
পদ্ধতি 1: ইন সিস্টেম প্রোগ্রামিং (আইএসপি)
সমর্থিত: বেশিরভাগ এভিআর (নীচে পোস্টগুলি দেখুন)
সমর্থিত প্রোগ্রামারগুলি: এভিআরএসপি এমকেআই / দ্বিতীয়, জেটিএইচ এমকেআই, এসটিকে 500, এসটিকে 600, ড্রাগন, এভিআরআইএসপি ক্লোনস, এভিআর 910 প্রোগ্রামারস, এভ্রোন
সিস্টেম এ প্রোগ্রামিং হ'ল পুরো এভিআর লাইনের ফ্ল্যাশ, ইপ্রোম, ফিউজ এবং লকবাইটগুলি প্রোগ্রাম করার সম্ভবত সবচেয়ে সাধারণ পদ্ধতি। আইএসপি অত্যন্ত উচ্চ ক্লক রেটগুলিতে এভিআরগুলি প্রোগ্রাম করতে পারে (ধরে নেওয়া লক্ষ্যমাত্রা এভিআর একটি উচ্চ ফ্রিকোয়েন্সিতে চলছে এবং প্রোগ্রামার এটি সমর্থন করে) এবং এটি প্রায় সমস্ত এভিআর শখের জন্য পছন্দের পদ্ধতি। বাজারে প্রচুর, অনেক এআরআইএসপি ক্লোন এবং এভিআর 910 প্রোগ্রামার রয়েছে যা আপনার কম্পিউটারের সমান্তরাল বন্দরের সাথে সংযুক্ত যা সাধারণ ডু-ইট-নিজেই ডঙ্গলগুলি ছাড়াও রয়েছে।
সাম্প্রতিক নতুন ডংগল ডিজাইনগুলি কম্পিউটারের সিরিয়াল বন্দরটি ব্যবহার করতে পারে, তবে উপাখ্যানীয় প্রমাণগুলি বলেছে যে প্রযুক্তিগত সীমাবদ্ধতার কারণে এই পদ্ধতিটি অত্যন্ত ধীর।
আইএসপি প্রয়োজন যে লক্ষ্য এভিআর আইএসপি ঘড়ির চেয়ে কমপক্ষে চারগুণ ঘড়ি রেটে চলছে। এটি একটি সাধারণ সমস্যা এবং অনেকগুলি নতুন এভিআর-এ বিভ্রান্তির উত্স।
পদ্ধতি 2: JTAG
দ্বারা সমর্থিত: দেখুন এমকেআই এবং এমকেআইআই ডিভাইস সমর্থনগুলির জন্য অ্যাভিআর স্টুডিও সরঞ্জাম সহায়তা
সমর্থনকারী প্রোগ্রামারগুলি: JTAG-ICE, JTAG-ICE MKII, ড্রাগন, JTAG-ICE ক্লোনস, AVRONE, STK600 (কেবল প্রোগ্রামিং)
প্রযুক্তিগতভাবে JTAG একটি ডিবাগিং সিস্টেম, কোনও প্রোগ্রামিং পদ্ধতি নয়। তবুও, জেটিএফ ইন্টারফেস এভিআর প্রোগ্রামিংয়ের জন্য এটি সমর্থন করে যা এটি সমর্থন করে।
জেটিএইচ হ'ল একটি ইন-সিস্টেম ডিবাগিং সরঞ্জাম যা আপনাকে কোনও সার্কিটের মধ্যে চলাকালীন কোনও সমর্থিত AVR এর স্থিতি পরিচালনা ও পরীক্ষা করতে দেয়। JTAG ব্যবহারকারীকে যে কোনও সময় মৃত্যুদণ্ড কার্যকর করতে, এভিআর'র অভ্যন্তরীণ রেজিস্টারগুলির হেরফের এবং আরও অনেক কিছু মঞ্জুরি দেয়।
এটিএমএল থেকে সরকারী জেটিএল-আইসিই ইউনিটগুলি জেটিএইচ-আইসিই এমকেআইআই দ্বারা বরখাস্ত করা হয়েছে, যা এভিআর পরিসীমা ডিবাগওয়্যারের ডিবাগিং প্রোটোকল জুড়ে আইএসপি পদ্ধতি (উপরে দেখুন) এর মাধ্যমে প্রোগ্রামিংয়ের পাশাপাশি আরও নতুন সমর্থন করে।
JTAG-ICE ক্লোনগুলি স্বল্প মূল্যের জন্য উপলব্ধ, তবে কেবলমাত্র কয়েকটি মুভি AVR এর সাথে তাদের সীমিত সামঞ্জস্যতা তাদের কার্যকারিতা সীমাবদ্ধ করে। এটিকে নির্বিশেষে, যদি আপনার এভিআর JTAG ইন্টারফেসটিকে সমর্থন করে তবে JTAG-ICE একটি খুব সুন্দর এবং কার্যকর ডিবাগিং পদ্ধতি এবং প্রোগ্রামার হিসাবে রয়ে গেছে।
পদ্ধতি 3: ডিবাগওয়্যার
এর দ্বারা সমর্থিত: অনেকগুলি ছোট এভিআর
সমর্থিত প্রোগ্রামারস: JTAG-ICE MKII, ড্রাগন, AVRONE
আবার ডিবাগওয়্যার একটি প্রোগ্রামিং ইন্টারফেসের পরিবর্তে একটি ডিবাগিং, তবে প্রোগ্রামগুলিতে সমর্থিত এভিআরগুলিতে লোড করতে ব্যবহার করা যেতে পারে। ডিডাব্লু ইন্টারফেসটি সমস্ত যোগাযোগের জন্য একটি একক এভিআর পিন (/ RESET লাইন) ব্যবহার করে এটি কম-পিন গণনা AVR ডিভাইসের জন্য আদর্শ করে তোলে।
পদ্ধতি 4: বুটলোডার
সমর্থিত: সর্বাধিক নতুন এভিআর
সমর্থিত প্রোগ্রামার: এন / এ
আবার প্রযুক্তিগতভাবে কোনও প্রোগ্রামিং পদ্ধতি নয়। একটি বুটলোডার একটি ছোট এভিআর প্রোগ্রাম যা নিয়মিত ফ্ল্যাশের ব্যবহারকারী-স্থিতিযোগ্য সংরক্ষিত অংশে বসে। বাহ্যিক উত্স থেকে লোড হওয়া প্রোগ্রামের ডেটা দিয়ে AVR কে নিজেই প্রোগ্রাম করার অনুমতি দেওয়ার জন্য বুটলোডাররা নতুন এভিআরগুলিতে ফ্ল্যাশ স্ব-পরিবর্তন বৈশিষ্ট্যগুলি উপলভ্য করে। বুটলোডাররা যে কোনও অবস্থান থেকে তাদের ডেটা উত্স করতে পারে (যেমন বহিরাগত ডেটাফ্ল্যাশ বা এসডি কার্ড) তবে এখন পর্যন্ত সবচেয়ে সাধারণ ধরণের বুটলোডার এভিআর এর আরএস -২৩২ (সিরিয়াল) পোর্টের মাধ্যমে পিসির সাথে যোগাযোগ করে।
বুটলোডার এতে সীমাবদ্ধ যে তারা ফ্ল্যাশ স্পেস ব্যবহার করে (এভিআর প্রয়োগের জন্য ফ্ল্যাশের আকার সীমাবদ্ধ করে) এবং তারা এভিআর ফিউজবিট পরিবর্তন করতে অক্ষম।
ডাউনলোডের জন্য বুটলোডারগুলি ইন্টারনেটে বিস্তৃতভাবে পাওয়া যায় তবে তারা "মুরগী এবং ডিম" সমস্যায় ভোগেন; আপনার প্রথমে বুটলোডারটিতে প্রোগ্রাম করার জন্য এখানে অন্য ধরণের প্রোগ্রামার প্রয়োজন need এটি সাধারণত একটি সরল সমান্তরাল বন্দর ডংগল (আইএসপি বিভাগ দেখুন) বা ইতিমধ্যে বুটলোডার (যেমন AVRButterfly বোর্ড) এর সাথে প্রিললোড করা একটি AVR কেনার মাধ্যমে সমাধান করা হয়।
পদ্ধতি 5: উচ্চ ভোল্টেজ সমান্তরাল প্রোগ্রামিং (এইচভিপিপি)
এর দ্বারা সমর্থিত: সর্বাধিক অ- টিআইএনআই এভিআর (ব্যতিক্রম সহ)
সমর্থিত প্রোগ্রামারস: এসটিকে 500, এসটিকে 600, ড্রাগন, হোমব্রু দংলেস, এভ্রোন
হাই ভোল্টেজ প্যারালাল প্রোগ্রামিং হ'ল প্রোগ্রামিংয়ের একটি পদ্ধতি যা খুব কমই ব্যবহৃত হয়, কারণ ঝামেলা হওয়ার কারণে এটি সেট আপ করতে হয়। এটি সত্ত্বেও, এইচভিপিপি প্রোগ্রামিং সাধারণত "পুনরুত্থান" এভিআরগুলিতে ব্যবহৃত হয় যাদের ফিউসবিট অন্য প্রোগ্রামিং পদ্ধতির মাধ্যমে ভুলভাবে কনফিগার করা হয়েছে।
STK500 এবং ড্রাগন উভয়ই এইচভিপিপি সমর্থন করে। এইচভিপিপি চলাকালীন, টার্গেটের / রিসেট পিনটি 12 ভি এর অস্বাভাবিকভাবে উচ্চতর মান পর্যন্ত বাড়ানো হয় যা অভ্যন্তরীণ সমান্তরাল প্রোগ্রামিং সার্কিটরীকে জড়িত। / রিসেট পিনটি এভিআরের একমাত্র পিন (এইচভিপিপি সমর্থিত এভিআরগুলিতে) যা নিরাপদে এই স্তরে উন্নীত করা যেতে পারে।
আপনি এটির মতো অনলাইন পরিকল্পনা ব্যবহার করে আপনার নিজের এইচভিপিপি ডাঙ্গল তৈরি করতে পারেন।
পদ্ধতি 6: উচ্চ ভোল্টেজ সিরিয়াল প্রোগ্রামিং (এইচভিএসপি)
সমর্থিত: অনেক টিন এভিআর (ব্যতিক্রম সহ)
সমর্থিত প্রোগ্রামারস: এসটিকে 500, এসটিকে 600, ড্রাগন, হোমব্রু দংলেস, এভ্রোন
সমান্তরাল না হয়ে ডাটা ট্রান্সফার ক্রমিকভাবে সম্পাদন করা ছাড়া এইচভিএসপি এইচভিপিপির সমান to এইচআইভিপিপির জন্য পর্যাপ্ত পিনের অভাব রয়েছে এমন অনেকগুলি TINY সিরিজের AVR- তে ব্যবহৃত এটি বিকল্প প্রোগ্রামিং পদ্ধতি।
পদ্ধতি 7: পিডিআই
দ্বারা সমর্থিত: এক্সএমইজিএ আরআর
সমর্থিত প্রোগ্রামারস: এসটিকে 6০০, এভ্রোন, জেটিএইচ এমকেআই, ড্রাগন, এভিআরএসপি এমকেআইআই
পিডিআই হ'ল ডিবিগওয়্যার প্রোটোকলের উপর ভিত্তি করে অ্যাভিআরগুলির এক্সএমইজিএ লাইনের জন্য নতুন প্রোগ্রামিং ইন্টারফেস। এটি বর্তমানে অন্য 8-বিট এভিআর মাইক্রোকন্ট্রোলারগুলিতে ব্যবহৃত হয় না।
পদ্ধতি 8: টিপিআই
দ্বারা সমর্থিত: 6-পিন TINY AVRs (ATTINY10, ইত্যাদি)
সমর্থিত প্রোগ্রামারগুলি: STK600, ড্রাগন, AVRISP MKII
টিপিআই হ'ল 6 টি পিন ATTINY10 এর মতো সীমিত পিনযুক্ত AVR গুলির নতুন TINY লাইনের জন্য খুব ছোট প্রোগ্রামিং ইন্টারফেস। ডিডাব্লুয়ের মতো, টিপিআই যোগাযোগ ইন্টারফেসের অংশ হিসাবে ডিভাইসের / রিসেট লাইনটি ব্যবহার করে, তবে সেখানে মিল খুঁজে পাওয়া যায় ends যেহেতু পিন্ট আকারের TINY AVR গুলির অন-চিপ ডিবাগিং সার্কিটের অভাব রয়েছে, তাই টিপিআই প্রোটোকল একটি অর্ধ-দ্বৈত প্রোটোকলে তিনটি পিনের একটি নতুন প্রোগ্রামিং ইন্টারফেস ব্যবহার করে। কারণ ডিভাইসের আরএসটিডিএসবি পিন সেট করার সময় প্রোগ্রামিংয়ের জন্য / রিসেট লাইনটি + 12 ভি বাড়ানো দরকার, এটি বর্তমানে কেবলমাত্র নতুন এসটিকে 600 প্রোগ্রামিং বোর্ড দ্বারা সমর্থিত।
বোনাস এফএকিউ বিভাগ!
কোনটি সেরা পদ্ধতি?
কোনও সার্বজনীন "সেরা" পদ্ধতি নেই। আইএসপি প্রোগ্রামিং সহজ এবং অত্যন্ত জনপ্রিয়, তবে উপরের সমস্ত পদ্ধতি কার্যকর হবে methods দুটি হাই ভোল্টেজ প্রোগ্রামিং মোড (যেটি আপনার ডিভাইসে প্রযোজ্য) সর্বাধিক বৈশিষ্ট্যযুক্ত, কারণ তারা এমন একটি এভিআর মেরামত করার অনুমতি দেয় যা এর ফিউজগুলি ভুল কনফিগার করা হয়েছে। তবে, এই পদ্ধতিগুলি সেট আপ করার জন্য একটি ব্যথা, তাই বেশিরভাগ ব্যবহারকারীরা আইএসপি দিয়ে যাওয়ার কারণ।
আমি একটি সমান্তরাল বন্দর ডোঙ্গেল তৈরি করেছি। আমি কি এটিআরআর স্টুডিওর সাথে ব্যবহার করতে পারি?
আমার ভয় হচ্ছে না. এটিআরআর স্টুডিও কোনও "বোবা" ডংগলের সাথে ইন্টারফেস করতে পারে না - এটি একটি স্মার্ট প্রোগ্রামিং ডিভাইস প্রয়োজন - এটি একটি মাইক্রোকন্ট্রোলারযুক্ত থাকে - এটি প্রেরিত যোগাযোগ প্রোটোকলটি বোঝার জন্য। মাইক্রোকন্ট্রোলারবিহীন সরল দোংগুলগুলি অবশ্যই "বিট-ব্যঞ্জড" (যেমন কম্পিউটারের মাধ্যমে ডঙ্গলের মাধ্যমে সিমুলেটেড উপযুক্ত সংকেতগুলি) হতে হবে।
তাহলে কি আমার দোংলের অকেজো?
নং আপনি এখনও কোনও তৃতীয় পক্ষের প্রোগ্রামিং সফ্টওয়্যার সরঞ্জাম দিয়ে একটি হোম মেড ডংলে মাধ্যমে প্রোগ্রাম করতে পারেন। এভিআরডুড একটি ভাল, জ্ঞাত, ফ্রি কমান্ড লাইন ইউটিলিটি - এবং এটি উইনএভিআর প্যাকেজ সহ অন্তর্ভুক্ত।
আমার প্রোগ্রামার AVRStudio এর সাথে কাজ করতে চাইলে আমার বিকল্পগুলি কী কী?
এমন একটি প্রোগ্রামার চয়ন করুন যা একটি AVRStudio- সমর্থিত প্রোটোকল ব্যবহার করে। এটি সাধারণ "AVR910" প্রোটোকল (অবনমিত) বা STK500 / AVRISP দ্বারা ব্যবহৃত প্রোটোকলের একটি কাস্টম বাস্তবায়ন হতে পারে। মনে রাখবেন যে এই প্রোগ্রামারগুলিতে তাদের মধ্যে একটি মাইক্রো কন্ট্রোলার প্রয়োজন, যা ক্যাচ -২২ পরিস্থিতি নিয়ে আসে। এটি যথাযথ ফার্মওয়্যারের সাথে কেনার সময় প্রোগ্রামারের অ্যাভিআর প্রাক-প্রোগ্রামিং করে বা বুটলোডারের সাথে AVR প্রাক-প্রোগ্রামযুক্ত করে সমাধান করা যেতে পারে।
ঠিক আছে, আমি একটি বুটলোডার ব্যবহার করতে চাই। আমি সেখানে এটি প্রথম স্থানে কিভাবে পাব ?!
একটি এভিআর-এ একটি বুটলোডার ব্যবহার করতে, আপনাকে প্রথমে বুটলোডার প্রোগ্রামিং করতে হবে you আপনার যদি কোনও বিদ্যমান প্রোগ্রামার না থাকে (এমনকি একটি সাধারণ বোবা ডংগল প্রাথমিক প্রোগ্রামিংয়ের জন্য যথেষ্ট হবে), আপনি বিকল্পভাবে একটি সাথে পূর্ব-প্রোগ্রামযুক্ত এভিআর কিনতে পারেন a বেশ কয়েকটি সরবরাহকারী থেকে বুটলোডার।
আতেল বাটারফ্লাই ডেমো বোর্ডও তৈরি করে, যার MEGA169 এভিআর একটি এভিআর-স্টুডিও সামঞ্জস্যপূর্ণ বুটলোডার দিয়ে প্রি-লোডযুক্ত আসে।
সাহায্য করুন! আইএসপি ব্যবহার করার সময় আমি ফিউজগুলিতে গণ্ডগোল করেছি এবং আমার এভিআর নক করে ফেলেছি!
সবচেয়ে সাধারণ ভুলটি হ'ল ঘড়ির নির্বাচন ফিউজকে একটি অবৈধ সেটিংয়ে পরিবর্তন করা। AVR এর XTAL1 পিনে একটি বাহ্যিক ঘড়ি রাখার চেষ্টা করুন এবং দেখুন এটি সাহায্য করে কিনা।
এটি ব্যর্থ হচ্ছে, যদি সম্ভব হয় তবে উচ্চ-ভোল্টেজের একটি পদ্ধতি ব্যবহার করুন। উচ্চ-ভোল্টেজ পদ্ধতিগুলি এভিআরকে প্রোগ্রামিংয়ের জন্য নিজস্ব ঘড়ি সরবরাহ করে কারণ এগুলি ক্লক উত্সের সাথে জড়িত অন্য কোনও ভুল কনফিগারেশনের সমাধান করবে fix
আমি কীভাবে আমার প্রোগ্রামারটির সাথে ইন্টারফেস করব?
আপনি আপনার প্রোগ্রামারটির সাথে ইন্টারফেস করার জন্য কোন সফ্টওয়্যার ব্যবহার করেন আপনি কী ধরণের প্রোগ্রামার ব্যবহার করছেন তার উপর নির্ভর করে।
সাধারণ "বোবা" দোংগুলিতে তৃতীয় পক্ষের সফ্টওয়্যার যেমন পনিপ্রোগ বা এভিআরডুডের প্রয়োজন হয়। এগুলি কমান্ড লাইন বা জিইউআই সরঞ্জাম হতে পারে - ওয়েবে ঘুরে দেখুন এবং আপনার প্রয়োজন অনুসারে আপনি এটি জরিমানা করবেন।
AVR910 প্রোটোকল ভিত্তিক প্রোগ্রামার এবং বুটলোডারগুলি AVRStudio এর মধ্যে ব্যবহার করা যেতে পারে। সরঞ্জাম মেনু থেকে, আপনার প্রোগ্রামারটির সাথে ইন্টারফেসের জন্য একটি জিইউআই স্ক্রিন খুলতে "AVRProg" বিকল্পটি নির্বাচন করুন। বিকল্প হিসাবে, তৃতীয় পক্ষের সরঞ্জাম যেমন এভিআরডুডও এভিআর 910 সামঞ্জস্যপূর্ণ।
অফিসিয়াল সরঞ্জামগুলি দৃ AV়ভাবে এভিআর স্টুডিওতে একীভূত হয়, বিশেষত ডিবাগিং ভেরিয়েন্টগুলির ক্ষেত্রে (জেটিএইচ / ড্রাগন / ইত্যাদি)। AVRStudio সরঞ্জাম মেনু থেকে, "প্রোগ্রাম AVR ..." সাবমেনু নির্বাচন করুন এবং "সংযুক্ত করুন" আইটেমটি ক্লিক করুন। নতুন উইন্ডো থেকে আপনার সরঞ্জাম এবং এর সংযোগ ইন্টারফেসটি নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন।
বোবা ডংগলস এবং এভিআর 910 প্রোগ্রামারদের ক্ষেত্রে, সরকারী সরঞ্জামগুলি তৃতীয় পক্ষের প্রোগ্রামিং সফ্টওয়্যার ব্যবহার করা যেতে পারে।
(গ) ডিন ক্যামেরা, ২০০৯. সমস্ত অধিকার সংরক্ষিত। পূর্ব স্পষ্ট অনুমতি ব্যতিরেকে AVRFreaks.net ব্যতীত অন্য কোনও ওয়েবসাইটে প্রজননের জন্য নয়।