اطلاعیه

Collapse
No announcement yet.

برنامه نویسی stm32f103

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    برنامه نویسی stm32f103

    سلام
    من میکرو PIC کار کردم قبلا بعد من اینجوری برنامه نویسی میکردم که از رویه دیتاشیت میکرو تمام رجیستر ها و بایت و بیت هایمیکرو رو تعریف میکردم و مستقیم از خود بیت ها برای برنامه نویسیم استفاده میکردم از دستورات استفاده نمی کردم .
    الان ولی دیتا شیت این میکرو Stm32f103ret6 رو مطالعه کردم ادرس حافظه و هیچ کدوم از رجیستر داده ها رو ننوشته تویه دیتا شیتش این اطلاعات رو باید ازکجا بدست بیارم و اینکه شما دوستان خودتون چطور برنامه می نویسید؟
    با تشکر

    #2
    پاسخ : برنامه نویسی stm32f103

    با سلام
    برای به دست اوردن اطلاعاتی که گفتین باید به رفرنس منوال st برای میکرو مورد نظر مراجعه کنید
    برای برنامه نویسی با توجه به حجم بالای رجیستر ها و زمان بر بودن انجام پروسه ای که بالا ذکر کردین، معمولا از فایل هایی اماده ای استفاده میشه که محیط توسعه برای مثال keil در هنگام ایجاد پروژه اون رو در اختیار میزاره و از اون استفاده میشه، که معمولا هدری است که به برنامه اضافه میشه، بعد از اضافه کردن این تعاریف هم دو راه پیش پای شما برای توسعه نرم افزار هست، استفاده از رجیستر ها و استفاده از cmsis، با رجیستر که اشنایی دارین و cmsis رو هم جستجو کنید مطلب در موردش هست، در کل با توجه به قدرت بالای پردازنده های ارم و اینکه معمولا نرم افزار های به نسبت پیچیده تری برای اون ها نوشته میشه، هر گونه تلاش برای کاهش زمان تولید نرم افزار و رسیدن به هدف نهایی پسندیده هست، که cmsis یکی از این تلاش هاست
    در مورد میکرو های st هم این شرکت نرم افزاری رو معرفی کرده به نام stm32cubeMX که میتونه تسهیل کننده پیکر بندی اولیه میکرو برای انجام پروژه باشه
    The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

    دیدگاه


      #3
      پاسخ : برنامه نویسی stm32f103

      نوشته اصلی توسط hessam2013
      با سلام
      برای به دست اوردن اطلاعاتی که گفتین باید به رفرنس منوال st برای میکرو مورد نظر مراجعه کنید
      برای برنامه نویسی با توجه به حجم بالای رجیستر ها و زمان بر بودن انجام پروسه ای که بالا ذکر کردین، معمولا از فایل هایی اماده ای استفاده میشه که محیط توسعه برای مثال keil در هنگام ایجاد پروژه اون رو در اختیار میزاره و از اون استفاده میشه، که معمولا هدری است که به برنامه اضافه میشه، بعد از اضافه کردن این تعاریف هم دو راه پیش پای شما برای توسعه نرم افزار هست، استفاده از رجیستر ها و استفاده از cmsis، با رجیستر که اشنایی دارین و cmsis رو هم جستجو کنید مطلب در موردش هست، در کل با توجه به قدرت بالای پردازنده های ارم و اینکه معمولا نرم افزار های به نسبت پیچیده تری برای اون ها نوشته میشه، هر گونه تلاش برای کاهش زمان تولید نرم افزار و رسیدن به هدف نهایی پسندیده هست، که cmsis یکی از این تلاش هاست
      در مورد میکرو های st هم این شرکت نرم افزاری رو معرفی کرده به نام stm32cubeMX که میتونه تسهیل کننده پیکر بندی اولیه میکرو برای انجام پروژه باشه
      خیلی ممنون دوست عزیز
      نرم افزار stm32cubemx ای که ذکر کردیدنرم افزاری هست که همان کار keil یا IAR رو انجام میده یعنی بجای اون ها استفاده میشه یا نه ؟
      در مورد برنامه نویسی هم عرضکنم که من خودم در ccs با ویزارد اولش یک برنامه باز میکردمو هدری رو که بهم میداد کپی می کردم و سپسرجیسترهایی رو که می خواستم در ادامه ی اون تعریف می کردم و در واقع یک هدر بنظرم جامع تری درست می کردم و مستقیما از رجیستر ها و بیت های آن ها استفاده میکردم.

      دیدگاه


        #4
        پاسخ : برنامه نویسی stm32f103

        نه قرار نیست جای keil و ... رو بگیره، در حقیقت یک ویزارد با قابلیت های بیشتر هست، مثلا تنظیم گرافیکی پین ها، روشن و خاموش کردن پریفرال ها، تنظیم گرافیکی کلاک برای بخش های مختلف میکرو، تنظیم مواردی مثل استفاده از اینتراپت و یا پارامتر های ارتباط مثل باود ریت و ... برای پروتکل های ارتباطی و مواردی مثل محاسبه میزان مصرف و ...، همون طور که گفتم صرفا ویزار هست و میتونه شروع به کار برای یک پروژه رو سریع تر بکنه، بعد از تنظیمات خودش میپرسه که با چه محیطی کار می کنید و مثلا میگین کیل و یک پروژه اماده شامل تنظیمات شما و فایل های مورد نیاز اماده می کنه و ذخیره می کنه، بعد با کیل باز می کنین و شما تو اون کد میزنی،
        فکر کنم این هدر ها به اندازه کافی جامع هستن نیازی به توسعه نداشته باشن
        The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

        دیدگاه


          #5
          پاسخ : برنامه نویسی stm32f103

          نوشته اصلی توسط hessam2013
          نه قرار نیست جای keil و ... رو بگیره، در حقیقت یک ویزارد با قابلیت های بیشتر هست، مثلا تنظیم گرافیکی پین ها، روشن و خاموش کردن پریفرال ها، تنظیم گرافیکی کلاک برای بخش های مختلف میکرو، تنظیم مواردی مثل استفاده از اینتراپت و یا پارامتر های ارتباط مثل باود ریت و ... برای پروتکل های ارتباطی و مواردی مثل محاسبه میزان مصرف و ...، همون طور که گفتم صرفا ویزار هست و میتونه شروع به کار برای یک پروژه رو سریع تر بکنه، بعد از تنظیمات خودش میپرسه که با چه محیطی کار می کنید و مثلا میگین کیل و یک پروژه اماده شامل تنظیمات شما و فایل های مورد نیاز اماده می کنه و ذخیره می کنه، بعد با کیل باز می کنین و شما تو اون کد میزنی،
          فکر کنم این هدر ها به اندازه کافی جامع هستن نیازی به توسعه نداشته باشن
          خیلی ممنون
          یک سوال دیگه ای که دارم این است که من هدر برد این میکرو رو از eca گرفتم و پرسیدم گفتن ک boot loader نداره این میکرو اما در دیتا شیت این میکرو این جمله است
          The boot loader is located in system memory. It is used to reprogram the Flash memory by
          using USART1
          که در قسمت boot modeنوشته شده این یعنی داره دیگه؟؟؟
          بعد در سایت IAR قسمت میکروهایی که ساپورت میکنهرو برای این میکرو نوشته flash loaderداره
          اگه داره کار باهاش چطوریه باید سورس برنامه از جایی بگیرم یا نه
          برای کارم آخر لازم دارم که حتما بدون پروگرامر بتونم اطلاعات بهش بدم یعنی اگه نداشته باشه باید خودم بنویسم
          یکم توضیح در این مورد می خواستم
          با تشکر

          دیدگاه


            #6
            پاسخ : برنامه نویسی stm32f103

            خواهش، باید دید، معمولا تمام میکرو های st بوت لودر دارن، مگر پکیج های خاصی از اونا، مثلا میکرویی هست که در پکیج 64 پایه بوت لودر نداره اما 100 پایه داره، در حالی که میکرو یکیه، توی نت اطلاعات هست
            اما امتحانش اسونه، stm ها برای ورود به مود بوت لودر یه پین دارن که باید در ولتاژ خاصی باشه ،اگه قراره میکرو بوت لودر داشته باشه، باید یه جامپری یا سوییچی روی برد مخصوص این کار باشه، اگه هست پس میشه، بود بگین که بگم چطور با بوت لودر کار کنید، این احتمال هم هست که مبکرو بوت لودر داشته باشه اما طراح برد بیاد و فقط رابط jtag برای کار با پروگرمر براش بذاره و بیخیال بوت لودر بشه، در این صورت خودتون باید برد بزنید یا بردتون رو دستکاری کنید،
            The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

            دیدگاه


              #7
              پاسخ : برنامه نویسی stm32f103

              نوشته اصلی توسط hessam2013
              خواهش، باید دید، معمولا تمام میکرو های st بوت لودر دارن، مگر پکیج های خاصی از اونا، مثلا میکرویی هست که در پکیج 64 پایه بوت لودر نداره اما 100 پایه داره، در حالی که میکرو یکیه، توی نت اطلاعات هست
              اما امتحانش اسونه، stm ها برای ورود به مود بوت لودر یه پین دارن که باید در ولتاژ خاصی باشه ،اگه قراره میکرو بوت لودر داشته باشه، باید یه جامپری یا سوییچی روی برد مخصوص این کار باشه، اگه هست پس میشه، بود بگین که بگم چطور با بوت لودر کار کنید، این احتمال هم هست که مبکرو بوت لودر داشته باشه اما طراح برد بیاد و فقط رابط jtag برای کار با پروگرمر براش بذاره و بیخیال بوت لودر بشه، در این صورت خودتون باید برد بزنید یا بردتون رو دستکاری کنید،
              رویه برد دوتا دیپ سوییچ داره که یکیش زده usb و دیگری boot0 اما از خود پشتیبانی eca پرسیدم گفت این بوت لودر نداره
              اما خودم شک کردم با توجه به به دیتا شیت که همون متنی که نوشتم براتون و همچنین در نرم افزار IAR که تیک زده بود این گزینه رو
              البته شاید تعداد پایه های این کم است شاید نداشته باشه ولی دیتا شیت رو ک بررسی کردم تنها فرقشون در این بود که مثلا 144 پینیه boot0 و boot1 داشتفقط boot 1 رو اضافه داشت ک نوشته بود که دوتا حافظه فلش داره فقط همین
              ممنون میشم باز راهنمایی کنید

              دیدگاه


                #8
                پاسخ : برنامه نویسی stm32f103

                اگه میگین بوت 1 شاید حق با eca باشه، در این زمینه تجربه و اطلاع کافی ندارم، اما باز میشه چک کرد، نرم افزار flash loader demonstrator. رو دان کنید، یوزارت 1 رو به پیسی متصل کنید و در نرم افزار پورت کامی که یوزارت 1 به اون وصله رو امتخاب کنید، دیپ سوییچ رو تو حالت بوت بذارین، (خلاف حالت اجرای عادی برنامه )حالا برد رو روشن کنید و تو نرم افزار نکست کنید، اگه بوت لودر داشته باشه میکرو شناسایی میشه
                The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                دیدگاه


                  #9
                  پاسخ : برنامه نویسی stm32f103

                  نوشته اصلی توسط hessam2013
                  خواهش، باید دید، معمولا تمام میکرو های st بوت لودر دارن، مگر پکیج های خاصی از اونا، مثلا میکرویی هست که در پکیج 64 پایه بوت لودر نداره اما 100 پایه داره، در حالی که میکرو یکیه، توی نت اطلاعات هست
                  اما امتحانش اسونه، stm ها برای ورود به مود بوت لودر یه پین دارن که باید در ولتاژ خاصی باشه ،اگه قراره میکرو بوت لودر داشته باشه، باید یه جامپری یا سوییچی روی برد مخصوص این کار باشه، اگه هست پس میشه، بود بگین که بگم چطور با بوت لودر کار کنید، این احتمال هم هست که مبکرو بوت لودر داشته باشه اما طراح برد بیاد و فقط رابط jtag برای کار با پروگرمر براش بذاره و بیخیال بوت لودر بشه، در این صورت خودتون باید برد بزنید یا بردتون رو دستکاری کنید،
                  دوست عزیز
                  من فکر می کنم که رویه این هدر بردم نزاشته جامپری رو برای پروگرم کردن
                  شما لطف کنید بگید چطور خودم پروگرم کنم به همه ی پایه ها هم دسترسی دارم

                  دیدگاه


                    #10
                    پاسخ : برنامه نویسی stm32f103

                    توضیح شناخت توسط نرم افزارو دادم، منوال رو نگاه کنید، برای ورور به بوت لودر ولتاژ بوت 0 و بوت 1 مهمه، کافیه اون ولتاژ ها رو فراهم کنید، اینکه این ولتاژ ها های یا لو باشن تو منوال هست
                    The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                    دیدگاه

                    لطفا صبر کنید...
                    X