نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
Avatar

آموزش stm32f103 جلسه ۳ کانفیگ کردن کلاک

سلام همگی : از جلسه قبلی اموزش فیدبکی دریافت نکردم اگه مشکلی داره اعلام کنید اصلاح کنم؛ جلسه رو با یه صلوات شروع میکنیم (اللهم صل علی محمد و ال محمد )؛ خب این جلسه قراره که یکم از اطلاعات جلسات قبلی استفاده کنیم و بریم سراغ کانفیگ کردن کلاک
آموزش stm32f103 جلسه 3 کانفیگ کردن کلاک

آموزش stm32f103 جلسه ۳ کانفیگ کردن کلاک


ی مرور کنیم به جلسه قبلی، یادمونه که گفتیم قرار بر اینه از محیط گرفیکی کیوب ببینیم در عمل چیکار قراره بکنیم و ی سری توضیحات راجب کریستال دادیم حالا قراره این کریستال رو توی برنامه به کار ببریم چجوری؟ خیلی سادس فقط یک تابع براش تعریف کنیم.
خب برای اشنایی با توابه کانفیگ کلاک میریم سراغ هدر فایل rcc
 
آموزش stm32
 
پروژه stm32
 
یکم میایم پایین تا به تعریف توابع میرسیم(خط۶۴۷ )

کلی تابع هستش نیازی نیست بدونیم همشون چیکار میکنن ولی من اونایی که لازمه رو تعریف میکنم.
یادتونه دو نوع کلاک داشتیم داخلی بود و خارجی ؟

این تابع میاد خارجی یا داخلی بودن کلاک رو مشخص میکنه ما برای کلاک خارجی اینجوری ستش میکنیم

برای وصل شدن کلاک یک تاخیر کوچولو لازم هست که برای اون هم یک تابع اماده داریم به این شکل

اگر این تابع خروجی SUCCESS بهمون برگردوند میتونیم برای ادامه کار بریم؛ پس مینویسیم :

حالا باید به میکرو کنترلر بگیم کریستال ورودی رو ضرب در چقد بکن برای کلا اصلی (اصطلاحا pll)، که برای اون هم تابع زیر رو داریم :

چون کریستال ورودی ۸ مگا هرتز دارم و میخوام ۷۲ مگا هرتز رو روی میکرو ست کنم پس داریم : ۷۲/۸=۹
یعنی ۸ مگا هرتزی که کریستال میسازه رو ۹ برابر کنیم به ۷۲ مگاهرتز دست پیدا میکنیم پس تابع pll رو اینجوری کانفیگ میکنیم :

و حالا باید خود pll رو فعال کنیم که برای اینکار این تابع رو داریم :

حالا باید این تابع اینجوری کانفیگ کنیم و بهش ورودی بدیم :

حالا باید منتظر بشیم تا pll فعال بشه برای این کار باید مقدار فلگ رو با این تابع بخونیم و منتظر بشیم تا set بشه؛ مقدار فلک با تابع زیر خونده میشه :

خب برای منتظر بودن هم اینجوری عمل میکنیم :

حالا باید با تابع RCC_SYSCLKConfig سیستم کلاک سورس یا SYSCLKSource رو به خروجی کلاک PLL وصل کنیم؛ برای این کار هم از تابع زیر استفاده میکنیم :

حالا برای کانفیگ هم مقدار تابع رو اینجوری وارد میکنیم :

حالا باید صبر کنیم تا این خط هم کارش تموم بشه و کلاک متصل بشه برای این کار هم اینجوری مینویسیم :

به همین سادگی الان میکرو شروع به کار میکنه با تمام قدرتش ۷۲ مگاهرتز؛ حالا اینارو میکنیم توی یک تابع به اسم RCC_Configuration مینویسیم؛ که این تابه ورودی نداره و خروجی هم نداره پس اینجوری مینویسم :

حالا کانفیگ های بالا رو هم توی این تابع فراخوانی میکنیم تا تابع کامل بشه و کل خروجی تابع به این شکل میشه :

که رو به روی هر خط هم توضیحاتش کامنت شده، اینم بگم که اینا اصلا ترس نداره بعدا میفهمیم این قابلیت ها چقد کاربردی هستند…
حالا باید تابعی که نوشتیم رو توی تابع مین برنامه فراخوانی کنیم تا کلاک کانفیگ بشه؛ اینم کل توابع اصلی برناممون اینجوری میشه :

و تمام دیگه میکرو رسما داره کار میکنه، به همین سادگی victory
فایل پروژه تا اینجا رو هم میتونید از زیر دانلود کنید :

 

مطلب جلسه آینده :
توی جلسه آینده هم gpio ها رو پیکر بندی میکنیم و یک بلینکر رو میسازیم.
این هم در نظر داشته باشید من میکرویی که دارم stm32f103c8t6 هستش و شما برای میکروی خودتون میتونید این پروژه رو بسازید و طبق اموزش جلو برید.
اگر اموزش مشکلی هم داره بهم بگید حتما درستش میکنم تا مفید تر واقع بشه کار .
ما هم توی دعاهاتون از یاد نبرید… smile
با ارزوی موفقیت برای تک تکتون heart
یا علی

گروه پرسش و پاسخ الکترونیکی در سروش
تعداد مطالب : 20 تا
Avatar به شما توصیه میکنم سربازی نرید / با این قیمت دلار نمیشه الکترونیک کار کرد / برای مهاجرت به USA با لاتاری سال 2020 برنامه هایی دارم افرادی که در این ضمینه با من موافق هستن (تحقیقات کامل خودتون رو از اینترنت انجام بدید و سوالت رو از من نپرسید) برای ایجاد کمپین و مهاجرت دسته جمعی مشخصات ارتباطی خودتون برای من ایمیل کنید zamanimahdi@icloud.com در سابجکت ایمیل حتما بنویسید "لاتاری" به امید موفقیت :)
ارسال دیدگاه
17

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    آیدین

    سلام
    آقا یه چند تا سوال ابتدایی داشتم در حد مهد کودک: 1: تفاوت cmsis با std periph driver چیه؟ از این جهت میگم که هم میشه در کیل بر مبنای cmsis پروژه ایجاد کرد هم میشه از پوشه همراه این درایور یکی یکی فایل ها رو اد کرد. 2-: کلاک سیستم رو در خیلی از پروژه های اماده ندیدم تنظیم کنن فقط در تنظیمات کیل مقدار کریستال فقط نوشته شره و یک فایل system_stm32f4xx.c در پروژه ها موجود هست که تنظیمات کلاک ظاهرا داره اما نه در تابع main اینکلود شده و نه تابعی از اون فراخوانی. با اینکه برنامه ها درست کار می کنند چطور میشه بدن تنظیم کلاک؟3: توی کیل زمان ایجاد پروژه دو روش وجود داره یکی که حالت کلی انتخاب سری رو داره و بعد پنجره cmsis باز میشه و دومی خود میکرو رو انتخاب می کنیم. اولین حالت چه کاربردی داره؟

  2. Avatar

    مهمان

    amir

    با سلام و خسته نباشید من هر کاری میکنم نمیتونم MCO که به پین pa8 متصل است را راه اندازی کنم و کلاک ازش بگیرم اگه میشه راه نمایی کنید

  3. Avatar

    مهمان

    امید

    سلام خسته نباشید
    ممنونم بابت آموزشاتون
    یه سوال ما مگه توی کیوب از طریق محیط گرافیکی فرکانس 72 مگاهرتز رو(به طور مثال) نمیسازیم یعنی به واحد pll اومدیم ضریب 9 رو دادیم و با کریستال 8 مگ فرکانس 72مگاهرتز رو ساختیم. خب بعد از اینکه پروژه توسط کیوب اجرا شد مگه کانفینگ کلاک هم کدش توسط خود کیوب نوشته نمیشه؟ چه نیازیه ما دستی دوباره کد ها رو بنویسیم؟ no
    یا منظورتون این بوده که اگه کانفینگش رو با کیوب انجام ندادیم میتونیم کدشو خودمون بنویسیم؟ smile

  4. Avatar

    مهمان

    MI

    سلام خدمت استاد عزیز
    میشه خروجی یه پایه ی stm32f103c8 با فرکانس 50mhz (ماکزیمم فرکانس ) high / low بشه ؟
    چرا من نمیتونم ؟؟

  5. Avatar

    مهمان

    راوندی

    سلام خدا قوت
    سوالی که دارم اینه که آیا برنامه بوت لودر در میکروهای STM32 در هنگام ساخت در میکرو قرار داده شده یا مثل میکروهای AVR باید خودمون ابتدائا پروگرام کنیم؟
    با تشکر از مطالب خوبتون

  6. Avatar

    مهمان

    parviz

    good wink wink

  7. Avatar

    مهمان

    parviz

    خدا خیرت بده مهندس

  8. Avatar

    مهمان

    فاطمه برجی

    سلام خسته نباشید مطالبتون خیلی خوبه فقط اینکه اگه بشه مطالب هر جلسه pdf شه تا بتونیم راحت پرینت بگیریم خیلی ممنون میشیم
    واینکه تاریخ انتشار جلسه بعد هم ذکر شه ممنون

    • Avatar

      نویسنده این مطلب

      مهدی زمانی

      در اخرین جلسه فایل PDF موجود هست

  9. Avatar

    مهمان

    امین

    با سلام از این که زحمت می کشید و این آموزش ها رو قرار میدید بسیار تشکر می کنم و عجر شما با خداوند که توفیق روز افزون به شما و خانواده هاتون بده. راستش بعد از ۱۰ سال کار با سری های AVR امروز فکر کردم که باید اپدیت بشم و خلاصه این شد که اردوینو و ارم رو باهم شروع کردم. چقدر خوب بود که بردی تهیه می کردید و آموزش هاتونو بر میبنای اون برد قرار میدادید و البته سود مناسبی از فروش برد ها برای ادامه فعالیت سایت بدست میاومد. این آموزش برای تازه کارها یکم گنگ بود شاید بشه گاهی از جاها که نیاز به توضیح بیشتر داره شما فایل صوتی قرار بدید و هم در وقت خودتون و هم در وقت خواننده صرفه جویی کنید. در ضمن میتونید فایل شبیه سازی پروتوس رو هم قرار بدید تا نیاز نباشه هر شخصی که مثلا در فلان شهرستان هست و توان مالی خانواده اش نمی رسه برد های ارم رو تهیه کنه از این آموزش بی بهره بمونه(نمونه اش خود من ۱۰ سال پیش نمیتونستم کتاب AVR بخرم با بدبختی یادگرفتم)

    • Avatar

      نویسنده این مطلب

      مهدی زمانی

      سلام مهندس وقت بخیر
      من خودمم بچه شهرستان هستم و این سختی ها متاسفانه برای همه ما شهرستانی ها هستش ولیکن با یکم تلاش این مشکلات قابل رفع شدنه راجب اپدیت بگم شما اردونیو رو کنار بزارید خیلی موفق تر خواهید بود و اردونیو به درد پروژه های بزرگ تر و تجاری نمیخوره راجب مبحثی که بردی تهیه بشه و اموزش ها بر اساس اون باشه پیشنهاد خوبی بود با اقا مهدی راجب فروشگاه سایت صحبت میکنم اما اگه شما مشتاق هستید میتونم برای شما یک برد جدا مونتاژ کنم بفرستم ( بردی برای تست های خودم به صورت دم دستی طراحی کردم منتظر بازگشایی شرکت ها در بعد از تعطیلات عید نوروز هستم اگر دوست داشتید یک برد اضافه برای شما هم چاپ میکنم) راجب نظر خوب و سازندتون ازتون تشکر میکنم smile موفق باشید ❤

  10. Avatar

    مهمان

    موسی خانی

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

  11. Avatar

    مهمان

    بهزاد

    سلام
    من چند وقته زیاد سرمیزنم به سایتت . راستش دارم هرچی سایت و مطلب در مورد ARM هستو زیرو ورو میکنم بلکه سر در بیارم چی به چیه . تا هفته پیش نمیدونستم HAL چیه CMSIS چیه خوردنیه یا پوشیدنی !! . به لطف سایت شما و دیگران الان کمی بهتر شدم . سایت شما خیلی ساده و خوب توضیح داده برای من تازه کار خیلی عالیه . دستتون درد نکنه .مشتاقیم ادامه بدی
    (بفرما اینم فیدبک :)) نگی کسی حمایت نمیکنه دوست من )

    • Avatar

      نویسنده این مطلب

      مهدی زمانی

      چششششششششششششم smile

  12. Avatar

    مهمان

    محمد

    خداقوت پهلوان ۲۲بهمن هم تبریک میگم..

  13. Avatar

    مهمان

    محمد

    سلام
    داداش او خط 647 هست ملت رو گیج نکن
    فدات

    • Avatar

      نویسنده این مطلب

      مهدی زمانی

      بله وییرایش شد