Hesam Fard

Hesam Fard

www.hesamfard.ir
Hesam Fard

Hesam Fard

www.hesamfard.ir

شروع کار با ARM

امروزه شرکت های مختلفی از جمله ATMEL, ST , SAMSUNG , TI , NXP , INTEL , MOTOROLA , SHARP و…میکروکنترلر و میکروپروسسور ARM تولید می کنند. فاکتورهای زیادی در انتخاب یک میکرو کنترلر جدید می تواند مهم باشد که از مهمترین این فاکتورها ، می توان ابتدا به ابزارها و نرم افزارهای توسعه ی موجود و دوم به کارایی میکروکنترلر اشاره کرد. نرم افزارهای گوناگونی ازجمله Keil ، IAR ،Eclipse ، coocox و … برای کار با میکروکنترلرهای ARM استفاده می شوند. (نرم افزار های keil و IAR تجاری هستند و برای استفاده به لایسنس نیاز دارند.).

 
 نرم افزار KEIL متعلق به شرکت ARM است و تمرکز این نرم افزار بیشتر بر روی این میکروکنترلرهاست به همین دلیل شاید استفاده از این نرم افزار انتخاب مناسب تری باشد. اما هدف ما در این نوشته ، بررسی دلیل دوم ، یعنی کارایی یا PERFORMANCE میکروکنترلر است. برای کار با یک میکروکنترلر جدید ابتدا لازم است تا یک آشنایی کلی با امکانات و توانایی های این قطعه داشته باشیم چرا که یادگیری یک میکروکنترلر جدید نیازمند صرف زمان و هزینه است پس اگر در ابتدا انتخاب مناسبی نداشته باشیم ، ممکن است بعدها با مشکل روبه رو شویم. طی سال های اخیر تعدادی از انواع مختلف میکروکنترلرهای جدید جای خود را بین کاربران ایرانی باز کرده اند . محصولات شرکت ATMEL و NXP ( فیلیپس ) در این بین نسبت به دیگر محصولات ، بیشتر مورد توجه کاربران قرار گرفته اند. در ادامه قصد داریم چند نمونه از این محصولات را به طور دقیق تر مورد بررسی قرار دهیم تا دوستانی که تمایل به شروع کار با ARM دارند ، اطلاعاتی هرچند مختصر نسبت به این میکروکنترلرها کسب کنند و در ابتدای کار خود دچار سردرگمی نشوند.

بررسی میکروکنترلر های ARM شرکت Atmel

یکی از شرکت هایی که در این بین برای ما آشنا است شرکت ATMEL است. میکروکنترلرهای خانواده 8051 و همچنین میکروهای 8 بیتی AVR از محصولات پرکاربرد این کمپانی از گذشته تا به امروز بوده است. محصولات 32 بیتی ARM این کمپانی از سری AT91XX نیز از محصولات پرفروش و پرکاربرد جهان در سال های اخیر بوده است. میکروکنترلرهای AT91SAM7S و AT91SAM7X از محصولات این کمپانی با هسته ARM7TDMI است که در ایران نیز به طور زیادی استفاده می شود.از امکانات این میکروکنترلرها می توان به موارد زیر اشاره کرد:

– سرعت عملکرد پروسسور تا حد 55MHZ در دمای 85C و ولتاژ 1.65V

– حافظه 512Kbyte Flash و 64Kbyte SRAM برای AT91SAM7S512

– حافظه 512Kbyte Flash و 128Kbyte SRAM برای AT91SAM7X512

– حافظه 256Kbyte Flash و 64Kbyte SRAM برای AT91SAM7S256 و AT91SAM7X128

– حافظه 128Kbyte Flash و 32Kbyte SRAM برای AT91SAM7S128 و AT91SAM7X128

-وجود یک پورت USB باسرعت (12Mbit/s)Full-Speed

– امکان 10,000 بار پروگرم کردن حافظه فلش

– یک پورت شبکه (Ethernet Mac10/100 base-T) فقط در سری AT91SAM7X

-یک پورت CAN برای AT91SAM7X

– دو پورت USART برای AT91SAM7S,X 512 /256/128/64/321/161

– یک پورت USART برای AT91SAM7S,X 32/16 (512,256,..,32,16 اندازه حافظه فلش میکرو بر حسب KB هستند)

-پشتیبانی از ارتباط مادون قرمز IRDA

– پشتیبانی از استاندارد ISO7816 T0/T1 برای ارتباط با کارت های هوشمند

– پشتیبانی کامل از خطوط ارتباتی مودم در USART1

– پشتیبانی از RS485

– پشتیبانی از ارتباط آنالوگ I2S برای ورودی خروجی صدای دیجیتال

– یک واسط SPI با پیکربندی laveMaster/S

– یک تایمر/کانتر 16 بیتی 3 کاناله

– یک مولد پالس PWM چهار کاناله

– سه خروجی کلاک قابل برنامه ریزی

– یک واسط TWI

-یک مبدل آنالوگ به دیجیتال 10 بیتی(ADC)

– وقفه خارجی

-راه انداز SAM-BA(از این ویژگی برای پروگرم کردن آسان میکرو توسط پورت USB استفاده می شود.)

– یک کنترلر PIO 32 برای AT91SAM7S 512/256/128/64/321/161

– 21 پین IO برای AT91SAM7S 32/16

– هریک از پین ها حداکثر با دو سیگنال از وسایل جانبی ادغام شده

– مقاومت داخلی PULL-UP به صورت مجزا برای هر پین قابل برنامه ریزی است.

– پیکربندی درین باز برای هر پین قابل برنامه ریزی است.

-وقفه تغییر سطح ولتاژ به صورت مجزا برای هر پین

– 4 پین با جریان دهی بالا تا حد 16Ma

– مقاوم در برابر ولتاژ 5V

– کنترلر DMA برای وسایل جانبی

– اسیلاتورRC داخلی 32KHZ

– اسیلاتور کریستال 3 الی 20MHZ

-یک PLL برای کلاک میکروکنترلر و پورت USB

-کنترلر RESET (ریست دستگاه های خارجی از طریق NRST –ریست در لحظه تغذیه – آشکار ساز کاهش ولتاژ تغذیه )

– تایمر واچ داگ WDT

– کنترلر مدیریت توان مصرفی PMC(پشتیبانی از مد IDLE با متوقف کردن کلاک پروسسور)

– کنترلر وقفه پیشرفته(AIC:Advanced Interrupt Controller)

– پشتیبانی از واحد اشکال زدایی داخلی (Debug Unit)

– رگولاتور ولتاژ داخلی 1.8 ولت

– تایمر فاصله زمانی پریودیک (PIT :Periodic Interval Timer)

– تایمر زمان (RIT : Real-Time Timer)

تنها تفاوت AT91SAM7S و AT91SAM7X وجود پورت شبکه و پورت CAN در AT91SAM7X است.البته برای مواردی که تعداد پایه های ورودی و خروجی ، همچنیین حافظه فلش برای پروژه ما زیاد مهم نیست می توان از AT91SAM7S 64/32 استفاده کرد.چرا که این میکرو در پکیج 44 پین ارائه می شود در حالی که AT91SAM7X در بسته بندی 100 پین موجود است.از محصولات دیگر این کمپانی می توان به AT91SAM3U و AT91SAM3S اشاره نمود.این گروه از میکروکنترلرها با هسته CORTEX-M3 از کارایی بهتری برخوردار هستند که میتوان به مواردی از جمله وجود حافظه SRAM بالاتر همچنیین سرعت عملکرد پروسسور تا 96MHZ ،قابلیت اتصال حافظه های خارجی Flash و RAMS و مبدل ADC 12 بیتی اشاره نمود.اما این محصولات نسبت به دو مورد اول کمتر مورد استفاده قرار گرفته است.

 بررسی میکروکنترلر های NXP

