প্রোগ্রামিং মাইক্রোকন্ট্রোলাররা: জেটি TAG, এসপিআই, ইউএসবি ওহ আমার !?


52

আমি লক্ষ করেছি, মাইক্রোকন্ট্রোলারদের প্রতি, তাদের প্রোগ্রাম করার বিভিন্ন উপায় রয়েছে। আমি আর্দুইনো ইউএসবি-র মাধ্যমে প্রোগ্রাম করা যায় বলে আমি ইউএসবি'র সাথে পরিচিত a

একটি JTAG বা এসপিআই ইন্টারফেস কি?

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

উত্তর:


39

কারখানা থেকে সরাসরি আসা আডুইনোর মতো এটিএমইজিএ মাইক্রোকন্ট্রোলারগুলিকে কেবল এসপিআই বা জেটিএইচ ইন্টারফেস ব্যবহার করে প্রোগ্রাম করা যেতে পারে।

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

যেখানে এসপিআই "কেবল অন্য একটি" সিরিয়াল প্রোটোকল, জেটিএইগ একটি প্রোটোকল যা বিশেষত মাইক্রোকন্ট্রোলারদের প্রোগ্রাম এবং ডিবাগ করার জন্য ডিজাইন করা হয়েছে। সমস্ত অটমেল মাইক্রো সমর্থন জেটি TAG নয় তবে আরডিনোতে ব্যবহৃত হয় ones JTAG প্রোটোকলটি "ইন সার্কিট এমুলেশন" এবং ডিবাগিংয়ের মতো শীতল জিনিসের জন্য ব্যবহার করা যেতে পারে যার অর্থ এটি আপনাকে মাইক্রোকন্ট্রোলারে প্রোগ্রামের অবস্থাটি চালু অবস্থায় চালিত করতে সক্ষম করে। এটি করতে আপনার একটি বিশেষ প্রোগ্রামার প্রয়োজন need অন্য প্রশ্নের জন্য আমার উত্তর দেখেছেন ?

ইউএসবি ব্যবহার করে একটি চিপ প্রোগ্রাম করার জন্য আপনাকে প্রথমে এটিকে এসপিআই বা জেটিএইচ ব্যবহার করে একটি "বুটলোডার" দিয়ে প্রোগ্রাম করতে হবে। বুটলোডারটি একবার লোড হয়ে গেলে, ইউএসবি-সিরিয়াল রূপান্তরকারীটি ব্যবহার করে যে কোনও পিসি থেকে সিস্টেমটি প্রোগ্রামযোগ্য হবে। খারাপ দিকটি হ'ল বুটলোডার কিছু মেমরি স্থান নেয় এবং এই পদ্ধতিটি আপনাকে চালানোর সময় চিপের অবস্থা দেখতে দেয় না।


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

এসপিআই এবং ইন সিস্টেম প্রোগ্রামিং / সিরিয়াল প্রোগ্রামিং আলাদা। আমিও এই সত্যটি অভ্যস্ত ছিলাম যে ছোট আটমেগা এমসিইউ'র অনেকের এসপিআই ইন্টারফেসে সিরিয়াল প্রোগ্রামিং পিন ছিল, তবে আমি সত্যই কামড়েছি যে বৃহত্তর আটমেগা এমসিইউ-তে সিরিয়াল প্রোগ্রামিং পিনগুলি এসপিআই ইন্টারফেসে ছিল না।
ফেস্ট

30

যদিও আমি উপলব্ধ বিভিন্ন প্রোগ্রামিং পদ্ধতিতে ডুব দিতে পছন্দ করব তবে অন্য কারও কাছে ইতিমধ্যে রয়েছে। এভিআরফ্রিক্স, এভিআর প্রোগ্রামিং পদ্ধতিগুলির বিষয়ে ডিন ক্যামেরার টিউটোরিয়ালটি এখানে রয়েছে :

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

পদ্ধতি 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 প্রোগ্রামিং বোর্ড দ্বারা সমর্থিত।

