بخش دوم آموزش ARM Cortex M3 : معرفی ، معماری و راه اندازی میکروکنترلرهای سری LPC176x/5x

بازگشت به آموزشگاه

 پیش نیاز ها این دوره آموزشی :

کل مباحث دوره آموزشی AVR : از اینجا شروع کنید

کل مباحث دوره آموزشی ARM7 : از اینجا شروع کنید

بخش های قبلی این دوره آموزشی :

بخش اول آموزش ARM Cortex M3 : معرفی و معماری میکروکنترلرهای سری Cortex M3

 

نکته مهم : روند آموزش های آتی به سمت کاربردی و کوتاه شدن پیش خواهد رفت و کمتر به اصول و پیش نیازها اشاره خواهیم کرد. بنابراین در صورتی که پیش نیازهای ذکر شده را به طور کامل مسلط نباشید ، در مفاهیم قسمت های بعدی با مشکل مواجه خواهید شد. توصیه می شود قبل از شروع به کار با میکروکنترلرهای Cortex M3 چند پروژه عملی با ARM7 انجام دهید.

 


مقدمه

در این بخش بیشتر به معرفی و معماری میکروکنترلر LPC1768 با حداکثر سرعت 100Mhz می پردازیم هر چند که میکروکنترلرهای LPC1769 و LPC1759 با سرعت 120Mhz ، جایگاه بهتری دارند. علت اصلی انتخاب این میکروکنترلر برای آموزش فقط از آن جهت است که جزو معروف ترین و پرکاربردترین میکروکنترلرهای Cortex M3 و سری LPC176X است. شرکت NXP ، در سری LPC176X علاوه بر استفاده از معماری بهبود یافته Cortex M3 در پردازنده اصلی ( CPU ) ، حافظه ها ، وقفه ها ، مدیریت کلاک و توان مصرفی ، از واحدهای جانبی بیشتر و با کارایی بهتر نظیر USB ( Device, Host, OTG ) ، Ethernet ، کنترل PWM موتور سه فاز ( 3Phase Motor Control PWM ) ، رابط های UART ، SPI ، SSP ، I2C ، I2S و CAN و … استفاده کرده است. همین مسئله سبب کاهش توان مصرفی و افزایش کارایی این میکروکنترلرها نسبت به سری ARM7 شده است. توجه فرمایید که بیشتر مطالب گفته شده در این بخش از دوره آموزشی درون راهنمای کاربر UM10360 وجود دارد.

حتما دانلود کنید : راهنمای کاربر ( User Manual ) میکروکنترلرهای NXP


معرفی میکروکنترلرهای سری LPC176x/5x

LPC176x/5x میکروکنترلرهای مبتنی بر هسته ARM Cortex M3 هستند که برای کاربردهایی که نیاز به سطح بالایی از یکپارچه سازی در توان مصرفی پایین دارند ، مناسب می باشند. Cortex M3 نسل جدید هسته های ARM است که در زمینه هایی مانند خصوصیات اشکال زدایی مدرن و سطح بالای پشتیبانی از بلوک های یکپارچه سازی شده ، منحصر به فرد است.

فرکانس کلاک CPU نسخه های سریعتر ( LPC1769 و LPC1759 ) تا 120 مگاهرتز است. فرکانس دیگر نسخه ها تا 100 مگاهرتز می باشد. هسته های ARM Cortex M3 از خط لوله ( pipeline ) سه مرحله ای و معماری مدرن Harvard با سه باس مجزا برای دستور ( Instruction ) ، داده ( Data ) و امکانات جانبی ( peripheral ) استفاده می کنند. همچنین پردازنده های ARM Cortex M3 یک واحد پیش واکشی ( Prefetch Unit ) دارد که دستورات را در یک صف انتظار برای رسیدن به CPU قرار می دهد. این خصوصیت باعث صرفه جویی در زمان دسترسی به دستورات می شود.

