مقدمه ای بر میکروکنترلرها
در این مقاله به ویژگی های تعیین کننده این آی سی های بسیار محبوب نگاه می کنیم و سپس به بررسی طراحی داخلی خواهیم پرداخت. اگر بخواهم مهارتی را انتخاب کنم که با ارزش ترین افزوده به کارنامه هر مهندس باشد، بدون شک مهارت در طراحی برد مدار مبتنی بر میکروکنترلر خواهد بود.
میکروکنترلر نقش اساسی - حتی می توانم بگویم غالب - را در انقلاب تکنولوژیکی ایفا کرده است که زندگی مدرن را شکل داده است. میکروکنترلرها دستگاه های کوچک، همه کاره و ارزانی هستند که نه تنها توسط مهندسان برق با تجربه بلکه توسط علاقه مندان، دانشجویان و متخصصان رشته های دیگر می توانند با موفقیت پیاده سازی و برنامه ریزی شوند.
لیست برنامه های کاربردی میکروکنترلر به قدری طولانی است که من حتی در ارائه مثال تردید دارم. پوشیدنیهای ارزانقیمت، تجهیزات پزشکی، لوازم الکترونیکی مصرفی پیشرفته، دستگاههای صنعتی مقاوم، سیستمهای دفاعی پیشرفته - این اجزای سازگار، مقرون به صرفه و کاربرپسند، مورد استفاده برای تقریباً هر محصول الکترونیکی هستند.
این مولد شکل موج دلخواه یکی از بردهای مدار زیادی است که پیرامون یک میکروکنترلر 8 بیتی طراحی شده است. در این مقاله، ما به تعریف میکروکنترلر می پردازیم و در نظر می گیریم که در طراحی چه هدفی دارد.
میکروکنترلر چیست؟
میکروکنترلر یک دستگاه مدار مجتمع (IC) است که برای کنترل سایر بخشهای یک سیستم الکترونیکی، معمولاً از طریق یک واحد ریزپردازنده (MPU)، حافظه و برخی تجهیزات جانبی استفاده میشود. این دستگاهها برای برنامههای تعبیهشده بهینهسازی شدهاند که هم به عملکرد پردازشی و هم به تعامل چابک و پاسخگو با اجزای دیجیتال، آنالوگ یا الکترومکانیکی نیاز دارند.
رایج ترین راه برای اشاره به این دسته از مدارهای مجتمع "میکروکنترلر" است، اما مخفف "MCU" به جای "واحد میکروکنترلر" استفاده می شود. همچنین ممکن است گاهی اوقات "µC" را ببینید (که در آن حرف یونانی mu جایگزین "micro" می شود).
"Microcontroller" نامی است که به خوبی انتخاب شده است زیرا بر ویژگی های تعریف این دسته از محصولات تأکید دارد. پیشوند "micro" دلالت بر کوچک بودن و اصطلاح "کنترل کننده" در اینجا به معنای افزایش توانایی برای انجام عملکردهای کنترلی است. همانطور که در بالا گفته شد، این عملکرد نتیجه ترکیب یک پردازنده دیجیتال و حافظه دیجیتال با سخت افزار اضافی است که به طور خاص برای کمک به میکروکنترلر در تعامل با سایر اجزا طراحی شده است.
میکروکنترلرها در مقابل ریزپردازنده ها
گاهی اوقات افراد هنگام اشاره به یک میکروکنترلر از اصطلاح "ریز پردازنده" یا "MPU" استفاده می کنند، اما این دو دستگاه لزوما یکسان نیستند. ریزپردازنده ها و میکروکنترلرها هر دو به عنوان سیستم های کامپیوتری کوچک و بسیار یکپارچه عمل می کنند، اما ممکن است اهداف متفاوتی داشته باشند.
اصطلاح "پردازنده" برای شناسایی سیستمی استفاده می شود که از یک واحد پردازش مرکزی و (در صورت تمایل) مقداری حافظه تشکیل شده است. ریزپردازنده دستگاهی است که تمامی عملکردهای یک پردازنده را در یک مدار مجتمع پیاده سازی می کند. در مقایسه، میکروکنترلرها تأکید بیشتری بر ماژولهای سختافزاری اضافی دارند که به دستگاه اجازه میدهد تا به جای اجرای دستورالعملها و ذخیره دادهها، یک سیستم را کنترل کند. نمودار زیر این مفهوم را نشان می دهد.
به طور کلی، استفاده از واژههای «ریزپردازنده» و «ریزکنترلر» به جای یکدیگر مشکل بزرگی نیست، زمانی که به طور غیررسمی صحبت میکنیم یا زمانی که میخواهیم از تکرار یک کلمه اجتناب کنیم. با این حال، در زمینه یک بحث فنی، حفظ تمایز بین این دو مفهوم مهم است.
میکروکنترلرها در مقابل پردازشگرهای سیگنال دیجیتال (DSP)
پردازنده سیگنال دیجیتال (یا "DSP") ریزپردازنده ای است که برای کارهای محاسباتی سخت مانند فیلتر دیجیتال، تجزیه و تحلیل ریاضی سیگنال های بلادرنگ و فشرده سازی داده ها بهینه شده است. یک میکروکنترلر بسیار پیچیده ممکن است بتواند به عنوان جایگزینی برای یک پردازنده سیگنال دیجیتال عمل کند، اما اگر بخش قابل توجهی از مدار داخلی آن برای کنترل، نظارت و ارتباط با سیستم اطراف در نظر گرفته شود، همچنان یک میکروکنترلر محسوب می شود.
اجزای یک میکروکنترلر
یک میکروکنترلر از یک واحد پردازش مرکزی (CPU)، حافظه غیرفرار، حافظه فرار، تجهیزات جانبی و مدار پشتیبانی تشکیل شده است.
واحد پردازش مرکزی
CPU عملیات محاسباتی را انجام می دهد، جریان داده را مدیریت می کند و سیگنال های کنترلی را مطابق با توالی دستورالعمل های ایجاد شده توسط برنامه نویس تولید می کند. مدار بسیار پیچیده مورد نیاز برای عملکرد CPU برای طراح قابل مشاهده نیست. در واقع، به لطف محیط های توسعه یکپارچه و زبان های سطح بالا مانند C، نوشتن کد برای میکروکنترلرها اغلب یک کار نسبتاً ساده است.
حافظه
حافظه غیرفرار برای ذخیره برنامه میکروکنترلر استفاده میشود، به عنوان مثال، فهرست (اغلب بسیار طولانی) دستورالعملهای زبان ماشین که دقیقاً به CPU میگوید چه کاری انجام دهد. معمولاً به جای «حافظه غیرفرار» کلمه «فلش» (که به شکل خاصی از ذخیره سازی داده های غیرفرار اشاره دارد) را خواهید دید.
حافظه فرار (یعنی RAM) برای ذخیره سازی موقت داده ها استفاده می شود. این داده ها با قطع برق میکروکنترلر از بین می روند. ثباتهای داخلی نیز ذخیرهسازی موقت دادهها را فراهم میکنند، اما ما آنها را به عنوان یک بلوک عملکردی جداگانه در نظر نمیگیریم زیرا در CPU یکپارچه شدهاند.
لوازم جانبی
ما از کلمه "Pipheral" برای توصیف ماژول های سخت افزاری استفاده می کنیم که به میکروکنترلر کمک می کند تا با سیستم خارجی تعامل داشته باشد. موارد زیر دسته بندی های مختلف لوازم جانبی را مشخص کرده و نمونه هایی را ارائه می دهند.
مبدل های داده: مبدل آنالوگ به دیجیتال، مبدل دیجیتال به آنالوگ، ژنراتور ولتاژ مرجع
این نمودار داده های شتاب سنج سه محوره را نشان می دهد که با استفاده از ADC روی تراشه میکروکنترلر دیجیتالی انجام شده.
برخی کاربرد های میکرو کنترلر
تولید ساعت: نوسان ساز داخلی، مدار درایو کریستال، حلقه قفل فاز
زمان بندی: تایمر همه منظوره، ساعت بیدرنگ، شمارنده رویداد خارجی، پالس با مدولاسیون
پردازش سیگنال آنالوگ: تقویت کننده عملیاتی، مقایسه کننده آنالوگ
ورودی/خروجی: مدار ورودی و خروجی دیجیتال همه منظوره، رابط حافظه موازی
ارتباط سریال: UART، SPI، I2C، USB
این زیرسیستم حسگر را حول یک میکروکنترلر 16 بیتی طراحی شده است.
مدار پشتیبانی
میکروکنترلرها انواع بلوک های کاربردی را در خود جای داده اند که نمی توان آنها را به عنوان تجهیزات جانبی طبقه بندی کرد زیرا هدف اصلی آنها کنترل، نظارت یا برقراری ارتباط با اجزای خارجی نیست. با این حال، آنها بسیار مهم هستند - از عملکرد داخلی دستگاه پشتیبانی می کنند، پیاده سازی را ساده می کنند و روند توسعه را بهبود می بخشند.
مدار اشکال زدایی به طراح اجازه می دهد تا هنگام اجرای دستورالعمل ها، میکروکنترلر را به دقت کنترل کند. این یک روش مهم و گاهی ضروری برای ردیابی اشکالات و بهینه سازی عملکرد سیستم عامل است.
وقفه ها یک جنبه بسیار ارزشمند از عملکرد میکروکنترلر هستند. وقفهها توسط رویدادهای مبتنی بر سختافزار خارجی یا داخلی ایجاد میشوند و باعث میشوند که پردازنده بلافاصله با اجرای گروهی از دستورالعملها به این رویدادها پاسخ دهد.
برنامه های میکروکنترلر نوشته شده به زبان C در توابع سازماندهی می شوند. یک وقفه باعث می شود که اجرای برنامه به "بردار" یک روال سرویس وقفه (ISR) تبدیل شود و پس از اینکه ISR وظایف خود را کامل کرد، پردازنده به عملکردی که در زمان وقوع وقفه اجرا می شد باز می گردد.
یک ماژول تولید ساعت میتواند به عنوان یک دستگاه جانبی در نظر گرفته شود که قصد تولید سیگنالهایی را داشته باشد که در خارج از تراشه استفاده میشوند، اما در بسیاری از موارد هدف اصلی نوسانگر داخلی میکروکنترلر، ارائه سیگنال ساعت برای CPU و تجهیزات جانبی است.
اسیلاتورهای داخلی اغلب دقت کمی دارند، اما در کاربردهایی که میتوانند این دقت کم را تحمل کنند، روشی مناسب و مؤثر برای سادهسازی طراحی و صرفهجویی در فضای برد هستند. میکروکنترلرها می توانند انواع مختلفی از مدارهای منبع تغذیه را در خود جای دهند.
رگولاتورهای ولتاژ یکپارچه امکان تولید ولتاژهای تغذیه مورد نیاز روی تراشه را فراهم میکنند، ماژولهای مدیریت توان میتوانند برای کاهش قابل توجه مصرف یکپارچه ولتاژ در حالتهای غیرفعال، و ماژولهای ناظر میتوانند پردازنده را در حالت تنظیم مجدد پایدار قرار دهند، زمانی که ولتاژ تغذیه به اندازه کافی بالا نیست تا از عملکرد قابل اطمینان اطمینان حاصل شود.
در این مقاله، ما میکروکنترلر را به عنوان دستگاهی تعریف کردیم که از یک هسته پردازشگر کوچک و کارآمد همراه با حافظه برنامه، حافظه داده، تجهیزات جانبی و اشکال مختلف مدار پشتیبانی و رفع اشکال تشکیل شده است.
انواع میکروکنترلر:
در اینجا برخی از رایج ترین انواع میکروکنترلرها آورده شده است:
میکروکنترلرهای 8 بیتی: اینها ابتدایی ترین نوع میکروکنترلرها هستند که معمولاً در کاربردهای ساده مانند اسباب بازی، وسایل کوچک و کنترل از راه دور استفاده می شوند. آنها قدرت پردازش و ظرفیت حافظه محدودی دارند، اما استفاده از آنها آسان و مقرون به صرفه است.
میکروکنترلرهای 16 بیتی: اینها از میکروکنترلرهای 8 بیتی پیشرفتهتر هستند و میتوانند کارهای پیچیدهتری را انجام دهند. آنها معمولاً در کاربردهایی مانند دستگاه های پزشکی، سیستم های خودرو و سیستم های کنترل صنعتی استفاده می شوند.
میکروکنترلرهای 32 بیتی: این میکروکنترلرها قدرتمندترین و غنی ترین میکروکنترلرها هستند که قادر به مدیریت حجم زیادی از داده ها و انجام پردازش با سرعت بالا هستند. آنها در برنامه هایی مانند سیستم های بازی، دستگاه های چند رسانه ای و اتوماسیون صنعتی پیشرفته استفاده می شوند.
میکروکنترلرهای ARM: این میکروکنترلرها بر اساس معماری ARM ساخته شده اند و به طور گسترده در کاربردهای مختلفی از جمله دستگاه های تلفن همراه، سیستم های خودرو و سیستم های کنترل صنعتی استفاده می شوند.
میکروکنترلرهای PIC: این میکروکنترلرها توسط Microchip Technology تولید می شوند و معمولاً در طیف گسترده ای از کاربردها از جمله لوازم خانگی، سیستم های خودرو و تجهیزات پزشکی استفاده می شوند.
میکروکنترلرهای AVR: این میکروکنترلرها توسط شرکت Atmel ساخته می شوند و معمولاً در کاربردهایی مانند روباتیک، سیستم های کنترل صنعتی و لوازم الکترونیکی مصرفی استفاده می شوند.
میکروکنترلرهای مبتنی بر FPGA: این میکروکنترلرها از آرایههای دروازهای قابل برنامهریزی میدانی (FPGA) برای ارائه قابلیتهای پردازشی بسیار قابل تنظیم و انعطافپذیر استفاده میکنند. آنها معمولاً در برنامه هایی مانند پردازش سیگنال دیجیتال، پردازش ویدئو و شبکه های پرسرعت استفاده می شوند.
CPU: میکروکنترلر به عنوان یک دستگاه CPU شناخته می شود زیرا برای حمل و رمزگشایی داده ها قبل از انجام مؤثر وظیفه اختصاص داده شده استفاده می شود. تمام اجزای میکروکنترلر با استفاده از یک واحد پردازش مرکزی به یک سیستم خاص متصل می شوند. CPU می تواند دستورالعمل های بازیابی شده از حافظه قابل برنامه ریزی را رمزگشایی کند.
حافظه: تراشه حافظه یک میکروکنترلر مشابه یک ریزپردازنده عمل می کند زیرا تمام داده ها و همچنین برنامه ریزی را ذخیره می کند. میکروکنترلرها مقدار محدودی RAM/ROM/فلش مموری برای ذخیره کد منبع برنامه دارند.
پورت های ورودی و خروجی: به طور کلی، از این پورت ها برای اتصال یا راه اندازی وسایل مختلف مانند LED، LCD، چاپگر و غیره استفاده می شود.
پورت های سریال: پورت های سریال برای ارائه رابط های سریال بین میکروکنترلر و طیف وسیعی از تجهیزات جانبی اضافی مانند پورت موازی استفاده می شود.
تایمر: تایمرها و شمارنده ها در یک میکروکنترلر گنجانده شده اند. در یک میکروکنترلر، آنها برای مدیریت تمام فعالیت های زمان بندی و شمارش استفاده می شوند. عملکرد اساسی یک شمارنده شمارش پالس های خارجی است، در حالی که تایمرها وظایف ساعت، تولید پالس، مدولاسیون، اندازه گیری فرکانس و نوسانات را از جمله موارد دیگر انجام می دهند.
ADC (مبدل آنالوگ به دیجیتال): ADC مخفف عبارت Automated Data Collection (مبدل آنالوگ به دیجیتال) است. مبدل آنالوگ به دیجیتال به اختصار ADC است. وظیفه اصلی ADC تبدیل سیگنال آنالوگ به سیگنال دیجیتال است. سیگنال های ورودی مورد نیاز برای ADC آنالوگ هستند و سیگنال دیجیتال حاصل در انواع برنامه های دیجیتال مانند تجهیزات اندازه گیری استفاده می شود.
تفسیر کنترل: این کنترل کننده برای ارائه کنترل تاخیری به یک برنامه در حال اجرا، با تفسیر داخلی یا خارجی استفاده می شود.
بلوک با عملکردهای ویژه: یک بلوک عملکردی خاص در برخی از میکروکنترلرهای ویژه ساخته شده برای دستگاه های خاص مانند روبات ها و سیستم های فضایی گنجانده شده است. این بلوک دارای پورت های اضافی برای انجام کارهای خاص است.
در قسمت بعدی این مقاله «مقدمه ای بر میکروکنترلرها» به نحوه انتخاب میکروکنترلر مناسب خواهیم پرداخت. سپس به نحوه خواندن دیتاشیت میکروکنترلر می پردازیم.
نحوه انتخاب میکروکنترلر مناسب جهت استفاده
این مقاله سری مقدماتی بر میکروکنترلرها را با بحث در مورد مهمترین مواردی که باید در نظر داشته باشید، ادامه میدهد تا زمانی که میخواهید بهترین MCU را برای پروژه بعدی خود پیدا کنید.
در مقاله قبلی، ویژگیهای تعیینکننده میکروکنترلرها را معرفی کردم، جنبههای اساسی ساختار داخلی آنها را توضیح دادم و ایدههای کلی در مورد چگونگی استفاده از یک میکروکنترلر در انواع مختلف سیستمهای تعبیه شده ارائه کردم.
در مقالههای آینده، قصد دارم تکنیکها و فرآیندهای مرتبط با پیادهسازی میکروکنترلرها و توسعه سیستمافزار را بررسی کنم، اما قبل از اینکه بتوانید یک محصول مبتنی بر MCU طراحی کنید، باید بدانید که از کدام دستگاه استفاده خواهید کرد.
مهارت ها و تکنیک های موجود در طراحی سیستم های مبتنی بر میکروکنترلر مطمئناً مختص یک قطعه یا حتی یک سازنده نیست، اما اگر در حال حاضر تخصص گسترده ای در این زمینه ندارید، ایده خوبی است که بر روی یک دستگاه تمرکز کنید. یا یک خانواده دستگاه) و بعداً بعد از اینکه تجربه خوبی به دست آوردید، منشعب شوید.
انتخاب سازنده
لیست شرکت های نیمه هادی که میکروکنترلرها را می فروشند نسبتا طولانی است. با این حال، من به شدت توصیه می کنم که با سازنده ای شروع کنید که تاکید زیادی بر دسته میکروکنترلرهای خود دارد. این تضمین میکند که به تعداد زیادی از منابع طراحی مفید دسترسی خواهید داشت - یادداشتهای برنامه، کد نمونه، یک محیط توسعه یکپارچه با کیفیت بالا (IDE)، ابزارهای برنامهنویسی مناسب و غیره.
Simplicity Studio، یک IDE رایگان از Silicon Labs، یک محیط توسعه را در اختیار شما قرار می دهد که از میکروکنترلرهای مختلف متعددی پشتیبانی می کند.
همچنین، خرید MCU از تولیدکنندگانی که خط تولید گستردهتری دارند به شما این امکان را میدهند که انتخاب اجزای خود را با توجه به نیازهای هر برنامه آسانتر تنظیم کنید، زیرا میتوانید شماره قطعه جدیدی را انتخاب کنید بدون اینکه خود را در معرض تغییرات شدید ناشی از تغییر یکی از ویژگی ها قرار دهید.
پیدا کردن و خرید قطعه جدید زمانی که باید یک IDE جدید، پیکربندیهای رجیستر جدید، تکنیکهای کدنویسی جدید، ساختار اسناد جدید و غیره را بیاموزید، میتواند استرسزا و زمانبر باشد، و یک مهندس بایستی تا حد ممکن از بوجود آمدن این مشکلات اجتناب کند.
همانطور که در این راهنمای انتخاب از STMicro مشاهده می کنید، می توانید خود را به MCU های فروخته شده توسط یک سازنده محدود کنید و همچنان طیف گسترده ای از کاربردها را پوشش دهید.
اگر تجربه شما با توسعه میکروکنترلر هنوز نسبتاً محدود است، توصیه میکنم یکی از سازندگان زیر را انتخاب کنید: Texas Instruments، STMicroelectronics، Silicon Labs یا Microchip. Atmel ) قطعا باید در این لیست قرار گیرد، اما در سال 2016 توسط Microchip خریداری شد).
پارامترهای بحرانی
قدم بعدی این است که مهمترین و خاص ترین نیازهای خود را شناسایی کنید. بسیاری از انواع پردازش و عملکردهای جانبی تقریباً در هر میکروکنترلر مدرنی در دسترس خواهند بود - برای مثال، شما نیازی به جستجوی MCU ندارید که ارتباطات سریال اصلی، فرکانسهای ساعت بالای 10 مگاهرتز، مقادیر کافی فلش و رم را ارائه میدهد.
یک نوسان ساز داخلی، تایمرهای همه منظوره، یا یک ماژول رفع اشکال یکپارچه (اینها اغلب از رابط JTAG استفاده می کنند). بخشهای فرعی زیر نمونههایی از عملکرد «کمتر استاندارد» را ارائه میکنند که به شما کمک میکند تا فهرست میکروکنترلرهایی را که ممکن است برای یک پروژه خاص مناسب باشند، محدود کنید.
مبدل دیجیتال به آنالوگ
در پیدا کردن یک MCU که دارای مبدل آنالوگ به دیجیتال باشد، مشکلی نخواهید داشت، اما DAC ها به طور قابل توجهی کمتر رایج هستند. با این حال، آنها در برنامه های خاص بسیار مفید هستند و DAC یکپارچه مطمئناً بسیار راحت تر از DAC خارجی است.
من این سینوسی را با استفاده از DAC 12 بیتی ادغام شده در میکروکنترلر SAM4S از Atmel تولید کردم.
مبدل آنالوگ به دیجیتال
من به شما گفتم که ADC ها رایج هستند، و این درست است، اما باید اشاره کنم که بسیاری از ADC های میکروکنترلر در محدوده عملکرد پایین تا متوسط قرار دارند. اگر به یک ADC با وضوح غیرمعمول بالا یا نرخ نمونه برداری غیرمعمول بالا نیاز دارید، باید این را در اولویت فرآیند انتخاب خود قرار دهید.
سالها پیش یکی از مهندسین در همین وضعیت قرار گرفت و اگر درست به خاطر بیاورم، هیچ چیز نمیتوانست با C8051F060 از آزمایشگاههای سیلیکون رقابت کند (این دستگاه دارای دو ADC یکپارچه است که میتواند تبدیل 16 بیتی را با یک میلیون نمونه در ثانیه انجام دهد).
فرکانس ساعت
اگر میکروکنترلری میخواهید که با عملکرد DSP فشرده محاسباتی سازگارتر باشد، باید دستگاههایی را که از فرکانسهای پردازشگر بالا پشتیبانی میکنند، اولویت بندی کنید. Silicon Labs دارای دو خانواده 8 بیتی است که در 100 مگاهرتز کار می کنند و هر دو STMicroelectronics و Microchip دارای MCU های 32 بیتی با کارایی بالا هستند که در 120 مگاهرتز کار می کنند.
گذرگاه سریال عمومی (USB)
رابط USB شکل غالب ارتباط سریال است. من دریافتهام که این وسیله بسیار مؤثری برای انتقال دادهها بین یک دستگاه تعبیهشده و یک رایانه شخصی است و در زمینه لوازم الکترونیکی مصرفی ضروری است. اگر به دنبال روشی ساده و فشرده برای اتصال USB به سیستم خود هستید، توصیه میکنم روی میکروکنترلرهایی تمرکز کنید که دارای ماژول USB هستند. من از EFM8 Universal Bee از Silicon Labs استفاده کردهام و Microchip میکروکنترلرهای USB 8 بیتی، 16 بیتی و 32 بیتی را ارائه میدهد.
حس لمس خازنی
حسگر لمسی خازنی شکل فزاینده ای از رابط کاربری محبوب است. اگرچه حس لمس خازنی از نظر مفهومی ساده است، پیاده سازی واقعی می تواند نسبتاً پیچیده باشد و قطعاً داشتن یک میکروکنترلر که به طور خاص برای پشتیبانی از این نوع رابط در نظر گرفته شده است مفید است. تا آنجا که من می دانم هنوز برای میکروکنترلرها داشتن یک ابزار جانبی با حس لمس خازنی تا حدی غیرعادی است، بنابراین باید این ویژگی را در هنگام انتخاب قطعه اولویت بندی کنید.
تصویر بالا رابط لمسی خازنی در اطراف میکروکنترلر MSP430 از Texas Instruments طراحی شده است.
هزینه و اندازه بسته بندی
قرار دادن این پارامترها در بخش خاصی از فرآیند انتخاب بخش دشوار است، زیرا اهمیت آنها از یک برنامه به برنامه دیگر بسیار متفاوت است. در برخی موارد شما فضای زیادی برای برد دارید و می توانید به طور کامل اندازه بسته را نادیده بگیرید، و هزینه اغلب برای مهندسانی که در حال توسعه نمونه های اولیه یا سیستم هایی هستند که هرگز در مقادیر زیاد تولید نمی شوند، بی اهمیت است.
از سوی دیگر، محصولات الکترونیکی متعددی وجود دارند که باید بسیار کوچک، بسیار ارزان، یا بسیار کوچک و بسیار ارزان باشند. در این مواقع باید به طور مداوم از قیمت و/یا اندازه بسته آگاه باشید زیرا به تدریج قطعات را بر اساس پارامترهای حیاتی خود و سازندگان دلخواه خود فیلتر می کنید.
سخت افزار ارزیابی
همه از علاقمندان گرفته تا مهندسان حرفه ای می توانند از یک برد توسعه با دقت طراحی شده و مقرون به صرفه بهره مند شوند. این معمولاً بی دردسرترین و مطمئن ترین راه برای ارزیابی یک میکروکنترلر و آشنایی با رابط برنامه نویسی و جزئیات عملکردی آن است. هنگامی که جستجوی خود را به چند شماره قطعات امیدوارکننده محدود کردید، قبل از تصمیم گیری نهایی، یک تابلوی ارزیابی با قیمت مناسب را بررسی کنید.
نتیجه
امیدوارم که این راهنما به شما کمک کند تا در فرآیند گاهاً ترسناک انتخاب یک میکروکنترلر از میان هزاران میکروکنترلر موجود در بازار پیمایش کنید. بعد از اینکه دستگاهی را انتخاب کردید، نوبت به خواندن دیتاشیت می رسد و در قسمت بعدی نگاهی به این موضوع خواهیم داشت.
نحوه خواندن برگه اطلاعات(دیتاشیت) میکروکنترلر: مقدمه و مراحل اولیه
برگه های داده MCU گاهی اوقات فراوانی زیادی از حقایق، ارقام و مشخصات را ارائه می دهند. این راهنمای عملی و گام به گام به شما کمک می کند تا اطلاعات مورد نیاز خود را شناسایی و استخراج کنید.
برگه های داده MCU گاهی اوقات فراوانی زیادی از حقایق، ارقام و مشخصات را ارائه می دهند. این راهنمای عملی و گام به گام به شما کمک می کند تا اطلاعات مورد نیاز خود را شناسایی و استخراج کنید.
همانطور که میکروکنترلرها به طور فزاینده ای پیچیده و قدرتمند می شوند، برگه های داده آنها طولانی تر و پیچیده تر می شوند. این تعجب آور نیست و من مطمئناً نمی خواهم از تولید کنندگان به دلیل تلاش برای ارائه اطلاعات دقیق و جامع در مورد قطعات خود انتقاد کنم. با این حال، واقعیت این است که این دیتاشیتهای طولانی و گاهی ترسناک، مشکلاتی را ایجاد میکنند.
مشکلات دیتاشیت
اول از همه، آنها می توانند مانعی برای دانشجویان و مهندسانی باشند که تجربه توسعه میکروکنترلر را ندارند. برای برنامههای اساسی که به کد نمونه و توابع کتابخانه تکیه میکنند، ممکن است بدون نگاه کردن به دیتاشیت، کار را انجام دهید.
با این حال، در بیشتر موارد، مشورت و حتی مطالعه دیتاشیت یک میکروکنترلر ضروری است، و برای کسانی که هنوز با پیاده سازی MCU و توسعه سیستم عامل آشنا نیستند، نزدیک شدن به سندی که ده یا حتی صد برابر بیشتر دارد دشوار است. اطلاعاتی بیش از آنچه برای پروژه مورد نیاز است. این مقاله در درجه اول برای خوانندگانی نوشته شده است که در این دسته قرار می گیرند.
با این حال، حتی توسعه دهندگان باتجربه MCU ممکن است در هنگام انتقال به یک دستگاه پیچیده تر یا یک سازنده جدید، کمی "استرس خواندن دیتاشیت" را تجربه کنند. امیدوارم این مقاله برای افرادی که در این دسته دوم قرار می گیرند نیز تا حدودی مفید باشد.
برخی از مشخصات برگه مشخصات
من میخواهم به طور خلاصه دامنه مشکل را با شرح مستندات ضمیمه شده به چند میکروکنترلر از تولیدکنندگان که در مقاله خود در مورد انتخاب MCU توصیه کردم، بیان کنم.
MSP430FR5994 "MCU فوق العاده کم مصرف" از Texas Instruments
برگه اطلاعات: 171 صفحه
راهنمای کاربر: 1021 صفحه
اشتباه: 15 صفحه
میکروکنترلر USB 8 بیتی EFM8UB20F32G از Silicon Labs
برگه اطلاعات: 57 صفحه
راهنمای مرجع: 308 صفحه
اشتباه: 6 صفحه
میکروکنترلر 32 بیتی Arm Cortex-M0 STM32G0x0 "Value line" از STMicroelectronics
مشخصات محصول: 96 صفحه
راهنمای مرجع: 913 صفحه
راهنمای برنامه نویسی: 110 صفحه
اشتباه: 11 صفحه
مرحله 1: ماهیت اسناد را ارزیابی کنید
با وجود عنوان این مقاله، بسیاری از میکروکنترلرها "دیتاشیت" ندارند. انواع مختلفی از اطلاعات ممکن است بین چندین سند توزیع شود، و شما باید به طور خلاصه این اسناد را بررسی کنید تا مشخص کنید کدام یک دارای مشخصات، توضیحات و توصیه هایی هستند که واقعاً در طول مرحله خاصی از فرآیند توسعه به آن نیاز دارید.
به عنوان مثال، دستگاه های EFM8 از آزمایشگاه های سیلیکون دارای برگه داده و راهنمای مرجع هستند. دیتاشیت فهرستی از ویژگی ها، مشخصات الکتریکی، برخی از نمونه های اساسی پیاده سازی سخت افزاری، تعاریف پین و ابعاد ردپایی دارد.
نمودارهای اتصال مانند این در برگه داده EFM8 ارائه شده است.
بنابراین، هنگام بررسی دستگاه، بررسی چند مشخصات عملکرد (مصرف جریان، دقت نوسانگر، غیرخطی بودن ADC و غیره)، ایجاد مؤلفه CAD و طراحی شماتیک از دیتاشیت استفاده میکنم. از سوی دیگر، دفترچه راهنمای مرجع، اطلاعات دقیقی در مورد حافظه داخلی، وقفه ها، منابع ساعت، هسته پردازنده و تمامی تجهیزات جانبی دارد.
توضیحات دقیق عملکردهای جانبی (مانند این نمودار برای تراکنش I2C) فقط در کتابچه راهنمای مرجع EFM8 ارائه شده است، نه در برگه داده.
بخشهای جانبی دارای توضیحات ثبت هستند که تمام اطلاعاتی را که برای پیکربندی و پیادهسازی عملکرد دستگاه جانبی نیاز دارم، ارائه میکند. بنابراین، کتابچه راهنمای مرجع در درجه اول به توسعه سیستم عامل مربوط می شود، اگرچه مطمئناً حاوی اطلاعاتی است که باید در شماتیک گنجانده شود.
مرحله 2: هسته را نادیده بگیرید
اگرچه من سرسختانه بر ارزش زبان اسمبلی پافشاری میکنم، اما میدانم که این زبان دیگر یک رویکرد عملی برای توسعه سیستمافزار نیست، و شک ندارم که تقریباً هر فردی که این مقاله را میخواند، کد MCU را به زبان C/C++ مینویسد. این به این معنی است که کامپایلر به طور خودکار جزئیات متعدد مربوط به عملکرد داخلی میکروکنترلر شما را مدیریت می کند و در نتیجه می توانید با خیال راحت اکثریت قریب به اتفاق این جزئیات را نادیده بگیرید (حداقل در ابتدا).
به عنوان مثال، راهنمای کاربر MSP430FR59xx حدود 40 صفحه را به CPU اختصاص می دهد. در بسیاری از برنامه ها، همه این اطلاعات غیر ضروری خواهند بود.
خوشبختانه، این نوع اطلاعات (از راهنمای کاربر MSP430FR59xx) معمولاً فقط برای کامپایلر مهم است، نه برای شخصی که کد را می نویسد.
نکته پایانی در اینجا این است که به تمام جزئیات مربوط به پردازنده فکر کنید که نیازی نیست در هنگام نوشتن کد در C/C++ نگران آن باشید و سپس سعی کنید بخش های مربوطه از دیتاشیت را شناسایی کنید تا بتوانید از آنها رد شوید.
مرحله 3: مشخصات الکتریکی را بررسی نکنید
سازندگان نیمه هادی ها معمولاً کار بسیار خوبی برای مشخص کردن کامل دستگاه های خود انجام می دهند. با این حال، در کار مهندسی واقعی ام - از اولین روز کارم تا امروز - متوجه شده ام که تنها بخش کوچکی از مشخصات الکتریکی یک دستگاه به یک پروژه معین مربوط است.
بنابراین، از یک بخش برگه داده طولانی پر از جداول مشخصات، پاورقی ها، نمودارها و نمودارهای زمان نترسید. اگر چند مشخصات برای برنامه شما حیاتی هستند، حتماً آنها را بررسی کنید، اما همچنین به یاد داشته باشید که داده های تجربی جمع آوری شده با استفاده از سیستم شما تحت پارامترهای عملیاتی شما ارزشمندتر از اعداد موجود در دیتاشیت خواهند بود.
خلاصه
دیدهایم که مستندات میکروکنترلرهای مدرن میتواند تا حدی حجیم باشد که به یک مانع تبدیل شود، قطعاً برای کسانی که در این زمینه تازه کار هستند و شاید حتی برای مهندسان با تجربه. این مقاله سه پیشنهاد اول من را برای مقابله با اضافه بار اسناد ارائه می دهد.