آموزش میکروکنترلر STM32F4 – قسمت چهارم ;
در قسمت سوم آموزش میکروکنترلر STM32F4 به تابعهای weak و روند ایجاد یک پروژه پرداختیم. در این قسمت از آموزش میکروکنترلر STM32F4 به ساختار باس میپردازیم. با سیسوگ همراه باشید.
ساختار باس
ساختار داخلی میکروکنترلر STM32F4 به شکل زیر است. هسته کورتکس میکروکنترلر با باسهای پرسرعت AHB1 و AHB2 به وسایل جانبی و حافظهها، اترنت، USB، رابط LCD، دوربین و … وصل است. سایر وسایل جانبی نیز از طریق باسهای کم سرعتتر APB در دسترس هستند. DMA های میکروکنترلر نیز از طریق همین باسها به حافظه و وسایل جانبی دسترسی دارند.
ساختار نگاشت حافظه این میکروکنترلر در شکل زیر دیده میشود.
در این میکروکنترلر، سیستم اصلی دارای یک ماتریس باس AHB چندلایه 32-بیتی است که اینها را به هم متصل میکند:
- ده مستر که در شکل زیر با چارگوشهای آبی مشخص شدهاند:
- باس I، باس D و باس S خود کورتکس M4 و هسته FPU
- باس حافظه DMA1
- باس حافظه DMA2
- باس وسیله جانبی DMA2
- باس DMA اترنت
- باس DMA درگاه پرسرعت OTG USB
- باس DMA کنترلگر LCD
- باس حافظه DMA2D (شتاب دهنده کروم-آرت ( Chrom-Art) یک شتاب دهنده گرافیکی است برای نمایشگر LCD که به سیستم متصل میشود.)
- هشت Slave که با چارگوشهای نارنجی مشخص شدهاند:
- باس کد I حافظه فلش داخلی
- باس کد d حافظه فلش داخلی
- SRAM1 داخلی اصلی (112 کیلوبایت)
- SRAM2 داخلی کمکی (16 کیلوبایت)
- SRAM3 داخلی کمکی (64 کیلوبایت)
- وسیله AHB1 شامل پلهای AHB به APB و وسیلههای جانبی APB
- وسایل جانبی AHB2
- کنترلگر حافظه انعطاف پذیر (FMC)
ماتریس باس، دسترسی از یک مستر به Slave را فراهم میکند و تضمین میکند که دسترسی همزمان ممکن باشد و عملیات با بازده بالا حتی وقتی چند وسیله جانبی پرسرعت با هم کار میکنند انجام شود. رم داده 64 کیلوبایتی جفت شده با پردازنده، جزیی از باس نیست و باید مستقیماً از طریق پردازنده با آن کار کرد. ساختار گفته شده را در زیر میبینید:
باس I
این باس، باس دستور پردازنده را به ماتریس باس متصل میکند. این باس توسط هسته برای واکشی دستور به کار میرود. هدف این باس حافظه ی شامل کد است که ممکن است حافظه فلش/SRAM داخلی یا حافظه های خارجی از طریق FMC باشد.
باس D
این باس، باس داده هسته را به رم داده 64 کیلوبایتی جفت شده با هسته و ماتریس باس متصل میکند. این باس توسط هسته برای بارگزاری واقعی و دسترسی دیباگ استفاده میشود. هدف این باس حافظههای حاوی کد و داده است. (حافظه فلش داخلی یا حافظههای خارجی از طریق FMC)
باس S
این باس، باس سیستم پردازنده را به ماتریس باس متصل میکند. این باس برای دسترسی به داده قرار گرفته در وسیلههای جانبی یا SRAM استفاده میشود. دستورها را نیز میتوان از طریق این باس واکشی کرد که بازده کمتری از باس I دارد. هدف این باس SRAM1/2/3 داخلی و وسیلههای جانبی AHB1 شامل وسیلههای جانبی APB، وسیلههای جانبی AHB2 و حافظههای خارجی از طریق FMC میباشد.
پلهای (AHB/APB (APB
دو پل AHB/APB، به نام APB1 و APB2 امکان اتصال هم زمان بین AHB و دو باس APB را با امکان انتخاب فرکانس وسیله جانبی فراهم میکنند. ماکزیمم فرکانس این دو باس در برگه اطلاعات درج شده است. باید دقت کرد که هر وسیله جانبی روی کدامیک از این باسها قرار دارد. اینها در جدولی در مرجع میکروکنترلر قرار دارد.
بعد از بازنشانی، کلاکهای وسایل جانبی غیرفعال میشود (به جز SRAM و رابط حافظه فلش). قبل از استفاده از هر وسیله جانبی باید کلاک آن را در رجیستر RCC_AHBxENR یا RCC_APBxENR فعال کنید.
وقتی دسترسی 8 یا 16 بیتی روی APB درخواست میشود، به دسترسی 32 تبدیل میشود. (پل، داده را تکرار میکند تا برداری 32 بیتی درست شود)
در قسمت چهارم آموزش میکروکنترلر STM32F4 به حافظه خواهیم پرداخت. با سیسوگ همراه باشید.