NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3025 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 8 از 8

موضوع: ریست شدن خود به خود میکرو stm32f103c8t6

  1. #1
    کاربر فعال mohammadne آواتار ها
    تاریخ عضویت
    Dec 2013
    نام
    محمد پورخلیلی
    نوشته ها
    276
    تشکر
    43
    تشکر شده 214 بار در 132 پست

    پیش فرض ریست شدن خود به خود میکرو stm32f103c8t6

    سلام این شماتیک اتصال مقاومت بالاکش به پایه ریست میکرو هست. برای میکروهای STM32F103RET6 اصلا این مقاومت و خازن رو قرار نمیدم هیچ مشکلی هم پیش نمیاد اما این میکرو وقتی مقاومت و خازن نمیذارم یا وقتی بین مقادیر 470 اهم تا 10 کیلو قرار میدم میکرو با فاصله زمانی رندم ریست میشه. تنها راهش اینه که پین ریست رو به تغذیه 3.3 اتصال کوتاه کنم . تا دیگه میکرو بدون مشکل کار کنه و ریست نشه. از PCB هم فکر نکنم باشه چون روی یه برد دیگه هم این مشکل رو داشتم الان دیگه مطمعن شدم از PCB نیست. کسی راهکاری به ذهنش نمیرسه ؟؟؟


  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    تغذیه ت تا چند آمپر می تونه جریان بده؟ ولتاژ روی پایه رست و خط تغذیه رو رصد کن ببین چطورین؟(موقعی که رست میشه) با مولتی متر اندازه بگیر ببین کل تغذیه میکرو با احتساب اون پایه رست(با مقاومت و بدون مقاومت) چند میلی آمپره؟ آیا تغییراتی در جریان یا سطح ولتاژ بین هر رست میبینی؟ مقاومت رو کم و زیاد کنی تغییری در زمان رست شده بوجود میاد؟

    اون یه برد دیگه همین بودش؟(نسخه دیگه از همین برد؟)

  4. تشکرها از این نوشته :


  5. #3
    کاربر فعال mohammadne آواتار ها
    تاریخ عضویت
    Dec 2013
    نام
    محمد پورخلیلی
    نوشته ها
    276
    تشکر
    43
    تشکر شده 214 بار در 132 پست

    پیش فرض

    ورودی یه سوییچینگ 12 ولت 5 امپر که با عبور از رگولاتور lm1085 به 5 ولت کاهش پیدا میکنه و پس از اون با عبور از 1117-3.3 به تغذیه میکرو وصل میشه که تا یک امپر نباید مشکلی باش. جریان مصرفی میکرو هم حدود 20 میلی امپر. از خازن 10 و 1000 میکرو و 4 عدد خازن 100 نانو اطراف میکرو برای صافی استفاده کردم. کریستالم هم گذاشتم. ولتاژ پین ریست رو هم زمانی که مقاومت 1k قرار داده بودم اندازه گرفتم 3.3 ولت بود، این دو برد باهم تفاوت دارن. جریان عبوری بین پین ریست و تغذیه 3.3 رو اندازه گیری میکنم نیم میلی امپر نشون میده !! پین ریست هم به نقطه دیگه ای مثل کلید فشاری متصل نیس. به اسیلوسکوپ دسترسی ندارم فقط یه لاجیک انالیزر دارم برم با اون تست کنم ببینم چیزی متوجه میشم.

  6. #4
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mohammadne نمایش پست ها
    ورودی یه سوییچینگ 12 ولت 5 امپر که با عبور از رگولاتور lm1085 به 5 ولت کاهش پیدا میکنه و پس از اون با عبور از 1117-3.3 به تغذیه میکرو وصل میشه که تا یک امپر نباید مشکلی باش. جریان مصرفی میکرو هم حدود 20 میلی امپر. از خازن 10 و 1000 میکرو و 4 عدد خازن 100 نانو اطراف میکرو برای صافی استفاده کردم. کریستالم هم گذاشتم. ولتاژ پین ریست رو هم زمانی که مقاومت 1k قرار داده بودم اندازه گرفتم 3.3 ولت بود، این دو برد باهم تفاوت دارن. جریان عبوری بین پین ریست و تغذیه 3.3 رو اندازه گیری میکنم نیم میلی امپر نشون میده !! پین ریست هم به نقطه دیگه ای مثل کلید فشاری متصل نیس. به اسیلوسکوپ دسترسی ندارم فقط یه لاجیک انالیزر دارم برم با اون تست کنم ببینم چیزی متوجه میشم.
    منابع ریست توی STM32 رو که میدونی:

    1- ریست سخت افزاری(همین پین رست میکرو)
    2- ریست WWDG
    3- ریست IWDG
    4- ریست نرم افزاری(SW)
    5- ریست واحد power-on reset (POR)/power-down reset (PDR) (که یه ولتاژ دتکتور داره که وقتی ولتاژ از یه سطح آستانه ماکسیمم بیشتر یا مینیمم کمتر شد میکرو میره تو حالت ریست)

    گزینه های 2 و 3 و 4 که نیست، هست؟
    خود پین ریست میکرو به صورت داخلی هم یه مقاومت بالا-کش داره. 50کیلو هستش. یه وقت اتصالی بین پین ریست میکرو و GND مدار وجود نداره؟

    راستی از کجا می فهمی که ریست میشه؟
    ویرایش توسط rozeh : 17-12-2015 در ساعت 09:30

  7. تشکرها از این نوشته :


  8. #5
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    آها راستی STM32 یه ریجستر داره به اسم RCC_CSR که وضعیت آخرین ریست ها رو نشون میده.(صفحه 119 رفرنس مانوال)
    می تونی علت ریست رو از این ریجستر هم بخونی. فکر کنم با تابع RCC_GetFlagStatus از سری توابع کتابخانه HAL بتونی این ریجستر رو بخونی و بفهمی علت ریست چیه.

  9. کاربران : 3 تشکر کرده اند از شما rozeh برای ارسال این پست سودمند:


  10. #6
    کاربر فعال mohammadne آواتار ها
    تاریخ عضویت
    Dec 2013
    نام
    محمد پورخلیلی
    نوشته ها
    276
    تشکر
    43
    تشکر شده 214 بار در 132 پست

    پیش فرض

    شماره های 2 -3-4-5 که نیستند، کانال 1 لاجیک انالیزر رو به پین ریست با سیم رشته ای لحیم کردم، یه نویز هایی روی این پین وجود داره که یه لحظه این نویزها زیاد میشن و وقتی زمان 0 بودن یکی از این نویزها بیش از 300 نانو ثانیه باش میکرو ریست میکنه
    یه وقت اتصالی بین پین ریست میکرو و GND مدار وجود نداره؟
    با مولتی متر تست کردم اتصالی وجود نداره
    50کیلو هستش.
    بله مقاومت پول اپ ریست بین 30 تا 50 کیلو هست.

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

    این مدار توصیه شده برای محافظت از پین ریست هست :


    آها راستی STM32 یه ریجستر داره به اسم RCC_CSR که وضعیت آخرین ریست ها رو نشون میده.(صفحه 119 رفرنس مانوال)
    می تونی علت ریست رو از این ریجستر هم بخونی. فکر کنم با تابع RCC_GetFlagStatus از سری توابع کتابخانه HAL بتونی این ریجستر رو بخونی و بفهمی علت ریست چیه.
    ممنون بابت این راهکار، با درایور HAL هنوز شروع به کار نکردم اما مثل اینکه اخرش باید شروع به کار کنم، دستور خوندن مقدار رجیستر با درایور HAL رو پیدا نکردم اما این دستور مربوط به کتابخانه CMSIS هست :

    کد:
    * @arg RCC_FLAG_HSIRDY: HSI oscillator clock ready * @arg RCC_FLAG_HSERDY: HSE oscillator clock ready * @arg RCC_FLAG_PLLRDY: PLL clock ready * @arg RCC_FLAG_LSERDY: LSE oscillator clock ready * @arg RCC_FLAG_LSIRDY: LSI oscillator clock ready * @arg RCC_FLAG_PINRST: Pin reset * @arg RCC_FLAG_PORRST: POR/PDR reset * @arg RCC_FLAG_SFTRST: Software reset * @arg RCC_FLAG_IWDGRST: Independent Watchdog reset * @arg RCC_FLAG_WWDGRST: Window Watchdog reset * @arg RCC_FLAG_LPWRRST: Low Power reset * * @retval The new state of RCC_FLAG (SET or RESET). */ FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG)
    فکر نکنم دیگه به خوندن مقدار این رجیستر نیازی باش و این ریست شدن مربوط به پین ریست هست، من میکرو برد قبلی رو چند بار با هیتر برداشتم و زیر میکرو رو حسابی با اسپری خشک تمیز کردم. بازم مشکلش حل نشد، از اونجایی هم که فقط این سری میکرو مشکل داشته بنظرتون امکانش هست بخشهای دیگه میکرو روی پین ریست تاثیر بذارن ؟؟

  11. #7
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mohammadne نمایش پست ها
    شماره های 2 -3-4-5 که نیستند، کانال 1 لاجیک انالیزر رو به پین ریست با سیم رشته ای لحیم کردم، یه نویز هایی روی این پین وجود داره که یه لحظه این نویزها زیاد میشن و وقتی زمان 0 بودن یکی از این نویزها بیش از 300 نانو ثانیه باش میکرو ریست میکنه...
    با اوسیلوسکوپ ها و لاجیک آنالیزرها که بلدی کار کنی؟ منظورم اینه که مثلا وقتی داری نمونه برداری میکنی زمین لاجیک آنالیزر رو به مدار وصل کردی دیگه؟ چون وقتی وصل نکنی یه چیزی توی همین مایه ها نشون میده که داری میگی.
    نقل قول نوشته اصلی توسط mohammadne نمایش پست ها
    ...برنامه ای که روش ریختم چنتا led رو پشت سرهم روشن خاموش میکنه، مثلا برد داره درست کار میکنه به یکباره این led ها خاموش میشن و دوباره روشن میشن کار میکنن همینطور هنگ کردن ادامه داره...
    چند تا led؟ چطور وصلشون کردی؟ یعنی با این افکتتون حالتی داری که همه ledها روشن بشه؟(همه ledها یهو با هم روشن بشن یا کم کم همشون روشن بشن یا یه چیزی توی این مایه ها) بیشترین تعداد led که باهم روشن می مونن چندتا هستن؟
    روی اون برد دیگه هم همین برنامه رو میریختین؟ با برنامه دیگه هم همین وضعیت رو دارید؟

    نقل قول نوشته اصلی توسط mohammadne نمایش پست ها
    ...ممنون بابت این راهکار، با درایور hal هنوز شروع به کار نکردم اما مثل اینکه اخرش باید شروع به کار کنم، دستور خوندن مقدار رجیستر با درایور hal رو پیدا نکردم اما این دستور مربوط به کتابخانه cmsis هست :

    کد:
    * @arg rcc_flag_hsirdy: Hsi oscillator clock ready * @arg rcc_flag_hserdy: Hse oscillator clock ready * @arg rcc_flag_pllrdy: Pll clock ready * @arg rcc_flag_lserdy: Lse oscillator clock ready * @arg rcc_flag_lsirdy: Lsi oscillator clock ready * @arg rcc_flag_pinrst: Pin reset * @arg rcc_flag_porrst: Por/pdr reset * @arg rcc_flag_sftrst: Software reset * @arg rcc_flag_iwdgrst: Independent watchdog reset * @arg rcc_flag_wwdgrst: Window watchdog reset * @arg rcc_flag_lpwrrst: Low power reset * * @retval the new state of rcc_flag (set or reset). */ flagstatus rcc_getflagstatus(uint8_t rcc_flag)
    فکر نکنم دیگه به خوندن مقدار این رجیستر نیازی باش و این ریست شدن مربوط به پین ریست هست، من میکرو برد قبلی رو چند بار با هیتر برداشتم و زیر میکرو رو حسابی با اسپری خشک تمیز کردم. بازم مشکلش حل نشد، از اونجایی هم که فقط این سری میکرو مشکل داشته بنظرتون امکانش هست بخشهای دیگه میکرو روی پین ریست تاثیر بذارن ؟؟
    اگه با hal هم کار نکردی فکر نکنم نیازی هم باشه. شما فقط می خوای چندتا بیت این ریجستر رو بخونی. با یه rcc->csr این ریجستر کامل توی دسترس شماست. شما فقط باید بیت های 26 تا 31 رو چک کنید. واسه پاک کردن این ریجستر هم فقط کافیه بیت شماره 24 یعنی rmvf رو یک کنید.
    این کار رو بکنید. مطمئن بشیم بهتره. گاهی وقتا توی الکترونیک اتفاقهایی میفته که عجیبه.

  12. تشکرها از این نوشته :


  13. #8
    کاربر فعال mohammadne آواتار ها
    تاریخ عضویت
    Dec 2013
    نام
    محمد پورخلیلی
    نوشته ها
    276
    تشکر
    43
    تشکر شده 214 بار در 132 پست

    پیش فرض

    کد:
     وقتی داری نمونه برداری میکنی زمین لاجیک آنالیزر رو به مدار وصل کردی دیگه؟ 
    زمین لاجیک انالیزر یا اسیلوسکوپ رو همیشه وصل می کنم.

    تعداد ال ای دی ها هم 3 عدد smd-805 هستن که با مقاومت 1 کیلو اهم به میکرو وصل شدن و در یک لحظه یکی از LED ها روشن میشن. جریان مصرفیش هم فکر کنم در حد 1 میلی امپر باش.


    خب مثل اینکه مشکل حل شد، دیتاشیت میکرو رو نگاه کردم در میکروهای شرکت ST با پکیج LQFP48 پین VSSA کنار پین ریست قرار داده شده، از اونجایی که پین VSSA به زمین وصل میشه امکان اتصالی بین VSSA و ریست وجود داره، من هم میکرو رو برداشتم و بعد از تمیز کاری دوباره لحیم کردم . این هم تصویر قبل از تمیز کاری میکرو :




    بعد از تمیز کاری :




    راستی اینم بگم این دو پین رو با مولتی متر هم تست کردم هیچ اتصالی حتی با مقاومت مگا اهم رو هم نشون نمیداد اما فکر کنم وقتی بین این دو پایه روغن لحیم سوخته باش و بین این دو پین اختلاف پتانسیل وجود داشته باش باعث اتصال کوتاهی میشه .
    احتمالا بخاطر اینکه از هویه 60 وات استفاده میکردم روغن لحیم دچار سوختگی میشد، پس برای لحیم کاری این پکیج از خمیر فلاکس استفاده کنین یا اگه از روغن لحیم و هویه وات بالا استفاده میکنین بین این دو پایه رو حتما با یه سوزن تمیز کنین.
    ویرایش توسط mohammadne : 17-12-2015 در ساعت 22:42

  14. کاربران : 5 تشکر کرده اند از شما mohammadne برای ارسال این پست سودمند:


موضوعات مشابه

  1. خطای در طراحی ریست چه تاثیری داره
    توسط gbg در انجمن AT91 series (ATMEL)
    پاسخ: 6
    آخرين نوشته: 02-09-2013, 20:46
  2. چرا Mega16A در لیست کدویژون نیست ?
    توسط beroz در انجمن AVR
    پاسخ: 2
    آخرين نوشته: 20-09-2012, 12:54
  3. هدر بورد براي stm32f103c8t6
    توسط sadmonew در انجمن stm32
    پاسخ: 15
    آخرين نوشته: 02-06-2012, 19:34
  4. ربات چیست ؟
    توسط 1nafar در انجمن مفاهیم اولیه در رباتیک
    پاسخ: 0
    آخرين نوشته: 12-03-2009, 20:00

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •