بردهای آردوینو از سه قسمت اصلی تشکیل شده اند
1-میکروکنترلر
2-تغذیه
3- پل USB
در این آموزش برای بررسی بیشتر هر یک از این قسمت ها ،سخت افزار داخلی برد Arduino UNO را به عنوان نمونه بررسی می کنیم.
1-سختافزار جانبی میکروکنترلر ATMEGA328 در برد Arduino UNO
در کنار میکروکنترلر ATMEGA328 ادوات جانبی دیگری نیز در نظر گرفته شده اند که نقشه شماتیک آنها در شکل زیر نشان داده شده است.
هدرهای دیجیتال IOL و IOH (دیجیتال)
پایه های که با نام دیجیتال روی برد دسته بندی شده اند.دارای دو هدر دیجیتال IOL (8 پایه) وIOH(10پایه)میباشد. هدر دیجیتال IOL دارای 8 پایه بوده و به پایه های PD0 تا PD7 از میکروکنترلر ATMEGA328 متصل میباشد.پایه های این هدر روی برد از صفر تا 7 شماره گذاری شده اند. پایه های RX و TX میکروکنترلر که به پل USB به سریال متصل شده اند در پایه های صفر و یک این هدر در دسترس میباشد.
هدر دیجیتال IOH دارای 10 پایه میباشد.این پایه ها روی برد، دارای شماره 8 تا 13 میباشند.سایر پایه های موجود در این هدر به ترتیب عبارتند از GND، AREF، SDA، SCL
هدر آنالوگ
این هدر که روی برد با نام Analog In مشخص شده است دارای 6 پایه میباشدکه به پایه های PC0 تا PC5 میکروکنترلر متصل شده است.از این پایه ها میتوان به عنوان ورودی آنالوگ استفاده نمود.
رزوناتور سرامیکی16MHZ
این رزوناتور، به عنوان منبع تولید پالس ساعت با فرکانس 16 مگا هرتز به پایه های XTAL1 و XTAL2 میکروکنترلر متصل میشود.
پایه RESET
پایه RESET با یک مقاومت 10 کیلو اهم به تغذیه مثبت متصل شده است (PULL – UP). استفاده از این مقاومت PULL – UP سبب جلوگیری از ریست شدن ناخواسته میکروکنترلر در محیطهای نویزی میشود. پایه RESET دارای مقاومت PULL-UP داخلی میباشد. اما با توجه به توصیه های شرکت سازنده در برگه های اطلاعاتی، “در صورتی که محیط مورد استفاده از میکروکنترلرهای AVR نویزی باشد، مقدار مقاومت PULL-UP داخلی موجود در پایه Reset ممکن است کافی نباشد و سبب بروز ریستهای ناخواسته در میکروکنترلر شود”.
منابع دیگر تولید ریست کلید فشاری تعبیه شده در برد، یا فرمان رسیده از طریق پل USB میباشد.همچنین در برگه های اطلاعاتی فوق توصیه میشود در صورت عدم استفاده از ولتاژ بالا در برنامه ریزی میکروکنترلر، برای محافظت در برابر تخلیه الکتریسیته ساکن یا [1]ESD از یک دیود در مسیر Reset به Vcc استفاده شود. چون امکان استفاده از برنامه ریزی با ولتاژ بالا برای میکروکنترلر در نظر گرفته شده است، بنابراین این دیود به صورت داخلی در میکروکنترلر تعبیه نشده است و در صورت نیاز میتوان آن را اضافه نمود. در برد Arduino UNO، دیود D2 که بین پایه Reset و+5V قرار گرفته است، این نقش را ایفا میکند.
خازنهای C4 و C6
خازنهای 100 نانو فارادی C4 و C6 که در پایه های AREF و AVCC در نظر گرفته شده اند برای حذف نویزهای موجود در تغذیه میباشند. امپدانس خازن با افزایش فرکانس کاهش مییابد. بنابراین وجود این خازنها سبب میشود تا در صورت اعمال نویزهای با فرکانس بالا روی این پایه ها، این نویزها از طریق این خازنها به زمین هدایت شوند.
پایه 13
پایه 13به پایه SCK از میکروکنترلر متصل شده است. این پایه از طریق یک بافر راه انداز به یک LED متصل شده است.این پایه با عنوان پایه Built in LED نیز شناخته می شود.
هدر برنامه ریزی سریال داخل تراشه [3]ICSP
با استفاده از این هدر میتوان میکروکنترلر را با یک برنامه ریز خارجی دیگر، برنامه ریزی نمود. این هدر به واسط ISP (که از پایه های SPI استفاده میکند) متصل میشود.معمولاً با توجه به وجود بخش Boot Loader در میکروکنترلرهای موجود در بردهای آردوینو و برنامه ریزی این میکروکنترلرها از طریق پل USB به UART (که در واقع یک مزیت برای این نوع از بردها محسوب میشود )، نیازی به استفاده از برنامه ریز خارجی نمیباشد.
از این هدر معمولاً در اولین بار، برای برنامه ریزی بخش Boot Loader حافظه در هنگام ساخت بردهای آردوینو استفاده میشود.
پل USB به UART
نقش پل USB به UART تبدیل سیگنالهای واسط USB به واسط UART میباشد.میکروکنترلر ATMEGA328 موجود در برد Arduino UNO فاقد واسط USB میباشد، بنابراین برای برقراری ارتباط با واسط USB از یک میکروکنترلر ATMEGA16U2 جهت برقراری این ارتباط استفاده میشود. با استفاده از برنامه خاصی که در داخل این میکروکنترلر برنامه ریزی شده است، این میکروکنترلر با میکروکنترلر اصلی (ATMEGA328) از طریق واسط UART و با USB کامپیوتر، از طریق واسط USB ارتباط برقرار میکند.اين بخش از لحاظ طراحی الکترونیکی در واقع یک بخش میکروکنترلری میباشد. میکروکنترلر ATMEGA16U2 نیز به نوبه خود دارای هدر ICSP، کریستال خارجی و خازن فیلتر ولتاژ تغذیه میباشد. شكل زیر مدار مربوط به پل USB به UARTرا نشان مي دهد.
در پایه های D+ و D- خطوط USB، دو مقاومت به صورت سری قرار گرفته اند. این مقاومتها، برای ایجاد امپدانس پایانی صحیح در سیگنالهای USB میباشند.
Z1 و Z2 مقاومتهای وابسته به ولتاژ (VDR) یا وریستور میباشند. نقش این وریستورها محافظت از خطوط USB، در برابر تغییرات و نوسانات ESD میباشد.
خازن 100 نانو فارادی C5 که با پایه RESET میکروکنترلر ATMEGA328 سری شده است، این امکان را به ATMEGA16U2 میدهد که در صورت نیاز یک پالس ریست به ATMEGA328 ارسال نماید.
تغذیه
برای اعمال تغذیه به برد Arduino UNO دو روش وجود دارد. استفاده از كابل USB و منبع تغذیه DC خارجی. حال میتوان به این سوال پاسخ داد که در صورت اتصال هر دو منبع ورودی توان، کدام یک، نقش تغذیه برد را به عهده خواهند داشت. شکل 2-10 مدار تغذیه برد آردوینو را نشان میدهد.
رگولاتور 5 ولت موجود در برد، آی سی رگولاتور NCP1117ST50T3G و پایه Vin از این رگولاتور ولتاژ، از طریق فیش DC به كاتد دیود M7 متصل شده است.( نسخه SMD دیود مشهور 1N4007) نقش این دیود، محافظت در برابر پلاریته معکوس میباشد.
خروجی 5 ولت رگولاتور به شبکه 5 ولت کل برد و ورودی رگولاتور 3/3 ولت متصل میشود (LP2985-33DBVR). برای دسترسی به ولتاژ 5 ولت میتوان از هدر تغذیه و پایه 5 ولت آن استفاده نمود.
منبع دیگر ولتاژ 5 ولت، پایه USBVCC میباشد که به پایه Drain یک ماسفت کانال P که Source آن به 5 ولت شبکه وصل شده است، متصل میباشد. پایه گیت این ماسفت، خروجی مقایسه کنندة LMV358 است. مقایسه در این تقویت کنندة عملیاتی، بین ولتاژ 3/3 ولت و Vin/2 انجام میشود.در صورتی که Vin/2 بزرگتر از 3/3 ولت باشد، خروجی مقایسه کننده به اشباع مثبت رفته و ماسفت خاموش میشود بنابراین تغذیه اصلی مدار، از فیش ورودی خواهد بود. در صورتی که فیش ولتاژ DC ورودی متصل نشود، Vin/2 کمتر از 3/3 ولت خواهد بود و خروجی مقایسه کننده به اشباع منفی رفته و ماسفت کانال Pروشن میشود.بنابراین در این حالت تغذیه مدار، از طریق USBVCC تامین خواهد شد.
شکل : در صورتی که فیش DC ورودی قطع باشد ولتاژ vin/2 در پایهمثبت تقویت کنندهعملیاتی کمتر از 3/3 ولت شده و سوییچ (ماسفت) وصل خواهد شد . |
شکل :در صورتیکه فیش DC ورودی متصل شدهباشد ولتاژ vin/2 در پایهمثبت تقویت کنندة عملیاتی بالاتر از 3/3 ولت شده و سوییچ (ماسفت) قطع خواهد شد. |
رگولاتورهای ولتاژ 3/3 ولت و 5 ولت موجود در برد آردوینو، از نوع رگولاتورهای LDO[1] میباشند در این رگولاتورها در صورتی که ولتاژ ورودی خیلی نزدیک به ولتاژ خروجی باشد، همچنان فرآیند تثبیت ولتاژ خروجی وجود خواهد داشت. این فرآیند به عنوان یک پیشرفت در این نوع از رگولاتورها در مقایسه با رگولاتورهای قدیمینظیر 7805 میباشد.
هنگامیکه از پورت USB به عنوان منبع توان ورودی استفاده میشود، برای محافظت از این پورت، یک فیوز PTC(Positive Temperature Coefficient) به صورت سری با پایه USBVCC قرار داده شده است. این فیوز (MF-MSMF050-2) از اضافه جریان بیش از 500 میلی آمپر جلوگیری میکند. هنگامیکه جریان کشیده شده از پایه USBVCC بیش از این مقدار شود، مقاومت PTC افزایش مییابد و اجازة عبور جریان اضافی را نمیدهد. پس از کاهش جریان تا حد مجاز، مقدار مقاومت PTC مجدداً کاهش یافته و مسير جريان مجددا برقرار مي گردد.
[1] Low-Dropout
1-In-Circuit System Programming