বোনাস এফএকিউ বিভাগ!

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

  2. আমি একটি সমান্তরাল বন্দর ডোঙ্গেল তৈরি করেছি। আমি কি এটিআরআর স্টুডিওর সাথে ব্যবহার করতে পারি?
    আমার ভয় হচ্ছে না. এটিআরআর স্টুডিও কোনও "বোবা" ডংগলের সাথে ইন্টারফেস করতে পারে না - এটি একটি স্মার্ট প্রোগ্রামিং ডিভাইস প্রয়োজন - এটি একটি মাইক্রোকন্ট্রোলারযুক্ত থাকে - এটি প্রেরিত যোগাযোগ প্রোটোকলটি বোঝার জন্য। মাইক্রোকন্ট্রোলারবিহীন সরল দোংগুলগুলি অবশ্যই "বিট-ব্যঞ্জড" (যেমন কম্পিউটারের মাধ্যমে ডঙ্গলের মাধ্যমে সিমুলেটেড উপযুক্ত সংকেতগুলি) হতে হবে।

  3. তাহলে কি আমার দোংলের অকেজো?
    নং আপনি এখনও কোনও তৃতীয় পক্ষের প্রোগ্রামিং সফ্টওয়্যার সরঞ্জাম দিয়ে একটি হোম মেড ডংলে মাধ্যমে প্রোগ্রাম করতে পারেন। এভিআরডুড একটি ভাল, জ্ঞাত, ফ্রি কমান্ড লাইন ইউটিলিটি - এবং এটি উইনএভিআর প্যাকেজ সহ অন্তর্ভুক্ত।

  4. আমার প্রোগ্রামার AVRStudio এর সাথে কাজ করতে চাইলে আমার বিকল্পগুলি কী কী?
    এমন একটি প্রোগ্রামার চয়ন করুন যা একটি AVRStudio- সমর্থিত প্রোটোকল ব্যবহার করে। এটি সাধারণ "AVR910" প্রোটোকল (অবনমিত) বা STK500 / AVRISP দ্বারা ব্যবহৃত প্রোটোকলের একটি কাস্টম বাস্তবায়ন হতে পারে। মনে রাখবেন যে এই প্রোগ্রামারগুলিতে তাদের মধ্যে একটি মাইক্রো কন্ট্রোলার প্রয়োজন, যা ক্যাচ -২২ পরিস্থিতি নিয়ে আসে। এটি যথাযথ ফার্মওয়্যারের সাথে কেনার সময় প্রোগ্রামারের অ্যাভিআর প্রাক-প্রোগ্রামিং করে বা বুটলোডারের সাথে AVR প্রাক-প্রোগ্রামযুক্ত করে সমাধান করা যেতে পারে।

  5. ঠিক আছে, আমি একটি বুটলোডার ব্যবহার করতে চাই। আমি সেখানে এটি প্রথম স্থানে কিভাবে পাব ?!
    একটি এভিআর-এ একটি বুটলোডার ব্যবহার করতে, আপনাকে প্রথমে বুটলোডার প্রোগ্রামিং করতে হবে you আপনার যদি কোনও বিদ্যমান প্রোগ্রামার না থাকে (এমনকি একটি সাধারণ বোবা ডংগল প্রাথমিক প্রোগ্রামিংয়ের জন্য যথেষ্ট হবে), আপনি বিকল্পভাবে একটি সাথে পূর্ব-প্রোগ্রামযুক্ত এভিআর কিনতে পারেন a বেশ কয়েকটি সরবরাহকারী থেকে বুটলোডার।
    আতেল বাটারফ্লাই ডেমো বোর্ডও তৈরি করে, যার MEGA169 এভিআর একটি এভিআর-স্টুডিও সামঞ্জস্যপূর্ণ বুটলোডার দিয়ে প্রি-লোডযুক্ত আসে।

  6. সাহায্য করুন! আইএসপি ব্যবহার করার সময় আমি ফিউজগুলিতে গণ্ডগোল করেছি এবং আমার এভিআর নক করে ফেলেছি! সবচেয়ে সাধারণ ভুলটি হ'ল ঘড়ির নির্বাচন ফিউজকে একটি অবৈধ সেটিংয়ে পরিবর্তন করা। AVR এর XTAL1 পিনে একটি বাহ্যিক ঘড়ি রাখার চেষ্টা করুন এবং দেখুন এটি সাহায্য করে কিনা।
    এটি ব্যর্থ হচ্ছে, যদি সম্ভব হয় তবে উচ্চ-ভোল্টেজের একটি পদ্ধতি ব্যবহার করুন। উচ্চ-ভোল্টেজ পদ্ধতিগুলি এভিআরকে প্রোগ্রামিংয়ের জন্য নিজস্ব ঘড়ি সরবরাহ করে কারণ এগুলি ক্লক উত্সের সাথে জড়িত অন্য কোনও ভুল কনফিগারেশনের সমাধান করবে fix

  7. আমি কীভাবে আমার প্রোগ্রামারটির সাথে ইন্টারফেস করব?
    আপনি আপনার প্রোগ্রামারটির সাথে ইন্টারফেস করার জন্য কোন সফ্টওয়্যার ব্যবহার করেন আপনি কী ধরণের প্রোগ্রামার ব্যবহার করছেন তার উপর নির্ভর করে।
    সাধারণ "বোবা" দোংগুলিতে তৃতীয় পক্ষের সফ্টওয়্যার যেমন পনিপ্রোগ বা এভিআরডুডের প্রয়োজন হয়। এগুলি কমান্ড লাইন বা জিইউআই সরঞ্জাম হতে পারে - ওয়েবে ঘুরে দেখুন এবং আপনার প্রয়োজন অনুসারে আপনি এটি জরিমানা করবেন।
    AVR910 প্রোটোকল ভিত্তিক প্রোগ্রামার এবং বুটলোডারগুলি AVRStudio এর মধ্যে ব্যবহার করা যেতে পারে। সরঞ্জাম মেনু থেকে, আপনার প্রোগ্রামারটির সাথে ইন্টারফেসের জন্য একটি জিইউআই স্ক্রিন খুলতে "AVRProg" বিকল্পটি নির্বাচন করুন। বিকল্প হিসাবে, তৃতীয় পক্ষের সরঞ্জাম যেমন এভিআরডুডও এভিআর 910 সামঞ্জস্যপূর্ণ।
    অফিসিয়াল সরঞ্জামগুলি দৃ AV়ভাবে এভিআর স্টুডিওতে একীভূত হয়, বিশেষত ডিবাগিং ভেরিয়েন্টগুলির ক্ষেত্রে (জেটিএইচ / ড্রাগন / ইত্যাদি)। AVRStudio সরঞ্জাম মেনু থেকে, "প্রোগ্রাম AVR ..." সাবমেনু নির্বাচন করুন এবং "সংযুক্ত করুন" আইটেমটি ক্লিক করুন। নতুন উইন্ডো থেকে আপনার সরঞ্জাম এবং এর সংযোগ ইন্টারফেসটি নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন।
    বোবা ডংগলস এবং এভিআর 910 প্রোগ্রামারদের ক্ষেত্রে, সরকারী সরঞ্জামগুলি তৃতীয় পক্ষের প্রোগ্রামিং সফ্টওয়্যার ব্যবহার করা যেতে পারে।

