Nikelec.ir آموزش الکترونیک و کامپیوتر

صفرتاصد پیاده سازی انواع حافظه با STM32

تومان 1,300,000

سطح : پیشرفته
بردها و میکروکنترلرهای استفاده شده : بردهای دیسکاوری F7,F4 و بردهای تولید سایت Nikelec  سری F1,F4,F7
آموزش پیاده سازی :
SDRAM
SRAM
Flash
Serial Memory SPI/QSPI
EEPROM
Micro SD

توضیحات

آموزش صفرتاصد پیاده سازی انواع حافظه با میکروکنترلرهای STM32 SDRAM SRAM Flash Serial Memory SPI/QSPI EEPROM Micro SD

( اطلاعات محصول دائما در حال تکمیل خواهد بود )( به این طریق می توانید سوالات خود را مطرح کنید در مراحل تکمیل تا به سوالات مهم در بعضی از قسمت ها پاسخ داده شود )

 

سرفصل های آموزش صفرتاصد پیاده سازی انواع حافظه با STM32

آموزش عمیق و کامل راه اندازی و پیاده سازی عملی واحد FMC_SDRAM

در این بخش مانند تمام بخش های دیگر این آموزش، آموزش های مربوط به معماری نحوه عملکرد و پیاده سازی عملی کار با واحد SDRAM برای ارتباط برقرار کردن با SDRAM های خارجی آموزش داده می شود . که مانند تمام آموزش های سایت تعدادی مثال هم برای پیاده سازی عملی برای شما در این بخش گنجانده شده .

SDRAM

آموزش کار با SRAM

در این بخش آموزش معماری و نحوه عملکرد و کار با SRAM به شما آموزش داده می شود .

SRAM

آموزش کار با Flash

در این بخش معماری و نحوه عملکرد و کار با فضای ذخیره سازی میکروکنترلر “فلش” به شما آموزش داده می شود ( این بخش در آموزش دوره اول STM32 قرار داده شده )

Flash

کار با حافظه های دارای رابط SPI/QSPI

در این بخش حافظه های دارای رابط SPI و QSPI آموزش داده می شود .

SPI/QSPI

کار با حافظه های خارجی EEPROM

در این بخش EEPORM آموزش داده می شود .

EEPROM

کار با حافظه کارت های حافظه

کار با کارت های حافظه Micro SD را به دو طریق مستقیم و استفاده از Fatfs آموزش داده می شود .

Micro SD