امکانات جانبی این سری از میکروکنترلرها شامل موارد زیر است :

  • حافظه Flash حداکثر تا 512 کیلوبایت
  • حافظه SRAM حداکثر تا 64 کیلوبایت
  • واحد Ethernet MAC
  • یک اینترفیس USB که میتواند در حالت های Device ، Host یا OTG پیکربندی شود
  • 8 کانال همه منظوره دسترسی مستقیم به حافظه ( واحد GPDMA )
  • 4 واحد UART
  • 2 واحد CAN
  • 2 واحد کنترلر SSP
  • واحد SPI
  • 3 واحد I2C
  • 2 ورودی و 2 خروجی I2S
  • واحد ADC با دقت 12 بیت و 8 کانال
  • واحد DAC با دقت 10 بیت
  • واحد PWM کنترل موتور
  • واحد مانیتور انکودر تربیعی
  • 4 واحد تایمر همه منظوره
  • 6 خروجی PWM همه منظوره
  • واحد RTC فوق کم مصرف با تغذیه باتری جداگانه
  • حداکثر 70 پایه ورودی/خروجی همه منظوره

 


بلوک دیاگرام ساده شده میکروکنترلرهای سری LPC176x/5x

 

مقایسه این سری با میکروکنترلرهای ARM7 سری LPC213x

همانطور که در بلوک دیاگرام شکل فوق مشاهده می شود ، مهمترین تغییراتی که میکروکنترلرها در این سری نسبت به سری های قدیمی تر ARM7 داشته است ، واحد GPIO سرعت پایین وجود ندارد و جای خود را به Fast GPIO یا High Speed GPIO داده است. یک واحد باس ماتریسی پرسرعت چند لایه ( Multilayer AHB Matrix ) اضافه شده است که به دو واحد مجزای پل تقسیم کننده به باس کم سرعت ( AHB to APB ) متصل شده است. همچنین واحدهای جدیدی نظیر USB ، DMA ، Ethernet و … نیز وجود دارد که در میکروکنترلرهای سری LPC213x دیده نمی شود.

 


خصوصیات و ویژگی های میکروکنترلرهای LPC176x/5x

  •  دارای پردازنده Cortex M3 با حداکثر فرکانس کاری 120 مگاهرتز برای LPC1759 و LPC1769 و حداکثر فرکانس کاری 100 مگاهرتز برای دیگر میکروکنترلرهای این سری
  • واحد محافظت از حافظه MPU ( مخفف Memory Protection Unit )
  • واحد کنترلر وقفه برداری تو در تو NVIC ( مخفف Nested Vectored Interrupt Controller )
  • حداکثر 412 کیلوبایت حافظه Flash با قابلیت پروگرام کردن در سیستم ISP ( مخفف In System Programming ) و در اپلیکشن IAP ( مخفف In Application Programming ) و دارای باس محلی ( System Bus ) و واحد شتاب دهنده ( Accelerator )
  • حداکثر 64 کیلوبایت حافظه SRAM داخلی که شامل موارد زیر است :
  1. 32 کیلوبایت حافظه SRAM که توسط باس محلی پیشرفته با CPU در ارتباط است
  2. دو واحد 16 کیلوبایتی حافظه SRAM با مسیرهای دسترسی جداگانه ( AHB )
  • هشت کانال همه منظوره دسترسی مستقیم به حافظه GPDMA ( مخفف General Purpose Direct Memory Access ) بر روی ماتریس چند لایه AHB که میتوانند به منظور دسترسی مستقیم واحدهای جانبی به حافظه و یا انتقال داده از حافظه ای به حافظه دیگر بدون واسطه CPU استفاده شوند.
  • باس AHB ماتریسی چند لایه که امکان ارتباط جداگانه بین چندین Master و Slave را فراهم می کند. Master میتواند واحدهای CPU ، DMA ، Ethernet و USB باشد. این باس امکان ارتباط بدون تاخیر مربوط به حکمیت به دست گرفتن باس را فراهم می کنند ، مگر اینکه دو مستر به طور همزمان برای دسترسی به یک اسلیو تلاش نمایند.
  • دو باس APB مجزا که با کاهش تداخل کاری بین CPU و DMA توان عملیاتی بالاتری را بوجود می آورند. دارای بافر یک طرفه ای که CPU در آن می نویسد و بدون انتظار به کار خود ادامه می دهد.
  • واسط های سریال :
  1. یک واحد سریال اترنت ( MAC Ethernet ) با قابلیت RMII ( مخفف Reduced media-independent interface ) و دارای کنترلر اختصاصی برای دسترسی مستقیم به حافظه ( DMA )
  2. یک واحد 2.0 USB که می تواند به عنوان device ، host یا OTG پیکربندی شود. به همراه PHY داخلی برای عملکردهای device و host و دارای کنترلر اختصاصی برای دسترسی مستقیم به حافظه ( DMA )
  3. چهار واحد مجزای UART با توانایی تولید نرخ ارسال ( Baud Rate ) جزئی ، پشتیبانی از بافر FIFO ( مخفف First in First out ) ، دسترسی مستقیم به حافظه ( DMA ) و عملکرد به صورت irDA ( مخفف Infrared Data Association ). یکی از واحدهای UART دارای ورودی/خروجی های کنترل مودم است و از پروتکل RS485 نیز پشتیبانی می کند.
  4. دو واحد ارتباطی سریال CAN
  5. دو واحد SSP دارای FIFO و قابلیت پشتیبانی از چندین پروتکل که میتواند به همراه واحد GPDMA استفاده شود.
  6. واحد SPI با ارتباط دو طرفه سنکرون و با طول داده قابل برنامه ریزی که به جای SSP0 استفاده می شود. ( در آن واحد از یکی از واحدهای SPI و SSP0 میتواند استفاده شود )
  7. سه باس بهبود یافته I2C که یکی از آنها خروجی open drain و حالت fast mode plus با سرعت 1Mbit/s ( یک مگابیت در ثانیه ) داشته و ویژگی های I2C کامل را دارد. دو واحد دیگر معمولی هستند. این سه واحد در تشخیص آدرس های چندگانه و حالت مانیتور بهبود داشته است.
  8. واحد I2S ( مخفف Inter-IC Sound ) برای ورودی/خروجی های دیجیتال صوتی ، با نرخ انتقال جزئی که میتواند با GPDMA کار کند. این واحد از ارسال/دریافت دیتا به صورت سه سیم و چهار سیم ( یک سیم برای کلاک خروجی از master ) پشتیبانی می کند.
  • امکانات جانبی دیگر :
  1. دارای 70 عدد پین ورودی/خروجی همه منظوره سریع ( واحد Fast GPIO ) که به باس AHB برای حداکثر سرعت متصل هستند و قابلیت تنظیم در حالت های : مقاومت پول آپ ( pull up ) ، پول دان ( pull down ) ، مدار باز ( open drain ) و Repeater ( حالتی که در صورت High بودن منطق پایه ، مقاومت پول آپ و در صورت Low بودن پایه ، مقاومت پول دان فعال می شود ) و همچنین قابلیت bit-banding ( بر اساس این قابلیت هر word از حافظه به یک بیت از ناحیه ی دیگر حافظه که bit-banded نام دارد ، مرتبط می شود. بنابراین هر 32 مگابایت از ناحیه اصلی حافظه SRAM به 1 مگابایت از ناحیه bit-banded حافظه SRAM کوتاه می شود. در نتیجه بیت های تکی درون حافظه میتواند بدون توالی خواندن-اصلاح-نوشتن ، تغییر حالت دهد ). پین های GPIO همگی از طریق کنترلر GPDMA نیز قابل دسترسی هستند. ضمنا همه پایه های مربوط به پورت 0 و 2 دارای وقفه می باشند.
  2. واحد مبدل دیجیتال به آنالوگ 10 بیتی ، با تایمر اختصاصی برای نرخ تبدیل ( Conversion Rate ) و پشتیبانی از DMA
  3. چهار واحد تایمر همه منظوره که هر یک 8 ورودی تسخیر ( Capture ) و 10 خروجی تطبیق ( Match ) دارند. هر بلوک تایمر دارای یک ورودی کلاک خارجی است. رویدادهای خاصی از تایمر میتواند برای تولید درخواست DMA انتخاب شود.
  4. یک واحد کنترل کننده PWM با قابلیت کنترل موتور 3 فاز
  5. یک واحد مانیتور انکودر تربیعی ( Quadrature Encoder ) که به صورت سخت افزاری میتواند یک انکودر تربیعی خارجی متصل به میکرو را شمارش کند.
  6. یک واحد PWM/Timer با ورودی کلاک خارجی
  7. واحد شمارنده زمان حقیقی ( RTC ) با حوزه های تغذیه مجزا. این واحد که با یک اسیلاتور RTC اختصاصی کلاک دهی می شود ، حاوی 20 بایت رجیستر توان دهی شده به وسیله باتری برای عملیات Bakup گیری است که به سیستم اجازه می دهد وضعیت های خود را در حالتی که تغذیه دیگر قسمت های واحد RTC قطع است ، ذخیره نگه دارد. تغذیه این واحد میتواند از یک باتری 3 ولتی تامین شود. واحد RTC تا زمانی که ولتاژ باتری به کمتر از 2.1 ولت نرسیده باشد ، به کار خود ادامه می دهد. وقفه RTC می تواند پردازنده را از حالت کم مصرف بیدار کند.
  8. واحد تایمر سگ نگهبان ( whatchdog timer ) که میتواند از اسیلاتور RC داخلی نیز کلاک دهی شود.
  9. تایمر سیستم ( SysThick Timer ) که وجود آن از الزامات معماری Cortex M3 است و ورودی کلاک آن انتخابی است.
  10. تایمر تکرار شونده ( ) جهت تولید وقفه های تکرار شونده در پریود های قابل برنامه ریزی زمانی
  11. واسط استاندارد تست/عیب یابی JTAG به همراه پورت اشکال زدایی موازی ( JTAG ) ، سریال ( Serial Wire Debug یا SWD ) و قابلیت ردیابی به وسیله سیم سریال ( Serial Wire Trace یا SWT )  که وجود آن جزو الزامات Cortex M3 است.
  12. دارای چهار حالت کم مصرف به نام های Sleep ، Deep-Sleep ، Power-Down و Deep-Power-down
  13. تغذیه ورودی تکی 3.3 ولت ( بازه 2.4 ولت تا 3.6 ولت ) و دمای عملکرد بین -40 تا +85 درجه
  14. چهار ورودی وقفه خارجی ، قابل پیکربندی در حالت های حساس به لبه و سطح. ضمنا تمامی پین های پورت 0 و 2 میتوانند به عنوان منبع وقفه حساس به لبه باشند.
  15. ورودی وقفه غیر قابل اشتباه (یعنی NMI مخفف Non-Mistakable Interrupt )
  16. عملیات کلاک خروجی که می تواند هر یک از کلاک های اسیلاتور اصلی ، IRC ، RTC ، CPU یا کلاک USB را منعکس کند.
  17. کنترلر وقفه بیدار باش ( WIC ) که به پردازنده امکان می دهد به صورت خودکار توسط وقفه هایی که در حالت توقف کلاک ، قابلیت رخ دادن دارند ( بدون توجه به اولویت آن ها ) ، از حالت های خواب عمیق ، کم مصرف و بسیار کم مصرف بیدار شود.
  18. بیدار شدن پردازنده از حالت کم مصرف توسط هر یک از وقفه هایی که در این حالت قابلیت رخ دادن دارند ( شامل وقفه های خارجی ، وقفه های RTC ، فعالیت USB ، وقفه بیدار باش اترنت ، فعالیت باس CAN ، وقفه خارجی پین های پورت های 0 و 2 و در نهایت NMI )
  19. هر یک از امکانات جانبی به منظور صرفه جویی بیشتر در توان مصرفی ، مقسم کلاک مختص به خود دارد.
  20. شناسایی کاهش سطح ولتاژ تغذیه با دو سطح مجزا برای وقفه و ریست ( Brown Out Detection )
  21. ریست داخلی در هنگام اتصال توان ( Power On Reset )
  22. کریستال اسیلاتور داخلی با بازه عملکرد 1 تا 25 مگاهرتز
  23. اسیلاتور داخلی RC با فرکانس 4 مگاهرتز که میتواند به عنوان منبع کلاک سیستم مورد استفاده قرار گیرد.
  24. یک حلقه قفل فاز ( PLL ) داخلی که به پردازنده میکروکنترلر اجازه می دهد بدون نیاز به یک کریستال فرکانس بالا ، در بالاترین سطح ممکن کلاک خود کار کند. این PLL میتواند با هر یک از کلاک های اسیلاتور اصلی ، اسیلاتور داخلی RC یا اسیلاتور RTC کار کند.
  25. یک واحد PLL اختصاصی جهت استفاده واسط USB در سیستم تعبیه شده است ، تا کلاک مورد نیاز این واحد از انعطاف پذیری PLL اصلی نکاهد.

 