اما اگر بخواهیم میکرو کنترلر دیگری بجز محصولات شرکت ATMEL پیشنهاد کنیم شاید مناسب ترین گزینه محصولات شرکت NXP باشد. میکروکنترلر های این کمپانی نیز با هسته های ARM7TDMI و CORTEX-M3 ازجایگاه ویژه ای برخوردار هستند به طوری که کارایی بهتر این میکروکنترلرها در سرعت ، پایداری و همچنین در بعضی موارد دیگر باعث شده تا بیشتر کاربران ، این محصولات را به محصولات شرکت ATMEL ترجیح دهند. میکروکنترلرهای NXP با هسته ARM7TDMI از جمله میکروهای سری LPC2000 دارای برخی سخت افزارهای جانبی هستند که به ندرت در سایر میکروکنترلرهای با هسته ARM7 دیده می شوند. وجود امکانات اضافی DAC ،LIN ، SSP , SSD/MC Controller ,LCD Controller از این جمله اند. قطعات LPC دارای IO بیشتری هستند. مثلا قطعه LPC2132 که یک قطعه 64 پایه است ، دارای 47 پایه IO است در حالی که AT91SAM7S64 دارای 32 پایه IO است. میکروکنترلرهای با هسته CORTEX-M3 نیز دارای ویژگی های خوبی هستند که از جمله آنها می توان به سرعت بالاتر ، وجود DAC ،USB HOST/DEVICE ،درایور موتور 3 فاز با تولید موج PWM اشاره نمود. میکروکنترلر LPC1768 با مقدار حافظه 512kbyte Flash و 64Kbyte SRAM و فرکانس 100MHZ همچنین میکروکنترلر LPC1788با سرعت 120MHZ ، وجود درایور LCD رنگی ، واحد SSD/MC Controller و تعداد IO بیشتر و همچنین قابلیت اتصال حافظه خارجی ازاین جمله اند.

ویژگی های میکروکنترلرهایLPC1763/64/65/66/67/68/69 به شرح زیر است:

-حداکثر سرعت 100MHZ و 120MHZ برای (LPC1769)

-معماری HARWARD

-حافظه برنامه تا 512 Kbyte و حافظه SRAM تا 32Kbyte

– پشتیبانی از ارتباط شبکه ETHERNET MAC و کنترل کننده DMA

– وجود چهار رابط سریال UART که یکی از آنها از ارتباط مودم و دیگری از ارتباط IRDA پشتیبانی می کنند.

– دو بلوک ارتباط CAN

– دو واحد کنترل کننده SPI و دو واحد کنترل کننده SSP با حافظه FIFO

-سه رابط I2C

– رابط I2S برای ورودی خروجی صدای دیجیتال

-70 الی 100 پین ورودی/خروجی با مقاومت های PULL-UP قابل تنظیم

– 8 کانال ADC 12 بیتی

-یک واحدDAC (مبدل دیجیتال به آنالوگ )10 بیتی

– 4 واحد تایمر کاننتر 32 بیتی

-یک واحد PWM با قابلیت کنترل موتور 3 فاز

-یک واحد RTC برای تنظیم ساعت ، با قابلیت تغذیه باتری خارجی

-تایمر WDT سگ نگهبان

-چهار حالت کاهش مصرف توان :IDLE , SLEEP ,POWER DOWN ,DEEP POWER DOWN

– چهار ورودی وقفه خارجی

– نوسان ساز داخلی 4MHZ که میتواند به عنوان به عنوان کلاک پروسسور و دیگر قسمت ها به جز CAN و USB مورد استفاده قرار بگیرد.

-وجود PLL برای CPU و PLL مجزا برای پورت USB

– محافظت از کد برنامه با سطح دسترسی متفاوت

میکروکنترلر های شرکت STM

میکروکنترلرهای دیگر نیز از جمله میکروهای شرکت ST Microelectronic از سری STM32 در ایران استفاده می شوند که دارای ویژگی های خاص خود می باشند.استفاده از این میکروها شاید به دلیل قیمت پایینترنسبت به کارایی خوب و پشتیبانی شرکت سازنده از این محصولات باشد.اما به دلیل کمبود منابع آموزش فارسی ، کمتر مورد توجه و بررسی قرار گرفته اند .

در پایان امیدوارم با مطالعه این پست اطلاعاتی هرچند اندک راجع به میکروکنترلرهای ARM کسب کرده باشید و این اطلاعات بتواند در بدو ورود شما به دنیای جدید ARM کمکی کرده باشد. 

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد