KnowledgePlus.ir
5.48K subscribers
47 photos
11 videos
16 files
176 links
کانال مهندس اوژن کی نژاد
کلیه مطالب این کانال به جز مواردی که صریحا در متن آن ذکر شده باشد جنبه تالیفی دارد و از جایی کپی نشده است.
کانال اشتغال:
@KnowledgePlusir
@StepMotor
@MC3Delta
@FindChips
instagram.com/knowledgeplus.ir
aparat.com/KnowledgePlus
Download Telegram
مثال برنامه نویسی C:

در کد زیر در پایان اجرای حلقه for و با فرض تعریف قبلی متغیرهای x و y و i از نوع char، ترتیب بیت های x معکوس می شود و در y قرار می گیرد. مثلا بیت 0 در x به بیت 7 در y منتقل می شود و بیت 1 در x به بیت 6 در y منتقل می شود و به همین ترتیب. به عنوان مثال عددی اگر x برابر 0xc2 باشد، y برابر با 0x43 خواهد بود.

for(i=0,y=0;i<8;i++) y|=((x&(1«i))?(1«(7-i)):0);

@Knowledgeplus
تجربه ای در تولید محصولات الکترونیک:

شبیه به حاصلضرب گین در پهنای باند که ملاکی برای ارزیابی مشخصات یک مدار الکترونیکی است، در تولید محصولات الکترونیک هم با فرض لحاظ کردن ارزش زمان صرف شده در محاسبه هزینه ها، حاصلضرب تعداد محصول در سود واحد، ملاکی برای توجیه پذیر بودن تولید آن محصول به لحاظ اقتصادی است. در شرایط فعلی و با توجه به وجود رقبای چینی، تولید محصولات ارزان قیمت ولی پر تیراژ معمولا به دلیل وجود معادل ارزان چینی چندان به صرفه نیست. اما با فرض وجود دانش فنی و سرمایه کافی محصولاتی هم با سود واحد چند ده تا چند صد هزارتومان و با نیاز به تعداد کافی در عرصه های صنعتی و پزشکی و ... وجود دارند که می توانند گزینه های مناسب تری برای تولید باشند. برگ برنده تولید کننده ایرانی در رقابت با تولیدکنندگان خارجی، انعطاف در طراحی و customize کردن محصول بر اساس نیاز مشتری و ارائه پشتیبانی و خدمات پس از فروش مناسب و امکان حضور فیزیکی نسبت به رقبای خارجی می باشد.

@KnowledgePlus
چگونه CPU می تواند از صحت کلاک واقعی خود اطلاع پیدا کند؟

فرض کنیم که در یک مدار حساس با کاربردهای صنعتی یا پزشکی و غیره، کلاک CPU از یک اسیلاتور خارجی یا اسیلاتور داخلی مبتنی بر کریستال خارجی تامین شود . حال اگر به دلایلی مانند خرابی یا اشتباه در انتخاب قطعات، تفاوت قابل توجهی بین فرکانس واقعی کلاک با مقدار ایده آل وجود داشته باشد، CPU از چه طریقی می تواند از وجود این خطا در فرکانس کلاک اطلاع حاصل کند تا بتواند روتین های حفاظتی مناسب را اجرا کند؟ در این رابطه چند راهکار پیشنهاد می شود:

1- اولین روش کلی برای سنجش صحت فرکانس کلاک، استفاده از یک منبع مستقل تولید فرکانس به عنوان مرجع است. این مرجع فرکانسی می تواند از اسیلاتورهای داخلی یا خارجی یا سایر سخت افزارهای خارجی که دارای کلاک مربوط به خود هستند (مانند میکروکنترلرهای دیگر یا کامپیوتر) یا هر مبنای زمانی مستقل مانند فرکانس برق شهر تامین شود. در این روش باید به نحوی امکان مقایسه بین فرکانس کلاک CPU با فرکانس مرجع فراهم شود. مثلا اگر تایمری با کلاک مستقل در سیستم وجود داشته باشد (مانند RTC)، تایمر دیگری را می توان با کلاک CPU یا تقسیمات آن راه اندازی کرد و از مقایسه تغییرات دو تایمر، صحت کلاک مورد سنجش را بررسی کرد.
از مبناهای زمانی در دسترس مانند فرکانس برق شهر هم با تمهیدات مناسب می توان برای این ارزیابی استفاده کرد. به عنوان یک مثال اگر کلاک تایمری با Prescaler=8 از کلاک CPU تامین شود و منبع کلاک اسیلاتوری با کریستال 16MHz باشد، فاصله زمانی نیم سیکل از برق شهر که دو بار گذر از صفر در آن اتفاق می افتد برابر 10ms است و انتظار می رود که مقدار شمارنده در این مدت زمان 20000 واحد تغییر کند. حال اگر بجای کریستال 16MHz به اشتباه یک کریستال 8MHz قرار داده شده باشد، در فاصله دو گذر از صفر مقدار شمارنده بجای 20000 واحد فقط 10000 واحد تغییر می کند که از مقایسه این مقدار با مقدار ایده آل می توان به وجود خطا در فرکانس کلاک پی برد و به این نتیجه رسید که فرکانس واقعی اسیلاتور نصف مقدار مطلوب است.