کاربردهای میکروکنترلرهای سری LPC176x/5x

  • اندازه گیری الکتریکی ( eMetering )
  • سیستم های روشنایی ( Lighting )
  • شبکه های صنعتی ( Industerial Networking )
  • سیستم های هشدار دهنده ( Alarm System )
  • محصولات خانگی ( White Goods )
  • کنترل انواع موتورها ( Motor Control )


اطلاعات بسته بندی ( Packaging ) میکروکنترلرهای سری LPC176x/5x

در شکل زیر انواع بسته بندی های نهایی که شرکت NXP برای آی سی های این سری عرضه کرده است را مشاهده می کنید. در سمت چپ نام و در سمت راست توضیحات مربوط به آن را نیز مشاهده می کنید.

 

همانطور که مشاهده می کنید ، هر 13 آی سی این سری ( 7 آی سی برای سری LPC176x و 6 آی سی برای LPC175x ) در بسته بندی LQFP ( مخفف Plastic low Profile Quad Flat Package ) ساخته و عرضه می شود. بسته بندی LQFP100 در شکل زیر نشان داده شده است.

 

تنها آی سی که در بسته بندی های TFBGA ( مخفف Plastic thin fine-pitch ball grid array package ) و WLCSP ( مخفف Wafer Level Chip-Scale Package ) ساخته می شود ، آی سی معروف LPC1768 می باشد. در تصویر زیر شکل ظاهری این دو بسته بندی نشان داده شده است.

 

