PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ریست شدن خود به خود میکرو stm32f103c8t6



mohammadne
16-12-2015, 15:31
سلام این شماتیک اتصال مقاومت بالاکش به پایه ریست میکرو هست. برای میکروهای STM32F103RET6 اصلا این مقاومت و خازن رو قرار نمیدم هیچ مشکلی هم پیش نمیاد اما این میکرو وقتی مقاومت و خازن نمیذارم یا وقتی بین مقادیر 470 اهم تا 10 کیلو قرار میدم میکرو با فاصله زمانی رندم ریست میشه. تنها راهش اینه که پین ریست رو به تغذیه 3.3 اتصال کوتاه کنم . تا دیگه میکرو بدون مشکل کار کنه و ریست نشه. از PCB هم فکر نکنم باشه چون روی یه برد دیگه هم این مشکل رو داشتم الان دیگه مطمعن شدم از PCB نیست. کسی راهکاری به ذهنش نمیرسه ؟؟؟

You can see links before reply

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

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

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

rozeh
16-12-2015, 19:21
ورودی یه سوییچینگ 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
16-12-2015, 19:39
آها راستی STM32 یه ریجستر داره به اسم RCC_CSR که وضعیت آخرین ریست ها رو نشون میده.(صفحه 119 رفرنس مانوال)
می تونی علت ریست رو از این ریجستر هم بخونی. فکر کنم با تابع RCC_GetFlagStatus از سری توابع کتابخانه HAL بتونی این ریجستر رو بخونی و بفهمی علت ریست چیه.

mohammadne
16-12-2015, 23:03
شماره های 2 -3-4-5 که نیستند، کانال 1 لاجیک انالیزر رو به پین ریست با سیم رشته ای لحیم کردم، یه نویز هایی روی این پین وجود داره که یه لحظه این نویزها زیاد میشن و وقتی زمان 0 بودن یکی از این نویزها بیش از 300 نانو ثانیه باش میکرو ریست میکنه

یه وقت اتصالی بین پین ریست میکرو و GND مدار وجود نداره؟
با مولتی متر تست کردم اتصالی وجود نداره

50کیلو هستش.
بله مقاومت پول اپ ریست بین 30 تا 50 کیلو هست.


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

این مدار توصیه شده برای محافظت از پین ریست هست :
You can see links before reply


آها راستی 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)



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

rozeh
17-12-2015, 09:50
شماره های 2 -3-4-5 که نیستند، کانال 1 لاجیک انالیزر رو به پین ریست با سیم رشته ای لحیم کردم، یه نویز هایی روی این پین وجود داره که یه لحظه این نویزها زیاد میشن و وقتی زمان 0 بودن یکی از این نویزها بیش از 300 نانو ثانیه باش میکرو ریست میکنه...
با اوسیلوسکوپ ها و لاجیک آنالیزرها که بلدی کار کنی؟ منظورم اینه که مثلا وقتی داری نمونه برداری میکنی زمین لاجیک آنالیزر رو به مدار وصل کردی دیگه؟ چون وقتی وصل نکنی یه چیزی توی همین مایه ها نشون میده که داری میگی.

...برنامه ای که روش ریختم چنتا led رو پشت سرهم روشن خاموش میکنه، مثلا برد داره درست کار میکنه به یکباره این led ها خاموش میشن و دوباره روشن میشن کار میکنن همینطور هنگ کردن ادامه داره...
چند تا led؟ چطور وصلشون کردی؟ یعنی با این افکتتون حالتی داری که همه ledها روشن بشه؟(همه ledها یهو با هم روشن بشن یا کم کم همشون روشن بشن یا یه چیزی توی این مایه ها) بیشترین تعداد led که باهم روشن می مونن چندتا هستن؟
روی اون برد دیگه هم همین برنامه رو میریختین؟ با برنامه دیگه هم همین وضعیت رو دارید؟

...ممنون بابت این راهکار، با درایور 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 رو یک کنید.
این کار رو بکنید. مطمئن بشیم بهتره. گاهی وقتا توی الکترونیک اتفاقهایی میفته که عجیبه.

mohammadne
17-12-2015, 17:18
وقتی داری نمونه برداری میکنی زمین لاجیک آنالیزر رو به مدار وصل کردی دیگه؟
زمین لاجیک انالیزر یا اسیلوسکوپ رو همیشه وصل می کنم.

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


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

You can see links before reply


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

You can see links before reply


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