اطلاعیه

Collapse
No announcement yet.

مشکل اجرا نشدن برنامه بعد از اتصال پاور

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

    مشکل اجرا نشدن برنامه بعد از اتصال پاور

    سلام خدمت همه ی دوستان.
    من با میکرو stm32f103c8t6 کار میکنم.
    قبلا باهاش خیلی کار کردم و مشکلی هم نداشتم ولی اخیرا یک برد زدم که از این میکرو استفاده میکنه.
    وقتی تغذیه میکرو را وصل میکنم چند دقیقه طول میکشه تا برنامه اجرا بشه. (بعد از چند دقیقه باید دکمه RESET را بزنم تا برنامه اجرا بشه)

    + یه مشکل دگ هم وجود داره که نمیدونم به این بحث ربط داره یا نه.
    قبلا که با این میکرو کار میکردم توی cube mx توی قسمت sys گزینه debug را روی no debug میزاشتم و مشکلی نداشتم.
    اما الان اگر روی no debug بزارم در صورتی که boot0 پول اپ باشه برنامه پروگرام میشه اما اجرا نمیشه و باید boot0 را float و boot1 را پول دان کنم تا برنامه اجرا بشه.

    واسه همین مجبور شدم توی cube mx توی قسمت sys گزینه debug را روی JTAG(5 PIN) بزارم . و این کار را هم که کردم مشکلم توی پروگرام کردن حل شد.
    + یه مورد دگ هم هست که قابل ذکره ، من توی این پروژه جدیدم شیش تا سگمنت دارم که توسط بافر 74595 درایو میشند. اما هر چه قدر تلاش کردم نتونستم سگمنت ها را راه بندازم. (البته قبلا این کار را با AVR انجام دادم و مشکلی نبود اما الان جواب نمیده)

    به نظرتون مشکل کجاست؟ و این مشکلات به هم مرتبط اند؟
    ممنون میشم راهنمایی کنید.

    #2
    پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

    نوشته اصلی توسط hosseinghaheri نمایش پست ها
    سلام خدمت همه ی دوستان.
    من با میکرو stm32f103c8t6 کار میکنم.
    قبلا باهاش خیلی کار کردم و مشکلی هم نداشتم ولی اخیرا یک برد زدم که از این میکرو استفاده میکنه.
    وقتی تغذیه میکرو را وصل میکنم چند دقیقه طول میکشه تا برنامه اجرا بشه. (بعد از چند دقیقه باید دکمه RESET را بزنم تا برنامه اجرا بشه)
    ...
    مدارتون رو می تونیم ببینیم؟
    دیباگر داری؟ باهاش چک کردی که ببینی تو این مدت میکرو کار میکنه یا نه؟ ریجسترها رو بررسی کردی؟

    نوشته اصلی توسط hosseinghaheri نمایش پست ها
    ... یه مورد دگ هم هست که قابل ذکره ، من توی این پروژه جدیدم شیش تا سگمنت دارم که توسط بافر 74595 درایو میشند. اما هر چه قدر تلاش کردم نتونستم سگمنت ها را راه بندازم. (البته قبلا این کار را با AVR انجام دادم و مشکلی نبود اما الان جواب نمیده)
    روی پین های میکرو هم سیگنال داری؟ یعنی میکروت کارش رو درست انجام میده یا مشکل از خود میکرو که کار نمیکنن؟
    اینجوری نمیشه خیلی کمک کرد. باید خیلی توضیح بدید.

    دیدگاه


      #3
      پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

      نوشته اصلی توسط روح الامین نمایش پست ها
      مدارتون رو می تونیم ببینیم؟
      دیباگر داری؟ باهاش چک کردی که ببینی تو این مدت میکرو کار میکنه یا نه؟ ریجسترها رو بررسی کردی؟


      روی پین های میکرو هم سیگنال داری؟ یعنی میکروت کارش رو درست انجام میده یا مشکل از خود میکرو که کار نمیکنن؟
      اینجوری نمیشه خیلی کمک کرد. باید خیلی توضیح بدید.
      عکس مدار را اخر پست گذاشتم (ببخشید یکم توهمه)
      دیباگر دارم الان هر کاری کردم حتی بعد از چند دقیقه هم برنامه اجرا نمیشه و وقتی دیباگ میزنم روی یه دستور اسمبلی (0x1FFFF020 4800 LDR r0,[pc,#0] ; @0x1FFFF024) گیر میکنه و امکان ران کردن را هم ندارم.

      در مورد سگمنت ها سیگنال خاصی روی IO ها نیست! وقتی با اسکوپ چک میکنم یه سیگنال معمولی (حالت float) را نشون میده+ نسبت به دست زدن به io ها هم حساسه و وقتی دست میزنم یه چیزایی نشون میده.
      البته زمانی که برنامه اجرا میشد سگمنت ها همه خاموش بودند(بر خلاف کدی که من نوشته بودم ) و io ها نسبت به دست زدن حساس نبود.


      دلیل: ادغام دو پست برای جلوگیری از اسپم

      اینم مدار قسمت سگمنت ها توسط هدر IN به بردی که میکرو روی اون هست متصل میشه

      دیدگاه


        #4
        پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

        الان میکرو برنامه رو اجرا کرد و دوباره یه تست زدم ،
        به طور اتفاقی دستم را روی io هایی که به بافر ها وصل هست گذاشتم! و متوجه شدم که بافری که واسه پایه های a تا g گذاشتم بدون مشکل کار میکنه ولی بافر com ها کار نمیکنه و همه ی سگمنت ها روشن میشه.(البته تا زمانی که دستم را روی io هایی که به بافر ها وصل هست گذاشتم و میکرو را ریست نکردم)

        یک برد دگ از سگمنت ها داشتم روی اون تست کردم همینطور بود، میشه نتیجه گرفت مشکل از pcb یا مدار هست شایدم برنامه،
        مدار را که بعید میدونم مشکلی داشته باشه
        pcb را هم چک کردم ایرادی نداشت و همه روت ها متصل بود.
        + من پایه های بافر دوم که واسه com ها هست را به PB0 , PB1 ,PA7 وصل کردم.

        به نظرتون مشکل چیه؟

        دیدگاه


          #5
          پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

          مهندس عیب مدار شما میکرو هستش که کار نمیکنه. 99% همینه
          علتش هم به نظرم من دیکاپلینگ بد میکرو هستش. میکرو شما 4 تا Vdd داره بعد شما با یه خازن دیکاپلینگ رو انجام دادین(شما برای هر پایه باید یه 100نانو بذارید.). خازن ها هم باید کنار میکرو باشه. من مشکل اینجوری دیدم و حلش کردم. کاملا هم واضح بود. مدار شما هم این مشکل رو داره به نظر من. بعد از رفع این مسائلی که گفتم باید کار کنه و اگه کار نکرد باید دنبال مسائل دیگه باشیم.
          البته بعضی قطعات دیگه هم هستن که شما دیکاپلینگ نکردید. معلومه اصلا تغذیه شون خازن ندارن. یا تغذیه باتری هم خازن نداره.
          من به نظرم با این گفته هام و رفعشون، مشکل شما حل میشه ولی اگه خواستین بیشتر هم فکر میکنم بشه در مورد مدارتون نظر داد. اگه دوست داشتید تا براتون بررسیش کنم. حتی PCBتون رو. من این قسمت رو می ذارم به عهده خودتون که اگه خواستین انجام بدم.

          دیدگاه


            #6
            پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

            نوشته اصلی توسط روح الامین نمایش پست ها
            مهندس عیب مدار شما میکرو هستش که کار نمیکنه. 99% همینه
            علتش هم به نظرم من دیکاپلینگ بد میکرو هستش. میکرو شما 4 تا Vdd داره بعد شما با یه خازن دیکاپلینگ رو انجام دادین(شما برای هر پایه باید یه 100نانو بذارید.). خازن ها هم باید کنار میکرو باشه. من مشکل اینجوری دیدم و حلش کردم. کاملا هم واضح بود. مدار شما هم این مشکل رو داره به نظر من. بعد از رفع این مسائلی که گفتم باید کار کنه و اگه کار نکرد باید دنبال مسائل دیگه باشیم.
            البته بعضی قطعات دیگه هم هستن که شما دیکاپلینگ نکردید. معلومه اصلا تغذیه شون خازن ندارن. یا تغذیه باتری هم خازن نداره.
            من به نظرم با این گفته هام و رفعشون، مشکل شما حل میشه ولی اگه خواستین بیشتر هم فکر میکنم بشه در مورد مدارتون نظر داد. اگه دوست داشتید تا براتون بررسیش کنم. حتی PCBتون رو. من این قسمت رو می ذارم به عهده خودتون که اگه خواستین انجام بدم.
            سلام ممنون از راهنمایی تون
            من خازن ۱۰۰ نانو قرار دادم. تو شماتیک سمت چپ 1117 اونا چهارتا خارنه رویه همه مثل یک خازن دیده میشه.
            یکم فاصله خازن ها از میکرو زیاد هست و میدونمم اینکار اشتباهه ولی توی pcb های قبلی که زدم به این نکته توجهی نداشتم و مشکلی هم نبود.

            بعد الان گاهی اوقات میکرو بعد از چند دقیقه بدونه ریست کردن ران میشه. میشه گفت شاید یک ایرادی تو کد ها باشه ولی متاسفانه این اتفاق خیلی کم میوفته و نمیشه دیباگ کرد، از یه طرف دگ هم اگه میکرو برنامه رو اجرا کرد تا موقعی که vcc را قطع نکنم هیچ مشکلی نیست یعنی هم پروگرام میشه هم برتامه اجرا میشه و توی دیباگ مشکلی دیده نمیشه.

            + خودم هم به تغذیه مدار شک داشتم البته فقط قسمت pcb چون شماتیک را مدارای قبلی کپی کردم.
            ولی خوب الان فک تنها راهش اینه که از اول pcb بزنم.

            دیدگاه


              #7
              پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

              من قبلا چنین مشکلی داشتم اما نه با STM
              اومدم روی پردازنده هیتر گرفتم _ 280 درجه _ چرخشی_مشکل حل شد...
              روی خود آیسی نه پایه ها
              ! Life doesn't get easier , you just get stronger

              دیدگاه


                #8
                پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                نوشته اصلی توسط Amirlopez نمایش پست ها
                من قبلا چنین مشکلی داشتم اما نه با STM
                اومدم روی پردازنده هیتر گرفتم _ 280 درجه _ چرخشی_مشکل حل شد...
                روی خود آیسی نه پایه ها
                ممنونم.
                الان تستش میکنم

                دیدگاه


                  #9
                  پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                  علت عیب مدار را پیدا کردم ولی نمیدونم دقیقا مشکل کجاست.
                  همون طور کع قبلا گفتم بردی که میکرو روش قرار داره با بردی که سگمنت ها روش قرار داره از هم جداست و توسط یک کابل فلت به هم وصل شدند.
                  من کلا سگمنت ها رو از مدار جدا کردم و بعد از اینکه میکرو را پروگرام کردم مشکل تا حدودی حل شد.
                  یعنی الان برنامه بدون ریست کردن اجرا میشه (یعنی همون حالت نرمال) ولی گاهی اوقات تغذیه میکرو را که وصل میکرو برنامه اجرا نمیشه ولی همون موقع وقتی ریست را میزنم برنامه اجرا میشه.(قبلا چند دقیقه طول میکشید)
                  مطمعنا مشکل از تغذیه مدار هست، توی ورودی 12 ولت مدار یک خازن 3300 + 100nf و بعد از 1117 هم 4 تا 100nf و یک 100uf گذاشتم.
                  به نظرتون مشکل از کجا می تونه باشه؟

                  دیدگاه


                    #10
                    پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                    نوشته اصلی توسط hosseinghaheri نمایش پست ها
                    سلام ممنون از راهنمایی تون
                    من خازن ۱۰۰ نانو قرار دادم. تو شماتیک سمت چپ 1117 اونا چهارتا خارنه رویه همه مثل یک خازن دیده میشه.
                    یکم فاصله خازن ها از میکرو زیاد هست و میدونمم اینکار اشتباهه ولی توی pcb های قبلی که زدم به این نکته توجهی نداشتم و مشکلی هم نبود.

                    بعد الان گاهی اوقات میکرو بعد از چند دقیقه بدونه ریست کردن ران میشه. میشه گفت شاید یک ایرادی تو کد ها باشه ولی متاسفانه این اتفاق خیلی کم میوفته و نمیشه دیباگ کرد، از یه طرف دگ هم اگه میکرو برنامه رو اجرا کرد تا موقعی که vcc را قطع نکنم هیچ مشکلی نیست یعنی هم پروگرام میشه هم برتامه اجرا میشه و توی دیباگ مشکلی دیده نمیشه.

                    + خودم هم به تغذیه مدار شک داشتم البته فقط قسمت pcb چون شماتیک را مدارای قبلی کپی کردم.
                    ولی خوب الان فک تنها راهش اینه که از اول pcb بزنم.
                    مهندس خدایی این شماتیک کشیدن هم درست نیست. واقعا الان معلوم نیست چی به چیه. اگه از شماتیک کشیدن عاجزی خب مستقیم برو سراغ طراحی PCB ولی اگه شماتیک رو هم نیاز داری، اینجوری به کارت نمیاد. طراحی مناسب و منظم شماتیک توی کشیدن PCB خوب کمکت میکنه. این مثلا یه مدار STM32F373 هستش که خودم کشیدم. منم کارم خوب نیست ولی حداقل معلومه چی به چیه.



                    در مورد تغذیه میکرو هم باید بگم شاید کار کشیدن از AMS1117 3V3 تا سر حد مرگ شاید کار خوبی نباشه. این خودش یه رگولاتور LDO هستش که مخصوص برای رگوله کردن جریان های با اختلاف ولتاژی کم هستش. شما داری با این 8.7ولت رو میاری پایین. شاید خیلی اصولی نباشه. اگه درست یادم بیاد ولتاژ ورودی ماکس این رگولاتور 15ولت هستش.
                    من به نظرم مشکل شما مدار هستش. هر چیزی می تونه باشه خصوصا تغذیه مدار. اگه عیب از برنامه باشه اصلا نباید ران بشه. یعنی چی یه بار ران میشه و چندبار نمیشه. برای من زیاد با معنی نیست.

                    نوشته اصلی توسط hosseinghaheri نمایش پست ها
                    علت عیب مدار را پیدا کردم ولی نمیدونم دقیقا مشکل کجاست.
                    همون طور کع قبلا گفتم بردی که میکرو روش قرار داره با بردی که سگمنت ها روش قرار داره از هم جداست و توسط یک کابل فلت به هم وصل شدند.
                    من کلا سگمنت ها رو از مدار جدا کردم و بعد از اینکه میکرو را پروگرام کردم مشکل تا حدودی حل شد.
                    یعنی الان برنامه بدون ریست کردن اجرا میشه (یعنی همون حالت نرمال) ولی گاهی اوقات تغذیه میکرو را که وصل میکرو برنامه اجرا نمیشه ولی همون موقع وقتی ریست را میزنم برنامه اجرا میشه.(قبلا چند دقیقه طول میکشید)
                    مطمعنا مشکل از تغذیه مدار هست، توی ورودی 12 ولت مدار یک خازن 3300 + 100nf و بعد از 1117 هم 4 تا 100nf و یک 100uf گذاشتم.
                    به نظرتون مشکل از کجا می تونه باشه؟
                    الان اگه از سوکت JTAG یه تغذیه رگوله و تمییز به مدار بدی مدار کار میکنه؟
                    الان وضعیت خازن های میکرو روی PCB چطوریه؟ چقدر فاصله دارن از میکرو؟

                    دیدگاه


                      #11
                      پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                      ببخشید اون آیسی هایی که سون سگمنت ها بهش وصلن _U1_U2 چی هستن؟؟
                      ! Life doesn't get easier , you just get stronger

                      دیدگاه


                        #12
                        پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                        نوشته اصلی توسط روح الامین نمایش پست ها
                        مهندس خدایی این شماتیک کشیدن هم درست نیست. واقعا الان معلوم نیست چی به چیه. اگه از شماتیک کشیدن عاجزی خب مستقیم برو سراغ طراحی PCB ولی اگه شماتیک رو هم نیاز داری، اینجوری به کارت نمیاد. طراحی مناسب و منظم شماتیک توی کشیدن PCB خوب کمکت میکنه. این مثلا یه مدار STM32F373 هستش که خودم کشیدم. منم کارم خوب نیست ولی حداقل معلومه چی به چیه.

                        در مورد تغذیه میکرو هم باید بگم شاید کار کشیدن از AMS1117 3V3 تا سر حد مرگ شاید کار خوبی نباشه. این خودش یه رگولاتور LDO هستش که مخصوص برای رگوله کردن جریان های با اختلاف ولتاژی کم هستش. شما داری با این 8.7ولت رو میاری پایین. شاید خیلی اصولی نباشه. اگه درست یادم بیاد ولتاژ ورودی ماکس این رگولاتور 15ولت هستش.
                        من به نظرم مشکل شما مدار هستش. هر چیزی می تونه باشه خصوصا تغذیه مدار. اگه عیب از برنامه باشه اصلا نباید ران بشه. یعنی چی یه بار ران میشه و چندبار نمیشه. برای من زیاد با معنی نیست.


                        الان اگه از سوکت JTAG یه تغذیه رگوله و تمییز به مدار بدی مدار کار میکنه؟
                        الان وضعیت خازن های میکرو روی PCB چطوریه؟ چقدر فاصله دارن از میکرو؟
                        در مورد شماتیک ازتون عذر میخوام ، عادت کردم پروژه را توی هم رسم کنم و زیاد عادت به سیمکشی های اضافی ندارم.
                        در مورد تغذیه شما درست میگید 12 ولت واسه ورودی زیاد هست، اما توی برد فضای من محدود هست و نمیتونم ولتاژ را توی دو مرحله کم کنم.تصیمیم داشتم توی برد بعدی از 2576 استفاده کنم.
                        فاصله ی خازن ها از میکرو زیاد مناسب نیست.
                        تصمیم گرفتم یه pcb دگ بزنم و توی اون به این نکات بیشتر توجه کنم.

                        اما الان تقریبا با اجرای برنامه مشکلی ندارم (خازن 3300 ورودی را با 470 عوض کردم و حالا ظاهرا داره کار میکنه. + خازنه 3300 هم سالمه)
                        ولی خوب مشکل بعدی که دارم سگمنت ها هست.
                        نمیدونم چرا توی عمل جواب نمیده ! توی شبیه سازی مشکلی نداشت.
                        این مدار شماتیکش

                        + اینم pcb

                        اگه لازم دونستید پروژش را اپلود کنم.

                        + اینم هم کدی که باهاش سگمنت ها را کنترل میکنم

                        #define st1_l HAL_GPIO_WritePin(GPIOA,ST1_Pin,0);HAL_Delay(10);//latch
                        #define st1_h HAL_GPIO_WritePin(GPIOA,ST1_Pin,1);HAL_Delay(10);//latch
                        #define st2_l HAL_GPIO_WritePin(GPIOA,ST2_Pin,0);HAL_Delay(10);//latch
                        #define st2_h HAL_GPIO_WritePin(GPIOA,ST2_Pin,1);HAL_Delay(10);//latch
                        #define sh1_l HAL_GPIO_WritePin(GPIOA,SH1_Pin,0);HAL_Delay(10);//clk
                        #define sh1_h HAL_GPIO_WritePin(GPIOA,SH1_Pin,1);HAL_Delay(10);//clk
                        #define sh2_l HAL_GPIO_WritePin(GPIOA,SH2_Pin,0);HAL_Delay(10);//clk
                        #define sh2_h HAL_GPIO_WritePin(GPIOA,SH2_Pin,1);HAL_Delay(10);//clk
                        #define d1_h HAL_GPIO_WritePin(GPIOA,DS1_Pin,1);
                        #define d1_l HAL_GPIO_WritePin(GPIOA,DS1_Pin,0);
                        #define d2_h HAL_GPIO_WritePin(GPIOA,DS2_Pin,1);
                        #define d2_l HAL_GPIO_WritePin(GPIOA,DS2_Pin,0);


                        void display(unsigned char value,unsigned char seg){ int i=0;
                        st1_l;
                        for(i=0;i<8;i++)
                        {
                        d1_l;
                        if(value&0x01)d1_h;
                        sh1_h;sh1_l;
                        value>>=1;
                        }
                        st1_h;

                        seg<<=2; //8-6=2
                        st2_l;
                        for(i=0;i<8;i++)
                        {
                        d2_l;
                        if(seg&0x01)d2_h;
                        sh2_h;sh2_l;
                        seg>>=1;
                        }
                        st2_h;
                        }


                        نوشته اصلی توسط Amirlopez نمایش پست ها
                        ببخشید اون آیسی هایی که سون سگمنت ها بهش وصلن _U1_U2 چی هستن؟؟
                        بافر شیفت رجیستر 74hc595 هستند
                        جدیدترین ویرایش توسط hosseinghaheri; ۲۰:۴۲ ۱۳۹۶/۰۴/۰۶.

                        دیدگاه


                          #13
                          پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                          ok ممنون از همه مشکل حل شد

                          دیدگاه


                            #14
                            پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                            نوشته اصلی توسط hosseinghaheri نمایش پست ها
                            ok ممنون از همه مشکل حل شد
                            اگه مشکل رو پیدا کردید، بگید چطور حلش کردید بد نیست. کنجکاو هستم بدونم.

                            دیدگاه


                              #15
                              پاسخ : مشکل اجرا نشدن برنامه بعد از اتصال پاور

                              نوشته اصلی توسط روح الامین نمایش پست ها
                              اگه مشکل رو پیدا کردید، بگید چطور حلش کردید بد نیست. کنجکاو هستم بدونم.
                              مشکل تغذیه با خازن 470 حل شد.
                              مشکل سگمنت ها هم این بود که توی کانفیگ io ها بی دقتی کرده بودم و دوتا پایه های که ماله GPIOB بود رو GPIOA کانفیگ کرده بودم.
                              به هر حال بسیار ممنون از لطفتون که وقت گذاشتید.
                              هم چنین از راهنمایی های بقیه دوستان هم بسیار ممنونم.

                              دیدگاه

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