بطور کلی پروگرم کردن یا انتقال کد برنامه به حافظه داخلی ، در میکروکنترلرهای ARM به دو روش کلی زیر انجام می شود.
1-استفاده از واسط JTAG
2-استفاده از نرم افزارهای مختص تراشه
-روش اول : استفاده از واسط JTAG
واسط JTAG(Joint Test Access Group) واسطی است برای پروگرم کردن حافظه
فلش , اشکال زدایی و اجرای گام به گام برنامه میکروکنترلرها ،
میکروپروسسورها و FPGA هایی که از استاندارد IEEE 1149/1 بهره می برند.این
روش در بسیاری از میکروکنترلرهای نسل گذشته مانند AVR و PIC ها نیز استفاده
می شود.در واقع هر میکروکنترلری که پایه های TDI ،TDO،TMS و TCK را در خود
دارند از این ارتباط پشتیبانی می کنند.در پروتکل JTAG دسترسی کامل به CPU و
حافظه فراهم می باشد و شما می توانید داده های پردازش شده و یا مقدار
متغیرها و رجیسترها را با اجرای خط به خط برنامه مشاهده نمایید.رابط JTAG
از پنج پایه اصلی برای ارتباط با سخت افزار استفاده می کند:
-(Test Clock Input)TCK:این پایه برای تولید پالس همزمانی استفاده می شود.
-(Test Data Input)TDI:از طریق این پایه داده از پروگرمر وارد میکرو می شود.
-(Test Data Output)TDO:این پایه داده را از میکروکنترلر به پروگرمر منتقل می کند.
-(Time Mode Select)TMS:از طریق این پایه حالت های مختلف تست انتخاب می شود.
-(Test Reset Input)TRST:این پایه به پایه ریست میکرو متصل می شود و قبل از شروع کار آن را ریست می کند.
پروگرمرهای مختلفی در بازار وجود دارد که از پروتکل JTAG برای پروگرام
کردن و عیب یابی تراشه های ARM استفاده می کنند.از مهمترین این پروگرامرها
می توان به J-Link محصول شرکت SEGGER اشاره کرد.این پروگرامر از طریق پورت
USB به کامپیوتر و از طرف دیکر با استفاده از یک کانکتور به میکروکنترلر یا
بورد مربوطه متصل می شود و سپس از طریق نرم افزار مربوطه یعنی J-FLASH ARM
(در صورت خرید پروگرمر J-LINK این نرم افزار نیز در بسته خریداری شده
موجود می باشد)می توانید میکرو را برنامه ریزی کنید.البته با معرفی J-LINK
به نرم افزار Keil از طریق اعمال تنظیمات لازم می توان از طریق این نرم
افزار نیز میکروکنترلر را پروگرام کرد. با استفاده از پروگرمر J-LINK
میتوان تقریبا همه میکروکنترلرهای ARM را از انواع شرکت های سازنده پروگرام
و عیب یابی کرد.البته باید متذکر شوم که شما خود نیز می توانید نسبت به
ساخت این پروگرمر اقدام کنید چرا که فایل های شماتیک ، PCB ودیگر فایل های
مورد نیاز این پروگرمر با جستجو در اینترنت قابل دسترسی است.
یکی دیگر از پروگرمرهایی که از واسط JTAG برای برنامه ریزی
میکروکنترلرهای ARM استفاده می کند و از ساختار نسبتا ساده ایی برخوردار
است ، پروگرمر Wiggler است.این پروگرمر از طریق پورت موازی کامپیوتر و نرم
افزار H-JTAG میکرو را برنامه ریزی و عیب یای می کند.در شکل زیر مدار این
پروگرمر را ملاحظه می کنید.
نرم افزار H-JTAG نیز به صورت رایگان از اینترنت قابل دریافت است.جهت
شبیه سازی و عیب یابی میکروکنترلر با استفاده از این پروگرمر باید تنظیمات
مربوطه را در کامپایلر اعمال نمود.
-روش دوم: استفاده از نرم افزارهای مخصوص تراشه
در این روش برنامه ریزی میکروکنترلر با استفاده از نرم افزاری که توسط
شرکت سازنده ی میکروکنترلر ارائه می شود ، صورت می گیرد.فرض کنید بخواهید
میکروکنترلرهای ARM شرکت ATMEL را از روشی به غیر از JTAG برنامه ریزی
کنید.نرم افزارهایی که شرکت ATMEL برای این منظور تولید کرده است ، SAM-BA و
AT91-ISP است که از طریق پورت های Serial ، USB و یا CAN صورت میگیرد.برای
استفاده از این روش نیاز به سخت افزار جانبی خاصی نیست .مثلا برنامه ریزی
از طریق پورت USB تنها از طریق یک کابل USB صورت می گیرد. بدین صورت که با
یک کردن پایه Erase باید حافظه برنامه قبلی را پاک نمود و سپس پس از خاموش
کردن و رها کردن پایه ERASE و روشن نمودن برد(قطع و وصل تغذیه) ، میکرو
وارد مد برنامه ریزی می شود و از طریق برنامه SAM-BA می توان میکروکنترلر
را برنامه ریزی نمود.
برای میکروکنترلرهای LPC ساخت شرکت NXP نیز برنامه ریزی از طریق نرم
افزار Flash Magic و از طریق پورت سریال و یا استفاده از روش BOOT LOADER
ثانویه از طریق پورت USB صورت می گیرد.با استفاده از نرم افزار Flash Magic
از طریق اتصال پین هایRXD0,TXD0,EINT0و RESET به پورت COM کامپیوتر می
توان میکرو کنترلر را برنامه ریزی نمود.ویا اینکه برای برنامه ریزی از طریق
USB باید برنامه BOOT LOADER را از طریق یکی از روش های دیگر بر روی میکرو
بارگذاری نمود و پس از آن زمانی که میکرو از طریق پورت USB به کامپیوتر
متصل گردد، به عنوان یک حافظه ذخیره سازی ، شبیه یک درایو در قسمت My
Computer نمایان می شود و پروگرم کردن میکرو به سادگی از طریق کپی کردن
فایل Bin. برنامه به داخل درایو صورت می گیرد.
در میکروکنترلرهای STM32 نیز وضعیت مشابه دیگر میکروکنترلرها است.در این
میکرو کنترلرها نیز علاوه بر برنامه ریزی از طریق واسط JTAG می توان
میکروکنترلر را از طریق پورت سریال و نرم افزار st microcontroller flash
loader صورت می گیرد.
مقاومت ها یکی از عناصر پایه مداری در علم الکترونیک هستند و نقش اصلی
آنها مقاومت در برابر عبور جریان است. مقدار مقاومت را با واحد اهم و با
نشانه ( Ω ) نشان می دهند. مقدار مقاومت در حقیقت معکوس رسانایی ( G ) است (
G = 1/R ) . در یک مقاومت ایده آل مقدار مقاومت همواره ثابت است ، اما در
دنیای واقعی مقدار مقاومت ها با توجه به دما و میزان جریان عبوری ممکن است
دچار تغییراتی شود ، همین امر باعث می شود تا پارامتری به نام توان برای
مقاومت مطرح شود که با واحد وات ( W ) اندازه گیری می شود. در حقیقت توان
نامی ( nominal power rating ) باید همواره بیش از حداکثر توان مورد نیاز
مقاومت تعیین شود ، که توان حداکثر را با استفاده از رابطه P max = R * I
max^2 محاسبه نمود.
طبقه بندی انواع مقاومت :
مقاومت ها را می توان بر اساس کاربرد و نوع ماده تشکیل دهنده طبقه بندی نمود ، در ابتدا مقاومت ها به دو دسته کلی مقاومت های ثابت ( Fixed Resistors ) و مقاومت های متغیر ( Variable Resistors ) تقسیم بندی می شوند.
مقاومت های ثابت Fixed Resistors :
مقاومت های فیلم کربن :
مقاومت های فیلم کربن در حقیقت پر استفاده
ترین و ارزانترین نوع مقاومت است که کمتر کسی است که تا کنون این نوع
مقاومت را ندیده باشد. این مقاومت ها اغلب دارای تلرانس ±۵ % هستند و
معمولا در توان های ۱/۸ وات ، ۱/۴ وات و ۱/۲ وات در بازار یافت می شوند.
این مقاومت ها همانطور که در تصویر زیر مشخص است ، معمولا با پیچیده شدن
یک لایه نازک کربنی دارای ناخالصی ( فیلم کربن ) به دور یک هسته سرامیکی
ساخته می شوند و دو سر مقاومت به ۲ قطعه رسانا کلاهی شکل دارای پایه متصل
می گردد که پایه های قطعه را تشکیل می دهد تا بتوان قطعه را بر روی برد
لحیم نمود. در نهایت پوششی عایق روی مقاومت را می پوشاند و سپس کد های رنگی
بر روی آن درج می شود.
مقاومت های فیلم فلز :
مقاومت های فیلم فلز ( Metal Film
Resistor ) از نظر شکل ساختمان مانند مقاومت های فیلم کربن هستند با این
تفاوت که به جای فیلم کربن از فیلم فلز استفاده می شود. این نوع مقاومت ها
زمانی مورد استفاده قرار می گیرند که دقت بیشتری نیاز داشته باشیم. نیکل
کروم یا نیکروم ( Ni-Cr ) معمولا به عنوان ماده اصلی در ساخت فیلم فلز (
Metal Film ) مورد استفاده قرار می گیرد. مقاومت های فیلم فلز با دقت های
۲% ، ۱% و ۰٫۵ % در بازار موجود هستند. این مقاومت ها دارای نویز کمی هستند
و تاثیر دما بر روی آنها کم است و برای مدت زیادی با دقت بالا قابل
استفاده هستند.
مقاومت های سیمی :
مقاومت های Wire Wound یا مقاومت های سیمی
یکی از انواع مقاومت های الکترونیکی هستند که با استفاده از سیم های فلزی
دارای مقاومت ساخته می شوند. به علت اینکه مقدار مقاومت این مقاومت های به
طول سیم پیچیده شده بستگی دارد ، با این روش می توان مقاومت هایی با مقادیر
دقیق ساخت.
مقاومت های وات بالا ( High-Wattage ) را
می توان با پیچیدن سیم های ضخیم ساخت . این نوع از مقاومت ها را نمی توان
در مدار های فرکانس بالا استفاده نمود زیرا در صورت استفاده ، در فرکانس
های بالا سیم پیچیده شده خاصیت سلفی پیدا خواهد نمود و باعث ایجاد اختلال
در عملکرد مدار خواهد شد.
مقاومت آجری یا سرامیکی :
مقاومت آجری نیز یکی از انواع مقاومت های
سیمی است که مقاومت سیمی در داخل یک کاور سرامیکی قرار می گیرد و زیر این
کاور های سرامیکی با نوع خاصی از سیمان پر می شود. این مقاومت ها از ۱ وات
تا دهها وات در بازار موجود هستند. نکته ی حائز اهمیت در مورد این مقاومت
ها اینست که این نوع مقاومت در هنگام کار می تواند تا حد زیادی گرم و یا
داغ شود و در هنگام طراحی مدار باید محل مناسبی برای نصب این مقاومت ها در
نظر گرفت.
مقاومت آرایه ای یا شبکه ای :
مقاومت آرایه ای که در سمت راست شکل
زیر نمایش داده شده است در حقیقت شامل مجموعه ای از مقااومت ها است که در
داخل یک پکیج قرار گرفته اند. علت این کار کاهش مصرف فضای مورد نیاز است.
در قسمت سمت چپ شکل زیر ساختمان داخلی مقاومت آرایه ای به خوبی مشخص گردیده
است. معمولا در اکثر مقاومت های آرایه ای پایه اول ( در شکل زیر با علامت
دایره مشخص شده است ) ، پایه مشترک تمام مقاومت ها است ، از این نوع مقاومت
ها می توان به سادگی برای پول آپ کردن یا پوش داون کردن ورودی و خروجی های
منطقی بهره جست. همچنین در مدار هایی که نیاز به محدود کردن جریان تعدادی
LED دارید می توانید از این مقاومت ها استفاده نمایید.
در اغلب مقاومت های آرایه ای یا شبکه ای ،
اولین پایه ، پایه مشترک و سایر پایه ها هر یک یک مقاومت است اما نوع
دیگری از این مقاومت ها تحت عنوان مقاومت های آرایه ای ۴S وجود دارد که هر ۲
پایه تشکیل یک مقاومت مجزا را می دهند و بر خلاف نوع معرفی شده دارای پایه
مشترک نیستند.
مقاومت های متغیر Variable Resistors:
پتانسیومتر ( Potentiometer ) :
پتانسیومتر نوعی مقاومت است که بر خلاف
مقاومت های رایج ، دارای ۳ پایه است.ساختمان یک پتانسیومتر به این صورت است
که دو ترمینال در طرفین وجود دارد که در شکل بالا A و B نام گذاری شده اند
، بین این دو ترمینال یک المان دارای مقاومت مشخص وجود دارد که مقاومت آن
برابر با مقدار درج شده روی پتانسیومتر است و مادامی که پتانسیومتر سالم
باشد این مقدار ثابت خواهد ماند ( زمانی که شما یک پتانسیومتر ۱۰ کیلو
خریداری می نمایید ، در حقیقت مقاومت بین این دو پایه تقریبا ۱۰ کیلو اهم
خواهد بود ) پایه سوم که بین دو پایه دیگر قرار دارد و در شکل بالا W
نامگذاری شده است ، دارای یک کنتاکت لغزنده است که بر روی المان مقاومتی که
ترمینال های A و B را به هم وصل کرده است می لغزد. با تغییر مکان کنتاکت
متحرک ، مقاومت پایه W نسبت به پایه A و پایه B تغییر می نماید.
پتانسیومتر ها از نظر کاربرد دارای انواع
مختلفی هستند. نوعی از پتانسیومتر ها برای استفاده کاربر در مدار قرار داده
می شوند مانند پتانسیومتر ولوم رادیو ( قطعه ای که در ایران به نام ولوم
می شناسند ) و برخی برای استفاده سازندگان و تعمیرکاران است مانند برخی
پتانسیومتر هایی که بر روی برد مدار چاپی و در داخل جعبه قرار گرفته است و
یکبار توسط سازنده تنظیم می شود و از آن پس نباید مقدار آن تغییر کند.
اغلب پتانسیومتر ها دارای زاویه چرخش
تقریبی ۳۰۰ درجه هستند اما نوعی از پتانسیومتر ها که برای دقت بیشتر به کار
می روند مولتی ترن نامیده می شوند. مولتی ترن ها دارای زاویه چرخشی بیش از
یک دور هستند که با توجه به مدل مولتی ترن بین ۲ دور الی ده ها دور متغیر
است.
پتانسیومتر ها از نظر شکل نیز انواع
مختلفی مانند پتانسیومتر ایستاده ، خوابیده ، تریمر دارند ، اما وجه تشابه
همگی نحوه ی عملکرد آنهاست. برخی از پتانسیومتر ها نیز ممکن است دوبل باشند
به این معنی که به جای ۳ پایه دارای ۶ پایه باشند . در اینگونه پتانسیومتر
ها در حقیقت دو پتانسیومتر مجزا با یک محور مشترک در یک پکیج قرار گرفته
اند و دلیل استفاده از این پتانسیومتر ها ، تغییر همزمان دو پتانسیومتر است
مانند کم و زیاد کردن صدا در سیستم های استریو ( دو کانال ) .
مقاومت های وابسته :
مقاومت های وابسته ، نوعی مقاومت متغیر
هستند که همانند مقاومت های معمولی دارای ۲ پایه هستند ، اما مقاومت آنها
معمولا با توجه به یکی از پارامتر های محیطی مانند دما ، رطوبت ، نور ،
مغناطیس ، ولتاژ و … تغییر می کند.
مقاومت وابسته به نور ( Light Dependent Resistor ) یا LDR :
این مقاومت ها دارای ۲ صفحه فلزی جدا از
هم هستند که بین این دو صفحه رسانا ، یک خط نازک از جنس کادمیوم سولفید
وجود دارد ، با تابش نور به این ماده ، مقاومت بین دو صفحه رسانا کم می شود
به گونه ای که در فضا های تاریک مقاومت این قطعه معمولا چند صد برابر
مقاومت آن در فضا های پر نور است. از این مقاومت در ساخت فوتوسل ها یا به
عنوان سنسور نور در برخی دستگاه ها استفاده می شود.
وریستور یا مقاومت وابسته به ولتاژ ( Voltage Dependent Resistor ) یا VDR:
وریستور یک نوع مقاومت حساس به ولتاژ است.
ولتاژ و مقدار مقاومت در وریستور با هم رابطه ی عکس دارند بدین صورت که با
افزایش ولتاژ دو سر قطعه ، مقاومت آن کاهش می یابد البته رفتار این قطعه
خطی نیست و در قسمت هایی از نمودار در حالی که ولتاژ افزایش پیدا می کند ،
جریان قابت باقی خواهد ماند. وریستور فاقد پلاریته است و می توان از آن در
مدار های AC نیز استفاده نمود. از وریستور برای محافظت از مدار در برابر
اور ولتاژ های ( Over Voltage ) زودگذر ناخواسته استفاده می شود. یکی از
اور ولتاژ های زود گذر ، تخلیه الکتریسیته ی ساکن است ، وریستور می تواند
به خوبی جریان های گذرا ( Transient ) را از خود عبور دهد بی آن که خود
دچار آسیبی شود. وریستور ها دارای ولتاژ های فعال سازی ( Triger ) متفاوت
هستند و انتخاب وریستور با ولتاژ تریگر مناسب ، می تواند مدار ما را در
برابر برخی ولتاژ های ناخواسته محافظت نماید. از وریستور در برق قدرت و پست
های نیروگاهی نیز برای حفاظت شبکه استفاده می کنند.
مقاومت وابسته به حرارت یا ترمیستور Thermistor :
ترمیستور نیز نوعی مقاومت وابسته است که
مقدار مقاومت آن با توجه به تغییرات دما ، تغییر می کند. ترمیستور ها دارای
دو نوع PTC و NTC هستند.
PTC به معنی ضریب دمای مثبت ( Positive
Temperature Coefficient ) می باشد و به معنی اینست که مقاومت این قطعه با
افزایش دما ، افزایش می یابد.
NTC بر خلاف PTC دارای ضریب دمای منفی (
Negative Temperature Coefficient ) می باشد ، در این المان با افزایش دما
، مقاومت NTC کاهش می یابد.
در جدول زیر رابطه مقاومت بر حسب دما را در NTC و PTC به صورت تقریبی مشاهده می نمایید.