(গ) ডিন ক্যামেরা, ২০০৯. সমস্ত অধিকার সংরক্ষিত। পূর্ব স্পষ্ট অনুমতি ব্যতিরেকে AVRFreaks.net ব্যতীত অন্য কোনও ওয়েবসাইটে প্রজননের জন্য নয়।

অবশ্যই পূর্বের সুস্পষ্ট অনুমতি সহ পুনরুত্পাদন !


5

আমি আলোচনায় আরও একটি বিষয় যুক্ত করতে চাই।

চিপগুলির জন্য এসপিআই একটি খুব সাধারণ ইন্টারফেস। 3-তারের সংকেতটি এসপিআই এর মোড যেখানে আপনি চিপের নির্বাচনের পিনটি ব্যবহার করেন না।

আই 2 সি হ'ল ইন্টারফেসের মূল প্রতিযোগিতা কারণ এটি কেবল 2-তার ব্যবহার করে চিপ সংখ্যা নির্ধারণ করে না, এসপিআইতে ইন্টারফেসের জন্য আরও একটি তারের প্রয়োজন হয় তবে ধীর হয়।

পাঠদানের সময় আমি ইন্টারফেস সম্পর্কে শিক্ষণকে সবচেয়ে গুরুত্বপূর্ণ কাজ বিবেচনা করি।

