آموزش میکروکنترلر 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 داخلی اصلی (۱۱۲کیلوبایت)
- SRAM2 داخلی کمکی (۱۶کیلوبایت)
- SRAM3 داخلی کمکی (۶۴کیلوبایت)
- وسیله AHB1 شامل پلهای AHB به APB و وسیلههای جانبی APB
- وسایل جانبی AHB2
- کنترلگر حافظه انعطافپذیر(FMC)
ماتریس باس، دسترسی از یک مستر به Slave را فراهم میکند و تضمین میکند که دسترسی همزمان ممکنباشد و عملیات با بازده بالا حتی وقتی چند وسیلهی جانبی پرسرعت باهم کار میکنند انجامشود. رم داده ۶۴کیلوبایتی جفتشده با پردازنده، جزئیاز باس نیست و باید مستقیماً ازطریق پردازنده با آن کار کرد. ساختار گفتهشده را در زیر میبینید:
باس I
این باس، باس دستور پردازنده را به ماتریس باس متصل میکند. این باس توسط هسته برای واکشی دستوربهکار میرود. هدف این باس حافظهی شامل کد است که ممکناست حافظه فلش/SRAM داخلی یا حافظههای خارجی ازطریقFMC باشد.
باس D
این باس، باس داده هسته را به رم داده ۶۴کیلوبایتی جفتشده با هسته و ماتریس باس متصل میکند. این باس توسط هسته برای بارگزاری واقعی و دسترسی دیباگ استفاده میشود. هدف این باس حافظههای حاوی کد و داده است. (حافظه فلش داخلی یا حافظههای خارجی ازطریق 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 فعال کنید. وقتی دسترسی ۸ یا ۱۶بیتی روی APB درخواست میشود، به دسترسی ۳۲ تبدیل میشود. (پل، داده را تکرار میکند تا برداری ۳۲بیتی درستشود).
در قسمت چهارم آموزش میکروکنترلر STM32F4 به حافظه خواهیم پرداخت. با ما همراه باشید.
منبع: سیسوگ