برای فهم بیشتر در مورد بسته بندی های آی سی توصیه می شود آموزش زیر را نیز بخوانید :

آشنایی با انواع بسته بندی ها و مونتاژ آن ها

 


معماری میکروکنترلرهای سری LPC176x/5x

ARM Cortex M3 شامل سه زیر باس AHB ( یعنی AHB-Lite Buses ) می باشد. این باس ها عبارتند از : یک باس سیستم ( system bus ) و دو باس پر سرعت دیگر شامل I-Code ( برای واکشی دستورالعمل ها ) و D-Code ( برای دسترسی به داده ها ). استفاده از هسته های دارای دو باس ، در صورتی که دو عملیات همزمان ابزارهای متفاوتی را هدف گرفته باشند ، اجازه عملیات بدون توقف را می دهد. این میکرو از یک ماتریس چند لایه با نام AHB استفاده می کند تا باس های هسته ( هر سه باس ) و سایر باس های Master را با رفتاری انعطاف پذیر ، به امکانات جانبی ( peripheral ) متصل کند. استفاده از ماتریس AHB این امکان را به امکانات جانبی موجود بر روی درگاه های Slave مختلف ماتریس می دهد که به طور همزمان به وسیله Master های متفاوت مورد دسترسی قرار گیرند و کارایی میکرو را افزایش دهند.