যারা আমার তথ্যের উপর প্রসারিত করতে চান তাদের জন্য সম্প্রদায়ীয় উইকি উপলব্ধ।


2
আমি কখনও মাইক্রোকন্ট্রোলারে আই 2 সি স্থানীয় নেভিগেশন ফ্ল্যাশ প্রোগ্রামিং ইন্টারফেস হিসাবে ব্যবহার করার কথা শুনিনি, যদিও এটি মনে করার কোনও কারণ নেই যে কোনও বুটলোডার প্রবেশের পয়েন্ট হতে পারে না ...
ভাইসটাকু

@ ভিচ্যাটকু, আমি এটি একটি খুব সাধারণ ইন্টারফেস হিসাবে যুক্ত করছি।
কর্টুক

3

সামগ্রিক দৃষ্টিকোণ থেকে এই ইন্টারফেসগুলি কেবলমাত্র কোন প্রোগ্রামারগুলিতে এবং কোন মাইক্রো-কন্ট্রোলারগুলি তাদের সমর্থন করে তার মধ্যে পৃথক। যতক্ষণ না আপনি প্রোগ্রামার এবং মাইক্রো-কন্ট্রোলারের মধ্যে কোনও মিল আছে আমি চিন্তা করব না।

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

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


2

আপনি যেমন সিরিয়াল উল্লেখ করেছেন, স্পি (২ টি তার, 3 তার?), ইউএসবি, জেট্যাগ, এসডিডি ইত্যাদি ব্যবহার করা হয়।

হ্যাঁ ভাল এবং কনস আছে। উদাহরণস্বরূপ জেটাগ হল হার্ডওয়্যারটি অন্তর্নির্মিত সম্পর্কে আমি জানি সমস্ত ক্ষেত্রে, মূলত এবং প্রাথমিকভাবে প্রসেসরের ডিবাগিং ব্যতীত অন্য কোনও কিছুর জন্য ব্যবহৃত হয়, তবে তারা এটির জন্য এটি ব্যবহার করে। যদি জেট্যাগ উপলব্ধ থাকে তবে এটি সাধারণত সেই কারণে সেরা ইন্টারফেস, তবে ব্যতিক্রমগুলি রয়েছে। উদাহরণস্বরূপ, যদি পিনগুলি জেট্যাগের জন্য নিবেদিত না থাকে তবে আপনার কোডে একটি বাগ থাকতে পারে এবং / অথবা জেটিগের সাহায্যে চিপটি অ্যাক্সেস করা সম্ভব না হওয়ার জন্য ইচ্ছাকৃতভাবে সেই পিনগুলির মধ্যে একটি ব্যবহার করতে পারেন (যদি এটি ফ্ল্যাশটিতে সফ্টওয়্যার বুট করে যে those পিনগুলি পুনরূদ্ধার করে)। আরেকটি ব্যতিক্রম হ'ল যদি প্রসেসর কোরটি ফ্ল্যাশ-এ সফ্টওয়্যারটিতে একটি বাগ দ্বারা স্তব্ধ করা যায় এবং একটি হ্যাং কোর জেট্যাগের মাধ্যমে ডিবাজেযোগ্য না হয়। আমি এটিকে হার্ডওয়ার ডিজাইনের একটি ত্রুটি বলব, তবে সম্প্রতি এটি একটি বাণিজ্যিক অংশে মোকাবেলা করেছে।

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

আর্মের একটি জেটাগ রয়েছে যার মধ্যে স্বল্প নামক তারগুলি রয়েছে যা তারা প্রকাশ্যে প্রকাশ করতে চায় না। ওপেন সোর্স সরঞ্জামগুলি এটি প্রয়োগ করছে। এটি তাত্ত্বিকভাবে একটি সিরিয়াল জেট্যাগ, বিভিন্ন জেট্যাগ সংকেতগুলি অনেকগুলি তারের সমান্তরাল পরিবর্তে একরকম একত্রে ধারাবাহিকভাবে প্রেরণ করা হয়। অংশটির ভিতরে আমি ধরে নিয়েছি এটি আবার সমান্তরাল হয়ে যায় এবং সাধারণ জেট্যাগ যুক্তি সরবরাহ করে। এটির একটি আধা-গোপনীয়তা রাখতে এআরএমের অসুবিধা রয়েছে এবং এআরএম জেটগ ডিবাগারগুলি যেভাবেই ব্যবহার করার জন্য রাজকীয় ব্যথা হয়ে উঠছে। সুতরাং এটি অনেক কাজ। যদি / কখন ওপেনকডি এটি কাজ করে তবে তা অন্যরকম গল্প হতে পারে। আপনাকে পুনঃপ্রতীকৃত পিনগুলি এবং হ্যাং কোর দিয়ে কী ঘটেছিল তা নিয়ে আপনাকে এখনও চিন্তা করতে হবে।

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