2- روش کلی دیگر، استفاده از تکنیک های آنالوگ است. با استفاده از روش های آنالوگ به طرق مختلفی می توان فرکانس را به یک کمیت آنالوگ مرتبط کرد و آن را اندازه گرفت. مثلا می توان موجی با فرکانس مشخص را توسط میکروکنترلر تولید کرد و بعد از اعمال آن به مدار مبدل فرکانس به ولتاژ، این ولتاژ را توسط ADC اندازه گیری کرد که مقدار اندازه گیری شده ملاکی برای سنجش فرکانس خواهد بود. یا به عنوان مثال دیگر در روشی که جنبه تقریبی دارد، یک پله ولتاژ به مدار RC با مقادیر معلوم اعمال می شود و ولتاژ دو سر خازن تا رسیدن به حد معینی توسط ADC اندازه گیری می شود و تایمری بصورت همزمان با کلاک CPU یا تقسیمات آن راه اندازی می شود. با توجه به معلوم بودن مقدار خازن و مقاومت و فرکانس تایمر، میزان تغییرات تایمر بصورت تقریبی تا شارژ خازن مشخص است (ولتاژ دو سر خازن در زمان RC به 0.63 حداکثر مقدار خود می رسد). بنابراین بعد از رسیدن ولتاژ خازن به حد مشخصی با مقایسه مقدار واقعی تایمر با مقدار مورد انتظار می توان صحت فرکانس کلاک CPU را احراز کرد.

@KnowledgePlus
نکته ای در طراحی مدار چاپی:

از آنجایی که وجود سخت افزار ارتباطی RS485 روی یک برد، امکانی را برای شبکه کردن چند برد و اتصال برد به HMI و با مبدل مناسب به کامپیوتر و تغییر firmware داخلی از طریق Bootloader و موارد مشابه را فراهم می کند. بنابراین در صورت احتمال برای نیاز به این نوع ارتباط در توسعه های بعدی و موجود بودن فضای کافی روی برد و در دسترس بودن پین های ارسال و دریافت USART و یک پین دیگر برای جهت ارتباط، خالی از فایده نیست که در هنگام طراحی مدار چاپی بخشی برای این نوع ارتباط روی برد در نظر گرفته شود (حتی اگر برای کاربرد جاری نیازی به این سخت افزار نباشد و قطعات آن لحیم نشود).

@KnowledgePlus
روش هایی برای شناسایی سیم ها و کابل های شیلد با مغزی غیر مسی به نقل از یکی از فروشندگان بازار:

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

@KnowledgePlus
استفاده از بردها و سخت افزارهای آماده و مسئله خدمات پس از فروش:

برای استفاده از بردها و سخت افرارهایی مانند Cubieboard، Beaglebone، Raspberry و ... در محصولات صنعتی که نیاز به پشتیبانی و خدمات پس از فروش چند ساله دارند، علاوه بر مواردی مانند قیمت و کارایی باید به این نکته توجه داشته باشیم که اگر مثلا 5 سال دیگر این برد به هر دلیلی خراب شد و نیاز به تعویض داشت، آیا همچنان در دسترس هست که بتوانیم آن را جایگزین کنیم؟

@KnowledgePlus
به بهانه حادثه تاسف بار ساختمان پلاسکو:

اگر حتی یک بیت علم جدید تولید نمی کردیم و همین علم موجود را درست مصرف می کردیم، کیفیت زندگی خیلی بهتر می شد.

@KnowledgePlus
دو نکته در اتصال Quadrature Encoder به میکروکنترلر:

1- در شرایط وجود لرزش های مکانیکی، استفاده از روش وقفه خارجی برای اتصال Quadrature Encoder های با تعداد پالس بالا به میکروکنترلر می تواند توام با خطا باشد. روش اصولی برای قرائت بدون خطا، استفاده از واحدهای سخت افزاری مانند QDEC در XMEGA یا QEI در سری LPC یا مد Encoder interface در STM32 می باشد.

2- در صورت نیاز به اتصال کابل با طول زیاد به Encoder و همچنین در محیط های پر نویز بهتر است از Encoder های با خروجی های تفاضلی بصورت Line driver استفاده شود. این نوع خروجی برای اتصال به میکروکنترلر نیاز به مبدل سیگنال مناسب دارد.

@KnowledgePlus
نکته ای در انتخاب Baud Rate برای ارتباط بین میکروکنترلرها:

برای ارتباط دو یا چند میکروکنترلر از طریق USART به هیچ وجه لازم نیست اعدادی مانند 300، 1200، 2400، 4800، 9600، 19200 و ... را برای Baud Rate انتخاب کنیم و می توانیم سایر اعدادی را که خطایی با توجه به کریستال ایجاد نمی کنند بکار ببریم (مثلا 10000bps). این اعداد تنها در صورتی مهم هستند که ارتباط با کامپیوتر یا برخی سخت افزارها و ماژول ها که فقط با Baud Rate های خاصی عمل می کنند، مورد نظر باشد.

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

@KnowledgePlus
نتیجه گرایی و قانون اصالت جواب در الکترونیک:

در الکترونیک مواردی مانند اینکه چه تکنولوژی در یک مدار بکار رفته باشد یا برد آن چند لایه باشد یا قطعات آن dip باشند یا smd یا چقدر جدید یا قدیمی باشد یا ظاهر آن چقدر زیبا باشد و موارد اینچنین نسبت به هدف اصلی یعنی جواب دادن و عملکرد درست سخت افزار و نرم افزار، همگی مسائل فرعی و ثانویه هستند. اگر مجموعه همه این عوامل منجر به جواب دادن و کار کردن یک سخت افزار یا نرم افزار شد که نتیجه حاصل شده است. و گرنه برای مداری که جواب نمی دهد و نرم افزاری که درست عمل نمی کند، مجموعه عوامل ذکر شده ارزش خاصی را ایجاد نمی کنند. پس اصالت و اولویت با نتیجه درست و جواب دادن و کار کردن سخت افزار و نرم افزار است و بقیه موارد در خدمت این هدف هستند. از این منظر بسیاری از افراد موفق در رشته الکترونیک دارای رویکرد نتیجه گرا هستند و اگر لازم باشد با جدیدترین و پیچیده ترین موضوعات دست و پنجه نرم می کنند و در صورت لزوم ممکن است از یک تکنولوژی و ابزار بسیار قدیمی هم بهترین استفاده ها را ببرند. مثالی در چندین سال پیش در یکی از انجمن ها در تشبیه ابزارهای نرم افزاری و سخت افزاری با خودروهای مختلف مطرح شد که در اینجا به صورت دیگر تکرار می شود. یک شخص نتیجه گرا به خودرو به عنوان وسیله ای برای رسیدن به مقصد نگاه می کند. در جایی که لازم باشد از سواری و کامیون و حتی تریلی و در جای دیگر بر حسب شرایط و اقتضائات صورت مسئله از موتور و دوچرخه برای رسیدن به مقصد استفاده می کند و تعصبی در استفاده از وسیله نقلیه خاصی ندارد. افراد نتیجه گرا راهی را انتخاب می کنند که با حداکثر بهره وری به نتیجه مورد نظر برسند. آنچه برای آنها مهم است، به جواب رساندن و کار کردن محصول نهایی است.
پی نوشت: عبارت "قانون اصالت جواب" یک اصطلاح شخصی است که در این پست بکار برده شده و مبنای آکادمیک ندارد.

@KnowledgePlus
حداکثر دور استپر موتور با حفظ گشتاور:

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

@KnowledgePlus
یک روش برای خوب پول در آوردن از الکترونیک این است که ابتدا بررسی شود که در کدام حوزه های این رشته پول های قابل توجهی در حال رد و بدل شدن است و بعد برای وارد شدن به این حوزه ها تخصص کافی کسب شود و ساز و کار لازم فراهم شود.

@KnowledgePlus
تمرین برنامه نویسی میکروکنترلر:

یکی از تمرین هایی که در راستای افرایش مهارت برنامه نویسی می تواند مفید واقع شود، تایپ کاراکترها با تعداد محدودی کلید روی LCD به شیوه گوشی های موبایل غیر لمسی است. در این صورت مسئله می توان با یک صفحه کلید با کلیدهای کم تعداد و یک LCD متصل به میکروکنترلر، همان شیوه ای را که برای تایپ کردن متن در گوشی های غیز لمسی انجام می شود پیاده سازی کرد. روش کار به این صورت است که با فشار دادن هر کلید، فهرستی از کاراکترهای مرتبط با آن کلید نمایش داده می شوند که یکی از کاراکترها از طریق مکان نما یا معکوس شدن پیکسل ها (یسته به کاراکتری یا گرافیکی بودن LCD) در وضعیت انتخاب شده است و فشار دادن سریع همان کلید یا نگه داشتن آن موجب حرکت بین کاراکترهای آن فهرست می شود. در صورتی که آن کلید برای مدت مشخصی فشار داده نشود، کاراکتر انتخاب شده تایپ می شود و به همین ترتیب می توان متن مورد نظر را تایپ کرد. برای تصحیح متن هم می توان کلیدهایی را برای جابجایی مکان نما یا به عنوان Back space یا Delete در نظر گرفت.

@KnowledgePlus
یک روش سرانگشتی برای محاسبه مقاومت ها و سلف های موازی و خازن های سری:

اگر دو مقاومت با هم موازی باشند که یکی N برابر دیگری باشد (N>1)، مقاومت معادل برابر است با مقاومت بزرگتر تقسیم بر N+1. به عنوان مثال اگر مقاومت هایی با وزن 1 و 10 با هم موازی شوند، مقاومت معادل برابر 10/11 خواهد بود. یا مقاومت معادل با مقاومت های موازی 2 و 25 برابر 25/13.5 خواهد بود. برای محاسبه سلف های موازی و خازن های سری هم می توان از شبیه همین روش استفاده کرد.

@KnowledgePlus
نقل یک تجربه عملی:

در مداراتی که در معرض حمل و نقل دائم و جابجایی هستند و امکان وارد شدن ضربه و زمین خوردن برای آنها وجود دارد، مشاهده شده که کانکتورها یا آی سی های بزرگی که روی سوکت قرار داشته اند (مانند میکروکنترلرهای 40 پین) و قطعات مشابه بر اثر وارد شدن شوک از سوکت خود خارج می شوند. بنابراین برای این نوع مدارها لازم است تمهیدات مناسب برای مهار کردن قطعات به روش هایی مثل استفاده از کانکتورهای قفل دار و پیچ دار، ایجاد حفاظ های مکانیکی برای نگه داشتن قطعات در محل خود و حتی استفاده از رزین و چسب بسته به شرایط در نظر گرفته شود.

@KnowledgePlus
با هم پیشرفت کنیم:

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

@KnowledgePlus
آموزش نحوه ایجاد پروژه و کامپایل و پروگرم کردن آن در AtmelStudio در بخش چهارم فیلم های آموزش XMEGA توضیح داده شده که روش این آموزش برای AVR هم قابل استفاده است:

https://www.aparat.com/v/z8TSO

@KnowledgePlus
- نمونه ای از سوالات و دغدغه های معمول در مرحله کم تجربگی و تازه کاری:

با چه میکروکنترلری کار کنم؟ از چه کامپایلری استفاده کنم؟ قیمت کدام خانواده کمتر است؟ بازار کار کدام نرم افزار و سخت افزار بهتر است؟ از چه روشی استفاده کنم که ساده تر باشد؟ و ...

- نمونه ای از سوالات و دغدغه های افرادی که کارشان به ثمر نشسته است:

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

@KnowledgePlus
برای ساخت emi filter در مدارات میکروکنترلری و سایر مدارات مشابه می توانید از وریستور 20D431K یا 20N431K و خازن های 100nF/275Vac و Line filter های مناسب موجود در بازار استفاده کنید.

@KnowledgePlus
نقل یک تجربه شخصی در طراحی مدار چاپی:

در هنگام طراحی مدار چاپی و با فرض نصب برد بصورت افقی و وجود گرد و خاک و براده های فلزات در هوای محیط های صنعتی و ایزوله نبودن برد نسبت به هوای محیط، میکروکنترلر و آی سی های smd با پایه های نزدیک به هم ترجیحا در وجه زیرین برد (Bottom Layer) قرار داده می شوند.

@KnowledgePlus