وسایل جانبی ( peripherals ) از طریق دو باس کم سرعت APB به CPU متصل هستند. این اتصال از طریق دو پورت Slave جداگانه ماتریس چند لایه AHB صورت می گیرد. این معماری با کاهش تصادم ( Collision ) بین CPU و DMA بازدهی را افزایش می دهد. پل های ارتباطی باس APB ( یعنی APB Bus Bridge ) برای بوجود آوردن یک بافر نوشتن تعبیه شده اند. بدین ترتیب لازم نیست CPU و DMA برای نوشتن در یکی از امکانات جانبی ، منتظر تکمیل نوشتن قبلی شوند.

 


هسته پردازشی ARM Cortex M3 در میکروکنترلرهای سری LPC176x/5x

این سری از میکروکنترلرها از هسته های پردازشی 32 بیتی ARM Cortex M3 با کارایی بالا و توان بسیار پایین بهره می برد. این هسته پردازشی امکانات جدیدی از قبیل پشتیبانی از دستورات کم حجم Thumb-2 ، کمترین تاخیر ممکن در وقوع وقفه ، تقسیمات سخت افزاری ، بارگذاری و ذخیره سازی چندین باره دستوارت با قابلیت وقفه پذیری یا ادامه پذیری ، ذخیره و بازگردانی خودکار وضعیت و حالات در هنگام وقوع وقفه و باس های چندگانه هسته با قابلیت دسترسی همزمان را در اختیار قرار می دهد.

استفاده از تکنیک های خط لوله ای ( Pipelining ) این امکان را برای تمامی بخش های پردازشگر و سیستم های حافظه فراهم آورده است که بدون توقف به کار خود ادامه دهند. به طور معمول هنگامی که یک دستور در حال اجراست ، دستور بعدی در حال دیکد شدن و دستور سوم در حال واکشی از حافظه فلش می باشد.

 

آپشن های پیکربندی Cortex M3

میکروکنترلرهای سری LPC176x/5x از نسخه r2p0 هسته پردازشی Cortex M3 استفاده می کنند که شامل چندین آپشن ( option ) پیکربندی به شرح زیر است :

 

آپشن های سیستم

  • کنترلر بردارهای وقفه تودرتو ( یعنی واحد NVIC ) . این واحد شامل تایمر سیستم ( SYSTICK timer ) نیز می باشد.
  • کنترلر بیدار باش به وسیله وقفه ( یعنی واحد WIC ) که گزینه های قدرتمندتری را جهت بیدارکردن میکرو از حالت های کاهش توان مصرفی در اختیار قرار می دهد.
  • واحد حفاظت از حافظه ( MPU )
  • جدول ROM . این جدول آدرس اجزای اشکال زدایی را در اختیار سیستم اشکال زدایی خارجی قرار می دهد.

 

