در مدارات الکترونیک معمولاً کم پیش میآید که میکروکنترلر دچار مشکل شده یا به عبارتی بسوزد؛ معمولاً مشکلات مدارات الکترونیک در قسمت تغذیه و یا خروجیها اتفاق میافتد. اما حتماً با مدارات کنترلی که پردازنده آنها دچار ایراد شده باشد روبرو شدهاید. اولین انتخابی که میتوان برای یک برد کنترلر که پردازنده خود را ازدستداده انجام داد تهیه برد نو و جایگزینی آن میباشد؛ ولی اگر برد کنترل در دسترس نباشد یا قیمت بالایی داشت میتوان به گزینه تهیه یک میکروکنترلر نو؛ بررسی مدار برد کنترل و بهدستآوردن نقشه و تحلیل روش کاربرد و در نهایت برنامهنویسی برای میکروکنترلر فکر کرد.
البته لزومی هم ندارد که حتماً از همان شماره میکروکنترلر استفاده کرد و میتوان یک میکروکنترلر دیگر که تواناییهای کافی برای آن کار را داشته باشد؛ را جایگزین کرد. شخصاً در مواردی که پردازنده برد کنترلر سوخته بود این کار را انجام داد. اما مدتی پیش یک برد کنترل دوچرخه برقی تحویل گرفتم که دوتا از پایههای میکروکنترلر از داخل به GND اتصال کوتاه شده بود. این دوپایه مربوط به صفحهکلید برد بودند که باعث شده بود سه عدد از کلیدها شامل کلید استارت؛ استاپ و مد ورزشی کار نکنند. برد کنترل بهتنهایی در بازار نبود و باید کل دوچرخه برقی تعویض میشد که قیمتش هم حدود 100 میلیون بود.
پردازنده STC با شماره 12C5A60S2 روی برد قرار داشت؛ اولین چیزی که به ذهنم رسید این بود که یک میکروکنترلر دیگر را جایگزین کنم و برنامه را کامل از صفر بنویسم، ابتدا مدار را بررسی کردم تعدادی سون سگمنت و تعدادی هگز سگمنت به همراه یک نمایشگر دات ماتریس داشت که با استفاده از 17 عدد شیفت رجیستر درایور میشدند؛ دو ورودی دیجیتال؛ یک رله و ارتباط RS485 روی برد وجود داشت؛
یک برد کوچک با میکروکنترلر mega64 درست کردم و تمام پایههای میکروکنترلر با استفاده از سیم لاکی سیمکشی کردم.
در نهایت تمام نمایشگرها و صفحهکلید را راهاندازی کردم همینطور منوهای عملکرد برد را پیادهسازی کردم در ادامه باید کدهایی که بین برد کنترل و برد دوم که از طریق RS485 متصل بودند را پیدا میکردم و فرمانهای لازم را به برد دوم ارسال میکردم باودریت استفاده شده 9600 بود؛ اما فهمیدن دستورات و شکل پروتکل ارتباطی نیاز به زمان بیشتر و فضای مناسب برای دیباگ و آزمایش داشت؛ اینجا بود که برد سنسور تشخیص ضربان قلب که هیچ اطلاعاتی درباره آن وجود نداشت از زیر صندلی دوچرخه به من سلام کرد 😊 به دلیل نبود زمان و عدم امکان باز کردن برد دوم یا خواندن کدها در محل ورزشگاه… کمکم از راهاندازی برد ناامید شده بودم که یک فکر جدید به ذهنم رسید.
به این فکر کردم که چرا باید آن دوپایه سوخته باشند و احتمال دادم که پایهها بهعنوان خروجی کانفیگ شده و در اسکنکردن صفحهکلید فقط برای تولید پالس استفاده میشدند. با استفاده از لاجیک آنالایزر وضعیت پایههای صفحهکلید را خواندم و مشخص شد که فکرم درست بوده. احتمالاً الان شما هم به چیزی فکر میکنید که من فکر میکنم.
“ اگر با یک میکروکنترلر دیگر پالسهای لازم برای این پایههای میکروکنترلر آسیبدیده را تولید کنیم خود میکروکنترلر اصلی میتواند به کارش ادامه بدهد“
دو سیگنال اول خود میکروکنترلر اصلی تولید میکرد؛ دو سیگنال بعدی با استفاده از Atmega64 تولید کردم. با یک تاینی هم میشد انجام داد؛ ولی خب من برد چاپ کرده بودم.
با میکروکنترلر دوم عملکرد دوتا پایهای که مشکل داشتن رو شبیهسازی کردم و به این شکل برد با همان پردازنده اصلی به کارش ادامه داد.
کار خلاقانه، مفید و ارزنده ای انجام دادید.
شخصی که دست به انجام چنین کاری میزنه، مسلما مهارت بالایی در تحلیل مدارات داره و مهمتر ، اراده بالایی برای به نتیجه رسوندن کار داره.
خدا قوت.
بسیار عالی کار کردین
تعمیر به اندازه طراحی یک برد جدید ارزشمنده
بخصوص اگر بتوان به ذهن طراح برای طراحی قسمت های مختلف مدار رسید
تشکر
جالب بود. کل فرآیند چقدر زمان برد؟
برای حالت اول که اطلاعات مدار بدست آوردم و برنامه نویسی برای راه اندازی نمایشگرها و ساخت منوها رو انجام دادم 4 روز وقت گرفت اما بعد که متوجه شدم با این روش کار زمان بر میشه و تمام قسمت ها راه اندازی نمیشه، پیاده سازی ایده ای که به ذهنم رسید 2 روز زمان برد.
بسیار لذت بردم از خواندن این مطلب.آفرین به شما
تشکر.
فردا ک بقیه پایه هاشم سوخت حالت جا میاد. خخخخ
از انجام این کار 2 ماه میگذره و مشکلی نداشته.
ولی اینکه چه دلیلی باعث سوختن پایه هایی از میکروکنترلر که برای اسکن کردن صفحه کلید استفاده میشدن بوده، نمیدونم.
قبلا مشابه این اتفاق برای میکروکنترلر یک تردمیل افتاده بود که اون هم پایه های اسکن صفحه کلیدش از داخل اتصال به زمین شده بود، میکروکنترلرش پیک بود که با یک AVR عوض کردم و برنامه اش رو خودم نوشتم.
با توجه به شرایط بازار و مشکلات امروز، کار بسیار ارزندهای کردید.
شبیه به این کار را برای بردهای صنعتی و خارجی انجام دادهام و البته آنچه که سوخته بود، بخشهای اینترفیس محافظتی خارج از میکرو بود و خود میکروکنترلر سالم بود.
معمولا از سبک جابجایی میکروکنترلر با یک نمونه دیگر برای تست ادوات اطراف میکرو و پیدا کردن ICهای سوخته hsjthni ld;kl.
در بردی که کار کردم بیش از 20 عدد IC در اطراف میکرو وصل بود و در یک شرایط خاص، عملکرد خود را نشان میدادند که به علت پیچیدگی بالا در ایجاد آن شرایط، میکروی برد را با یک میکرو با برنامه تست که توسط خودم نوشته بود عوض کردم و تمامی ادوات اطراف میکرو را تست گرفته و قطعات معیوب را شناسایی کردم.
در انتها به افراد خوش فکری مانند شما افتخار میکنم و امیداورم قدر امثال شما را بدانند و مزایای خوبی برایتان در نظر بگیرند.
انجام اینجور کارهای چالشی و سردرآوردن از جزئیات بردی که یک طراح دیگه طراحی کرده میتونه جذاب باشه و فقط از پس کسی برمیاد که حوصله کافی در کنار دانش کافی داشته باشه. مشخصا شما هم کار پیچیده ای برای شبیه سازی حالت خطا و تشخیص عیب ایجاد کرده اید که جای قدردانی داره.