হাজার হাজার ডলার ব্যয় করে জেট্যাগ সরঞ্জামগুলি ব্যবহার করা হত, এখন তারা ডান না, আপনি প্রায় $ 15 ডলারে একটি ftdi ব্রেকআউট বোর্ড পেতে পারেন এবং ওপেনকড দিয়ে পুনর্নির্মাণ করতে পারেন। $ 50 প্লাস বা বিয়োগের জন্য কিছু আপনি একটি ftdi ভিত্তিক ইউএসবি সমাধান পেতে পারেন যা ওপেনকডের সাহায্যে বাক্সের বাইরে কাজ করে। আপনি non 75- $ 80 এর মতো একটি অ-বাণিজ্যিক জে-লিঙ্ক পেতে পারেন। এবং তারপরে এমন বহু হাজার ডলার রয়েছে যা দ্রুত, নিশ্চিত তবে সাধারণ অর্থের পক্ষে মূল্যবান নয়। যখন আপনি প্রচুর নগদ উড়িয়ে দেওয়ার জন্য একটি বিশাল কর্পোরেশন হন এবং সমর্থনগুলির জন্য অর্থ দিতে চান তখন আপনি সেগুলি কিনুন। যখন আপনি এই দামগুলি প্রদান করেন আপনি নিজের পছন্দমতো পণ্যটি পেয়ে যান এবং আপনি তাত্ক্ষণিকভাবে প্রযুক্তি সহায়তা সংক্রান্ত প্রশ্নের উত্তর পেয়ে যান। যেমন ফ্রি লিনাক্স বনাম উইন্ডোজ বা আরএইচইএল, উদাহরণস্বরূপ, লিনাক্স সমর্থনটি বিনামূল্যে তবে আপনি যা পাবেন তা পাবেন। যাইহোক এটি জেটাগকে আরও আকর্ষণীয় করে তোলে,

আপনার ডিবাগিং এবং বিকাশ অস্ত্রাগার জেট্যাগ সরঞ্জামগুলি কখন এবং সাশ্রয়ী হওয়া উচিত। স্পার্কফুনের সিরিয়াল বোর্ডগুলিতে ftdi ভিত্তিক ইউএসবি রয়েছে এবং ftdi অংশগুলি বড় ব্যানারগুলিতে পুনরুদ্ধার করা যায়, আপনি এগুলি স্পি বা আই 2 সি বা পিডিআই বা জেট্যাগ বা অন্যান্য ইন্টারফেসের জন্য ব্যবহার করতে পারেন। আপনার আগ্রহী বাস / অংশের জন্য তৈরি করা বোর্ডগুলি আদর্শভাবে পাওয়া এবং এটির সাথে ফ্রি / ওপেন সোর্স সফ্টওয়্যার ব্যবহার করে। এছাড়াও এই সিরিয়াল বোর্ডগুলি ব্যবহার করে, আদর্শভাবে 3.3V সরবরাহ রয়েছে এবং 5 লিভিপ্যাড এবং আরডুইনো মিনিস ইত্যাদির জন্য প্রতিটি যা আপনি লিলিপ্যাড এবং আরডুইনো মিনিস ইত্যাদির জন্য ব্যবহার করেন যা কিছু ধরণের সিরিয়াল প্রোটোকল রয়েছে। সেই প্রোটোকলের উপর ভিত্তি করে আমার নিজের লোডারটি লেখার পক্ষে সহজ মনে হয়েছে, যেমন বুডলডার উত্সটি প্রকাশিত আরডুইনো / অ্যাভিআর লোকের মতো, এবং তারা সমর্থন করে এমন মানক হিসাবে বিবেচিত একটি সাবসেট। YMMV।

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

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