آپشن های مربوط به اشکال زدایی ( Debug )

  • واسط اشکال زدایی JTAG
  • اشکال زدایی به صورت سریال که امکان انجام عملیات دیباگ را تنها به وسیله دو سیم فراهم می کند. عملیات ردیابی ( Trace ) سطح پایین نیز تنها با اضافه کردن سیم سوم امکان پذیر می شود.
  • عملیات ردیابی پیشرفته ( یعنی ETM ) . به وسیله این واحد امکان ردیابی دستورات نیز وجود دارد.
  • امکان تنظیم نقاطی برای دیدن ( Watchpoint ) و ردیابی داده ها به وسیله واحد DWT فراهم شده است. این واحد اجازه می دهد که تطابق آدرس داده یا مقدار داده باعث ردیابی اطلاعات و یا تریگر شدن سایر رویدادها شوند. واحد DWT دارای چهار مقایسه کننده و شمارنده برای تعدادی از وقایع داخلی پردازنده است.
  • ابزار ردیابی سطح بالا ( یعنی ITM ). که با استفاده از آن نرم افزار می تواند به منظور ارسال پیام برای درگاه ردیابی ، بر روی ITM بنویسد.
  • درگاه واسط ردیابی ( TIPIU ) . این واحد اطلاعات مربوط به ردیابی را برای دنیای خارج فراهم و رمز گشایی می کند. این درگاه می تواند بر روی پین ناظر سیم سریال و یا بر روی درگاه موازی 4 بیتی ردیابی قرار گیرد.
  • امکان قرار دادن نقاط توقف ( Breakpoint ) و اتصال قطعات حافظه فلش به وسیله واحد FPB فراهم آمده است. این واحد Breakpoint های سخت افزاری را تولید می کند و علاوه بر آن امکان بازنگاشت آدرس های مشخصی از فضای حافظه کد را بر روی SRAM به عنوان یک روش موقت برای تغییر کدهای غیر قابل تغییر ( non-volatile ) فراهم می آورد. FPB دارای دو مقایسه کننده جانبی و شش مقایسه کننده دستور است.

 


حافظه فلش درون سیستم

میکروکنترلرهای سری LPC176x/5x دارای حافظه فلش داخلی با حداکثر مقدار 512 کیلوبایت هستند. واحد شتاب دهنده حافظه فلش ( memory accelerator ) به همراه دو زیر باس سریع AHB ، کارایی این حافظه را حداکثر می کنند. این حافظه میتواند برای ذخیره داده و یا دستور مورد استفاده قرار گیرد. پروگرام کردن این حافظه به چندین روش امکان پذیر است. یکی از راهها استفاده از پورت سریال درون سیستم است ( In System Programming ). همچنین برنامه میکرو میتواند در هنگام اجرای برنامه کاربردی ، پاک و دوباره پروگرام شود ( In Application Programming ). این قابلیت برای به روز کردن برنامه میکرو به وسیله firmware ، انعطاف پذیری فراوانی به میکرو می دهد. برای آموزش بیشتر توصیه می شود مقاله زیر را مطالعه نمایید :


حافظه RAM استاتیک ( SRAM )

میکروکنترلرهای سری LPC176x/5x دارای حافظه SRAM داخلی با حداکثر مقدار 64 کیلوبایت هستند. 32 کیلوبایت از حافظه SRAM قابلیت دسترسی از طریق CPU و هر سه کنترلر DMA را بر روی یک باس سریعتر دارا می باشد. 32 کیلوبایت باقی مانده از حافظه به دو بلوک 16 کیلوبایتی تقسیم می شود که هر کدام بر روی یکی از درگاه های Slave ماتریس چندلایه AHB قرار می گیرد. این معماری به CPU و DMA امکان ذسترسی مجزا را می دهد که در این وضعیت باس های Master با تاخیر بسیار کم یا بدون تاخیر کار می کنند. میکروکنترلر برای ارتباط بین باس های Cortex M3 و سایر باس های Master با وسایل جانبی ، از ماتریس چند لایه AHB استفاده می کند. بدین وسیله امکانات جانبی می توانند از باس های Slave متفاوت به باس های Master متفاوت در آن واحد دسترسی داشته باشند که باعث بهینه شدن عملکرد میکرو می گردد.

 


بلوک دیاگرام جزئی میکروکنترلرهای سری LPC176x/5x

 

شکل فوق بلوک دیاگرام میکروکنترلر را با جزئیات بیشتری نشان می دهد. همانطور که در آن مشاهده می گردد سه باس سرعت بالای I-Code ، D-Code و System Bus وجود دارد که ارتباط بین CPU و سایر واحدها را از طریق ماتریس چندلایه AHB میسر کرده است. همچنین 64 کیلوبایت حافظه SRAM به سه بخش تقسیم می شود که برای هر یک باس جداگانه وجود دارد.

 


نقشه حافظه ( Memory Map ) در میکروکنترلرهای سری LPC176x/5x

