آموزش ARM, کارگاه آموزشی

راه اندازی micro SD در میکروکنترلرهای STM32

در بخش‌­های قبلی مفاهیم مورد نیاز برای استفاده از کارت حافظه SD بیان گردید. در این قسمت نحوه راه اندازی و استفاده از آن در میکروکنترلرهای stm32 بیان شده است.

فهرست مطالب

سخت افزار مورد نیاز

  • میکروکنترلر دارای پورت SDMMC
  • پروگرمر
  • RAM reader

نرم افزار مورد نیاز

  • STM32CubeMX
  • IAR

نحوه اتصال

در زیر ترتیب پایه های حافظه Micro SD نشان داده شده است.

pinout کارت حافظه micro SD
pinout کارت حافظه micro SD
شماتیک قسمت کارت حافظه
شماتیک قسمت کارت حافظه
نحوه اتصال کارت حافظه micro SD بورد F746GDISCOVERY32
نحوه اتصال کارت حافظه micro SD بورد F746GDISCOVERY32

تنظیمات پروژه در نرم افزار STM32CubeMX

برای تنظیم پورت SDMMC به قسمت SDMMC1 بروید. سپس از قمست Mode گزینه SD 4bits Wide bus را انتخاب کنید. در این پروژه از مد 4 بیتی است. در صورتیکه از مد 1 بیتی استفاده می­کنید گزینه SD 1 bit را انتخاب نمایید. در شکل 6 چگونگی تنظیم واحد SDMMC نشان داده شده است.

نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش چهارم)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش چهارم)

تنظیمات FATFS

جهت فعال نمودن کتابخانه FATFS ابتدا از قسمت Middleware بر روی گزینه FATFS (شکل 7) کلیک کنید. سپس در قسمت Mode گزینه SD Card (شکل 8) را انتخاب نمایید. در شکل زیر نحوه تنظیم سایر پارامترهای مربوطه نشان داده شده است.

چگونگی انتخاب کتابخانه FATFS در نرم افزار stm32cumbemx
چگونگی انتخاب کتابخانه FATFS در نرم افزار stm32cumbemx
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش اول)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش اول)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش دوم)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش دوم)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش سوم)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش سوم)

سپس به سربرگ Platform Settings بروید. در این بخش تنظیمات مرتبط با پایه GPIO که برای تشخیص حضور کارت حافظه انجام می­شود. همانطور که در شکل  نشان داده شده است پایه PC13 برای این منظور در نظر گرفته شده است. لذا در سربرگ Platform Setting قسمت Found Solution بر روی پایه PC13 تنظیم شده است.

نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش سوم)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش سوم)

در نهایت به سر برگ Project Manager بروید. در قسمت­های Project Name و Project Location به ترتیب نام و مسیر ذخیره برنامه را تعیین کنید. در قسمت Toolchain/ IDE گزینه EWARM را انتخاب نمایید. در نهایت روی گزینه Generate Code کلیک کنید تا کد اولیه برنامه تولید شود.

نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش چهارم)
نحوه تنظیم کتابخانه FATFS در نرم افزار stm32cubemx (بخش چهارم)

توسعه نرم افزار

بعد از تولید ایجاد پروژه نوبت به گسترش نرم افزار می­رسد. در این نرم افزار ابتدا سخت افزار و درایور FATFS تنظیم می­شوند. برای استفاده از کارت حافظه باید ابتدا mount شود. با mount کردن کارت حافظه کلیه فایل­ها و دایرکتوری­های کارت حافظه در اختیار نرم افزار قرار می­گیرد. برای این منظور از تابع f_mount استفاده می­شود.

در این مثال آموزشی ابتدا با استفاده از تابع f_open یک فایل به نام example.txt باز می­شود. لازم به ذکر است که در صورتیکه فایل مورد نظر در حافظه وجود داشته باشد فایل باز می­شود، در غیر اینصورت فایل جدیدی ایجاد می­گردد. سپس با استفاده از تابع f_write رشته Hello World در آن نوشته می­شود. در نهایت با فراخوانی تابع f_close فایل مورد نظر  بسته شده است. این روال دقیقا مشابه کار با فایل در سایر محیطهای دیگر نظیر C++ است.  در کد زیر تابع main نشان داده شده است.

نتیجه برنامه

مشاهده فایل ایجاد شده در کارت حافظه SD
مشاهده فایل ایجاد شده در کارت حافظه SD

نظرتان را درباره این مقاله بگویید 28 نظر

راه اندازی micro SD در میکروکنترلرهای STM32

1 دیدگاه در “راه اندازی micro SD در میکروکنترلرهای STM32

  1. بهنام گفت:

    لطفا سرس کدی که نوشتین هم بذارین نوع صدا کردن تابع و پیکربندیش مهمه. توضیح که کفایت نمیکنه

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

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

14 − دوازده =