6 دیدگاه برای صفرتاصد پیاده سازی انواع حافظه با STM32

  1. avatar-image

    محمد علی نجفی

    سلام مهندس
    بخش micro sd رو با CMSIS کار کردید آیا؟
    و اینکه آموزش مربوط به sd چند ساعته؟
    ممنون

    • avatar-image

      Admin

      سلام وقتتون بخیر .
      آموزش های بعد از آموزش اول ( آموزش برنامه نویسی میکروکنترلرهای STM32 ) اکثرا با HAL هستند بعضی جاها که لازم بوده CMSIS بین کار استفاده شده .
      در مورد زمان هم خود SD آموزشش یکم بیشتر از 10 ساعت هست و با استفاده از FatFS هم قسمت هایی جدا برای خودش داره .

  2. avatar-image

    Hesam

    خیلی ممنون از پاسخ های عالی.

    درسته، وقتی فلش خارجی با SPI متصل هستش میشه براش لودر نوشت و پروگرام اش کرد ولی منظور اتون از اینکه قابلیت های QSPI رو نداره سرعت کمتر هستش یا محدودیت دیگه هم داره؟ چون مشکل اینجاست که یک سری کارها حد متوسط هستن و میکرو آنچنانی به لحاظ قدرت پردازشی نیاز نداره و از طرفی میکروهای قیمت پایینتر عمدتا QSPI ندارن پس اگر بشه اطلاعات حجیم رو روی فلش ریخت و با SPI معمولی و DMA خوند اون مشکل هم حل میشه.

    • avatar-image

      Admin

      خواهش می کنم سلامت باشید .
      منظور کارهایی هست که میکرو می تونه با اون اینترفیس انجام بده این موارد داخل آموزش توضیح میدم .الان دیگه آموزش تهیه کردید و صدها مورددیگه گفته میشه داخل آموزش پس حالا که تهیه کردید بهتره اول ببینید آموزش اگر سوالی براتون موند در خدمتم .

  3. avatar-image

    حسام

    سلام. خیلی ممنون از جواب شما و بیزحمت اینها رو هم بررسی کنین که دیگه همه چی برام روشن بشه.

    1) در مورد سوال دوم آموزش آیا به نحوی هستش که کانفیگ مموری مپ رو روی هر میکرو و هر حافظه فلش ای خواستم انجام بدم و محدود به یک نوع میکرو یا یک نوع فلش نشوم. البته من از یک نوع فلش سری W25Q استفاده خواهم کرد ولی با ظرفیت های مختلف و میکرو هم هر میکرو ای ممکنه باشه که QSPI داشته باشه حالا از سری F یا H یا هر چی. منظورم بیشتر این بود چون خیلی آموزشها دیدم میرن کد رو از داخل مثال ST کپی می کنن داخل برنامه خودشون و نمی فهمی که چرا اینطوری شد به نوعی مجبور میشی همون میکرو و همون حافظه رو استفاده کنی.

    2) تا جایی که من مطالعه کردم مموری مپ فقط با QSPI میشه. ولی خیلی میکروهای پر سرعت و خوبی هم هستند که فقط SPI دارند البته میشه فلش رو متصل کرد ولی ظاهرا مموری مپ نمیشه. در این حالت بازم میتونم با لودر اطلاعات روی فلش بریزم و در محیط کد نویسی فرضا اطلاعات ارایه عکس و غیره رو بخونم؟

    3) گاها اطلاعات ای که ممکنه نیاز باشه داخل فلش بارگزاری بشه ممکنه کل یک فایل c. باشه. یا یک تابع طولانی با آرگومانهای مختلف. در این حالت بازم مشکلی نیست؟ چرا حالا می پرسم. بخاطر اینه دیدم در آموزشها کل تست اشون اینه که یک بافر تک بعدی رو میزارن روی حافظه و همونو ازش میخونن ولی در عمل ممکنه خیلی چیزهای پیچیده تر لازم باشه

    • avatar-image

      Admin

      سلام و خواهش می کنم سلامت باشید .
      1- بله محدود به میکرو و چیپ نخواهید بود هیچ کدوم از آموزش های سایت شمارو محدود نمی کنه مثل آموزش برنامه نویسی میکروکنترلرهای stm32 که بعضی افراد نه تنها بین سری ها مختلف میکروها شرکت St میکرو خودشون انتخاب می کنند بلکه بجای میکرو St از شرکت های دیگه مثل NXP , Ti و میکروهای دیگه استفاده می کنند بعد از دیدن آموزش.
      و در مورد نوع فلش هم محدود نخواهید شد و همین موارد که چطور محدود نشید داخل آموزش ها یاد داده میشه .و اصلا کتابخانه ای که می نویسیم جوری نوشته میشه که بتونید ظرفیت های مختلف استفاده کنیدو نکات مربوط بهش توضیح داده میشه . ( این مورد هم فقط برای QSPI نیست و برای تمام آموزش ها مثل انواع حافظه های دیگه و نمایشگر ها و ماژول های توضیح داده شده در آموزش بهمین سبک هست )
      *** (مثال آماده که نیاز نداره اصولا آموزش براش تهیه بشه آماده هست میری استفاده می کنی ولی همه اون محدودیت ها و همیشه نیازمند بودن به مثال آماده و محدودیت هارو اصولا داره با خودش )*** ما کدی از تو جیبمون در نمیاریم بگیم این کد این کار می کنه که شما محدود به میکرو و نوع حافظه بشید .مثال آمادرو برای اینکه کلیات دستون بیاد استفاده می کنیم و همونم باید جوری آموزش داده بشه که انگار خودتون شروع می کنید به نوشتنش .

      2- نه مموری مپ فقط مربوط به QSPI نیست و داخل آموزش توضیح دادم این مورد . و در مورد میکروهایی که محدود به spi هستند بله نمی تونید مموری مپ کنید ولی می تونید لودر براش بنویسید و این مورد هم بهش اشاره می کنیم داخل آموزش وقتی لودر برای QSPI نوشتیم – پس می تونید با میکرو اطلاعات بریزید روش ولی ، قسمت آخر سوالتون که نوشتید آرایه عکس و غیره رو بخونم متفاوت خواهد شد و قابلیتی که QPSI برای اینکار بهتون میده رو نخواهید داشت با SPI یا DualSPI.

      3-این مورد گاهی نیست عموما هست یعنی بیشتر از 80 درصد موارد نیاز به همین کار هست نمونش TouchGFX . ولی در مورد تابع طولانی بله قضیه متفاوت هست باید اون ارتباط حافظه مواردی پشتیبانی کنه که داخل آموزش توضیحش دادم .

  4. avatar-image

    حسام

    با سلام. لطفا این سوالات رو بررسی کنین که قبل از خرید بدانم نحوه آموزش به چه شکل بوده است. ممنونم

    1) آیا شما در مورد حافظه فلش SPI و QSPI از کتابخانه و هدر مجزا برای خواندن و نوشتن استفاده روی فلش کردین یا به شکل مموری مپ کانفیگ می کنین (مقدار حافظه فلش به حافظه فلش میکرو اضافه میشه که در محیط برنامه نویسی دیده میشه)؟

    2) در صورت آموزش مموری مپ آیا از مثالهای بردهای ST استفاده کردین که محدود به میکروها و آی سی فلش بخصوصی میشه (بخاطر آماده بودن کانفیگ هاش) یا اینکه می توانیم کانفیگ کردن رو یاد بگیریم که کانفیگ مموری مپ را روی هر میکرو و با هر حافظه فلش ای استفاده کنیم؟

    3) بعضی میکرو ها پورت QSPI ندارن، در این صورت میشه همه کارهایی که با پورت QSPI انجام میشه با پورت SPI هم روی حافظه فلش انجام داد؟ (بجز کمتر شدن سرعت که طبیعی هستش)

    4) آیا نحوه ساخت بوت لودر یا هر روش دیگری (مثلا پروگرامر خود میکرو) برای پر کردن فلش رو آموزش دادین؟ چون ظاهرا بهتره که فلش از ابتدا پر شده باشه و در محیط برنامه فقط خوانده بشه.

    5) ایا در آموزش میشه یک فایل .c یا ارایه مربوط یه یک عکس یا فایل صوتی و یا هر چیزی که بخواهیم رو راحت به فلش خارجی انتساب بدیم؟

    • avatar-image

      Admin

      سلام وقتتون بخیر . سوالات خوبی پرسیدید و مشخص هست که یکم دید دارید . من بهمون ترتیب جواب میدم .
      1- هر دو مورد آموزش داده شده .
      2-ما تو هیچ آموزشی از هیچ مثال آماده ای استفاده نمی کنیم ( البته بوده تو آموزشی توضیح دادم چطور استفاده کنید برای اینکه استفاده از اونارم آموزش داده باشم ولی مربوط به این آموزش نیست ) – پیکره بندی رو از صفر یاد میگیرد اما مموری مپ باید یک حداقل آشنایی با سخت افزار های دیگه هم داشته باشید بعضی از رجیسترها متفاوت میشند گاهی اوقات ولی بعید میدونم مشکلی داشته باشید به دو دلیل یک روی یک سخت افزار آرم مموری مپ آموزش میبینید و دو نحوه ای که یاد خواهید گرفت .
      3- بله داخل آموزش همین مورد یاد میدم قبل از اینکه QSPI بگیم و بعد بهتون QSPI میگم و تفاوت هاش .
      4- اسمش بهتره بگید لودر خارجی و بله نحوه برنامه نویسی کردنش و ایجاد کردنش آموزش داده میشه و ایجاد می کنیم و استفاده می کنیم و از طریق خود میکرو QSPI پروگرم می کنیم .
      5-بله می تونید هر آرایه ای بعد از دیدن آموزش داخل فلش بارگذاری کنید و انتساب بدید . ( آموزش جامع تر برای کار با فایل های Scatter و loader های IDE های مختلف داخل آموزش معماری که روی سایت هست توضیح دادم ولی اینجا هم مواردی که نیاز دارید یاد میدم )

  5. avatar-image

    آرش

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

    • avatar-image

      Admin

      سلام ممنون و سلامت باشید .
      بله محدودیتی در نوع میکروکنترلر ندارید هر جایی هم به مشکلی برخورد کردید مثل پرسش زیر :

      https://nikelec.ir/forums/topic/%d8%a7%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-cmsis-%d8%a8%d8%a7-%d8%b3%d8%b1%db%8c-m7/

      مطرح می کنید و به طرق مختلف برطرفش می کنیم .

  6. avatar-image

    فرهاد امینی

    سلام
    برای آموزش صفرتاصد پیاده سازی انواع حافظه با STM32 و آموزش ایجاد بوت لودر اختصاصی Custom Bootloader برای میکروکنترلر از (hal(stm32cube استفاده کردید؟

    • avatar-image

      Admin

      سلام .وقت بخیر .
      بله از HAL و برای IDE هم از STM32CubeIDE استفاده شده . البته در نظر داشته باشید توضیحات رجیستر های مورد نیاز هم داده شده و همینطور بعضی جاها که بهتر بوده از این رجیسترها استفاده شده و در صورت نیاز می تونید با توجه به آموخته هاتون از دوره “آموزش برنامه نویسی میکروکنترلرهای stm32 ” که روی سایت قرار داره از طریق رجیستری هم کد بزنید یا از IDE های دیگه استفاده کنید ( ما در آموزش ها محدودیت برای افراد ایجاد نمی کنیم )

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

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

مقدار خواسته شده را وارد کنید 2 + = 4