هسته پردازشی Cortex M3 دارای فضای آدرس دهی 4 گیگابایتی است. این فضا به ناحیه های کوچک تری تقسیم بندی می گردد که در هر ناحیه به هر یک از بایت های حافظه ( چه حافظه موقت و چه حافظه دائمی ) یک آدرس منحصر به فرد نسبت داده می شود. در شکل زیر تمام این فضای حافظه نشان داده شده است.

 

همانطور که در شکل فوق مشاهده می شود ، وسایل جانبی پر سرعت ( یعنی AHB Peripherals ) ناحیه 2 مگابایتی را به خود اختصاص داده است. این ناحیه قابلیت پشتیبانی تا 128 وسیله جانبی را دارد اما بیشتر آن ها رزرو هستند. همچنین وسایل جانبی کم سرعت به دو ناحیه 1 مگابایتی APB0 و APB1 تقسیم می شود که در هر ناحیه تا 64 وسیله جانبی مجاز می باشد. هر وسیله جانبی فضای 16 کیلوبایتی را به خود اختصاص داده است که باعث ساده تر شدن دیکد کردن آدرس برای هر وسیله جانبی می گردد.

همه رجیسترهای مربوط به وسایل جانبی 32 بیتی هستند و یک کلمه ( word : هر کلمه 4 بایت ) از حافظه را اشغال می کنند. در نتیجه دسترسی به حافظه به صورت 32 بیتی است و نیازی به نوشتن به صورت تک بایتی یا دو بایتی ( نیم کلمه Half Word ) نمی باشد. برای مثال نوشتن یا خواندن از بایت یا نیم کلمه رجیستر امکان پذیر نمی باشد.

 



در صورتی که این آموزش مورد پسندتان واقع شد لایک و اشتراک گذاری فراموش نشود.

20+

دیدگاه (6)

  • سعید پاسخ

    سلام مهندس عزیز با سپاس از زحمتاتی که میکشی , آموزش از پسندیده ترین کارها نزد خدا و بندگاش هست مطمئن باش پاداشتو دو چندان در زندگی خواهی گرفت …
    فقط یه درخواست داشتم اگه میشه روی مدل lpc1768 بیشتر تمرکز کن اون برداشتی که من دارم این هست که این مدل کاربرد بیشتری داره واسه همین بیشتر راجع بهش مطلب بزار خصوصا برنامه نویسش چون فکر کنم برنامه نویسی lpc1768 با lpc2138 یکمی متفاوته یا من اشتباه متوجه شدم ???

    1396-11-21 در 21:53
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز ممنون از لطفتون
      بله در ادامه آموزش ها کار با LPC1768 را نیز قرار خواهیم داد. بله تفاوت هایی وجود داره اما چون LPC2138 ساده تر هست و میشه اون رو در پروتئوس شبیه سازی کرد آموزش های ARM رو با اون شروع کردیم. در ادامه همراه ما باشید …

      1396-11-22 در 17:59
  • محسن پاسخ

    سلام
    خسته نباشید
    ببخشید بخش دوم آموزشتون رو قرار ندادید؟؟

    1397-01-03 در 12:21
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز ممنونم ، بخش دوم که همین بخش است اما بخش سوم به زودی قرار خواهد گرفت

      1397-01-03 در 12:43
  • Mojtaba پاسخ

    سلام گل پسر
    راستش دلم نیومد تشکر کنم ، واقعا عالی و کامل توضیح دادی دمت گرم
    خیلی وقت بود میخاستم بیام سراغ arm ، مطالبت راه انداختم
    امیدوارم روزگار برات آینده ای شیرین رقم بزنه ، منتظر قسمت های بعدی هستم
    بازم ممنون

    1397-05-12 در 12:48
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز ممنون از لطف و همراهی گرم شما بخش بعدی به زودی قرار خواهد گرفت

      1397-05-12 در 13:35

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

18 − سیزده =

بازگشت به آموزشگاه