در یک سیستم مبتنی بر ارتباط RS485، مشاهده شد که اطلاعات بصورت ناقص رد و بدل می شود. یعنی هر چند تبادل دیتا برقرار است و سیستم کار خود را انجام می دهد اما بیت های خاصی درست منتقل نمی شوند. بعد از بررسی بسیار و تعویض سیم های ارتباطی و برد و حتی میکروکنترلر، در نهایت مشخص شد ایراد از آی سی ADM485 نصب شده در سمت مستر است که به عنوان جنس اصلی و اوریجینال به قیمت هر عدد چند هزار تومان خریداری شده و با تعویض آن با یک آی سی قدیمی و اصلی مشکل برطرف گردید.
@KnowledgePlus
@KnowledgePlus
آیا تا به حال دیده اید کسی در رشته الکترونیک با انجام دادن پروژه های تکی و موردی به عنوان شغل اصلی، بصورت اساسی به جایی رسیده باشد و به اصطلاح بار خود را بسته باشد؟ بر اساس مشاهدات و تجربیات برای بار چندم به افراد کم تجربه و کم سن و سال گوشزد می شود که با توجه به شرایط موجود، پروژه انجام دادن در الکترونیک در درازمدت و به عنوان یک شغل دائمی آخر و عاقبت چندانی ندارد.
@KnowledgePlus
@KnowledgePlus
درباره قیمت گذاری پروژه ها و محصولات الکترونیکی:
یکی از سوالاتی که بارها از طرف افراد مختلف مطرح می شود این است که با چه ملاک هایی باید روی یک پروژه و محصول الکترونیکی قیمت بگذاریم؟ در این رابطه به پارامترهای مختلفی مانند میزان بکر بودن طرح و کاربردی بودن آن، وجود یا عدم وجود رقبا، قیمت های رقبا، تعداد مورد نیاز، هزینه های صرف شده و قیمت قطعات، نفر ساعت لازم برای به نتیجه رساندن کار، پشتیبانی و خدمات پس از فروش، لحاظ کردن اخلاق و انصاف و عوامل دیگری می توان اشاره کرد که شرح مبسوطی را می طلبد. اما پاسخ خلاصه و چکیده ناشی از همه این موارد این است که این ارزش ذاتی یک کار است که قیمت آن را تعیین می کند نه قیمت قطعات و ساعت کار و موارد مشابه. ممکن است برای یک مدار الکترونیک صدهزار تومان هزینه و N ساعت هم زمان صرف شده باشد. اما به دلیل پارامترهای مختلفی که به آن اشاره شد بتوان روی آن حداکثر دویست هزارتومان قیمت گذاشت و بیشتر از این کشش نداشته باشد. اما ممکن است در شرایط متفاوتی باز همان صدهزارتومان هزینه و N ساعت زمان برای مدار دیگری صرف شده باشد ولی به دلیل ارزش ذاتی بالایی که دارد (مثلا قیمت های بالای رقبا یا ابتکاری بودن طرح) روی آن چهار میلیون تومان قیمت گذاشته شود. حال ممکن است این سوال مطرح شود که آیا انصاف است که اگر جا داشته باشد مثلا یک مدار صدهزارتومانی را چهار میلیون تومان بفروشیم؟ این دیگر به عهده هر کس است که بسنجد با توجه به جمیع جهات آیا چنین قیمت گذاری توام با رعایت انصاف هست یا نه. خلاصه اینکه قیمت محصولات الکترونیکی را کشش بازار تعیین می کند و هزینه قطعات و نظایر آن موارد ثانویه هستند.
@KnowledgePlus
یکی از سوالاتی که بارها از طرف افراد مختلف مطرح می شود این است که با چه ملاک هایی باید روی یک پروژه و محصول الکترونیکی قیمت بگذاریم؟ در این رابطه به پارامترهای مختلفی مانند میزان بکر بودن طرح و کاربردی بودن آن، وجود یا عدم وجود رقبا، قیمت های رقبا، تعداد مورد نیاز، هزینه های صرف شده و قیمت قطعات، نفر ساعت لازم برای به نتیجه رساندن کار، پشتیبانی و خدمات پس از فروش، لحاظ کردن اخلاق و انصاف و عوامل دیگری می توان اشاره کرد که شرح مبسوطی را می طلبد. اما پاسخ خلاصه و چکیده ناشی از همه این موارد این است که این ارزش ذاتی یک کار است که قیمت آن را تعیین می کند نه قیمت قطعات و ساعت کار و موارد مشابه. ممکن است برای یک مدار الکترونیک صدهزار تومان هزینه و N ساعت هم زمان صرف شده باشد. اما به دلیل پارامترهای مختلفی که به آن اشاره شد بتوان روی آن حداکثر دویست هزارتومان قیمت گذاشت و بیشتر از این کشش نداشته باشد. اما ممکن است در شرایط متفاوتی باز همان صدهزارتومان هزینه و N ساعت زمان برای مدار دیگری صرف شده باشد ولی به دلیل ارزش ذاتی بالایی که دارد (مثلا قیمت های بالای رقبا یا ابتکاری بودن طرح) روی آن چهار میلیون تومان قیمت گذاشته شود. حال ممکن است این سوال مطرح شود که آیا انصاف است که اگر جا داشته باشد مثلا یک مدار صدهزارتومانی را چهار میلیون تومان بفروشیم؟ این دیگر به عهده هر کس است که بسنجد با توجه به جمیع جهات آیا چنین قیمت گذاری توام با رعایت انصاف هست یا نه. خلاصه اینکه قیمت محصولات الکترونیکی را کشش بازار تعیین می کند و هزینه قطعات و نظایر آن موارد ثانویه هستند.
@KnowledgePlus
چند پروژه برای AVR با ATmelStudio:
نمایش فواصل اندازه گیری شده توسط چهار سنسور اولتراسونیک srf04 یا srf05 بصورت توام روی LCD کاراکتری:
knowledgeplus.ir/userfiles/sfr05_0.rar
ارتباط با کامپیوتر از طریق پورت RS232 و نمایش کاراکترهای دریافتی روی LCD:
knowledgeplus.ir/userfiles/AVR_rs232_0.rar
نمایش متن و شکل روی LCD گرافیکی با کنترلر KS0108 :
knowledgeplus.ir/userfiles/AVR_glcd_0.rar
اتصال کیبورد ps2 به برد آموزشی و نمایش کاراکترها روی LCD:
knowledgeplus.ir/userfiles/AVR_ps2_kbd_0.rar
دماسنج با LM35:
knowledgeplus.ir/userfiles/AVR_lm35_0.rar
دماسنج با ds18b20:
knowledgeplus.ir/userfiles/AVR_ds18b20_0.rar
نمایش کاراکترهای فارسی و لاتین روی LCD کاراکتری:
knowledgeplus.ir/userfiles/AVR_lcd_0.rar
@KnowledgePlus
نمایش فواصل اندازه گیری شده توسط چهار سنسور اولتراسونیک srf04 یا srf05 بصورت توام روی LCD کاراکتری:
knowledgeplus.ir/userfiles/sfr05_0.rar
ارتباط با کامپیوتر از طریق پورت RS232 و نمایش کاراکترهای دریافتی روی LCD:
knowledgeplus.ir/userfiles/AVR_rs232_0.rar
نمایش متن و شکل روی LCD گرافیکی با کنترلر KS0108 :
knowledgeplus.ir/userfiles/AVR_glcd_0.rar
اتصال کیبورد ps2 به برد آموزشی و نمایش کاراکترها روی LCD:
knowledgeplus.ir/userfiles/AVR_ps2_kbd_0.rar
دماسنج با LM35:
knowledgeplus.ir/userfiles/AVR_lm35_0.rar
دماسنج با ds18b20:
knowledgeplus.ir/userfiles/AVR_ds18b20_0.rar
نمایش کاراکترهای فارسی و لاتین روی LCD کاراکتری:
knowledgeplus.ir/userfiles/AVR_lcd_0.rar
@KnowledgePlus
چند پروژه برای XMEGA با AtmelStudio:
تولید PWM سینوسی سه فاز با فرکانس 50 هرتز و اضافه کردن Dead time:
https://knowledgeplus.ir/userfiles/XMEGA_SPWM_0.rar
نمایش کاراکترهای فارسی و لاتین روی LCD کاراکتری:
https://knowledgeplus.ir/userfiles/XMEGA_lcd_0.rar
نمایش متن و شکل روی LCD گرافیکی با کنترلر KS0108 :
https://knowledgeplus.ir/userfiles/XMEGA_glcd_0.rar
تولید موج سینوسی با DAC:
https://knowledgeplus.ir/userfiles/XMEGA_dac_0.rar
ساعت قابل تنظیم با DS1307:
https://knowledgeplus.ir/userfiles/XMEGA_ds1307_0.rar
ارتباط با کامپیوتر از طریق پورت RS232 و نمایش کاراکترهای دریافتی روی LCD:
https://knowledgeplus.ir/userfiles/XMEGA_usart_0.rar
اتصال کیبورد ps2 به برد آموزشی و نمایش کاراکترها روی LCD:
https://knowledgeplus.ir/userfiles/XMEGA_ps2_kbd_0.rar
نمایش مقادیر اندازه گیری شده 4 کانال ADC به روش sweep روی LCD کاراکتری:
https://knowledgeplus.ir/userfiles/XMEGA_ADC_1.rar
اتصال پتانسیومتر و نمایش مقدار ADC روی 7segment:
https://knowledgeplus.ir/userfiles/XMEGA_potentiometer_0.rar
دماسنج با LM35:
https://knowledgeplus.ir/userfiles/XMEGA_lm35_lm336_0.rar
دماسنج با ds18b20:
https://knowledgeplus.ir/userfiles/XMEGA_ds18b20_0.rar
تولید فرکانس متغیر با قابلیت تنظیم توسط صفحه کلید:
https://knowledgeplus.ir/userfiles/XMEGA_pulser_0.rar
اتصال Shaft Encoder به برد آموزشی و نمایش شمارنده روی 7segment:
https://knowledgeplus.ir/userfiles/XMEGA_QDEC_0.rar
@KnowledgePlus
تولید PWM سینوسی سه فاز با فرکانس 50 هرتز و اضافه کردن Dead time:
https://knowledgeplus.ir/userfiles/XMEGA_SPWM_0.rar
نمایش کاراکترهای فارسی و لاتین روی LCD کاراکتری:
https://knowledgeplus.ir/userfiles/XMEGA_lcd_0.rar
نمایش متن و شکل روی LCD گرافیکی با کنترلر KS0108 :
https://knowledgeplus.ir/userfiles/XMEGA_glcd_0.rar
تولید موج سینوسی با DAC:
https://knowledgeplus.ir/userfiles/XMEGA_dac_0.rar
ساعت قابل تنظیم با DS1307:
https://knowledgeplus.ir/userfiles/XMEGA_ds1307_0.rar
ارتباط با کامپیوتر از طریق پورت RS232 و نمایش کاراکترهای دریافتی روی LCD:
https://knowledgeplus.ir/userfiles/XMEGA_usart_0.rar
اتصال کیبورد ps2 به برد آموزشی و نمایش کاراکترها روی LCD:
https://knowledgeplus.ir/userfiles/XMEGA_ps2_kbd_0.rar
نمایش مقادیر اندازه گیری شده 4 کانال ADC به روش sweep روی LCD کاراکتری:
https://knowledgeplus.ir/userfiles/XMEGA_ADC_1.rar
اتصال پتانسیومتر و نمایش مقدار ADC روی 7segment:
https://knowledgeplus.ir/userfiles/XMEGA_potentiometer_0.rar
دماسنج با LM35:
https://knowledgeplus.ir/userfiles/XMEGA_lm35_lm336_0.rar
دماسنج با ds18b20:
https://knowledgeplus.ir/userfiles/XMEGA_ds18b20_0.rar
تولید فرکانس متغیر با قابلیت تنظیم توسط صفحه کلید:
https://knowledgeplus.ir/userfiles/XMEGA_pulser_0.rar
اتصال Shaft Encoder به برد آموزشی و نمایش شمارنده روی 7segment:
https://knowledgeplus.ir/userfiles/XMEGA_QDEC_0.rar
@KnowledgePlus
تجربه ای در مورد ساخت چرخ های گلدوزی کامپیوتری در لینک زیر نوشته شد که مطالعه آن می تواند مفید باشد:
https://www.eca.ir/forums/thread79217.html#post667511
@KnowledgePlus
https://www.eca.ir/forums/thread79217.html#post667511
@KnowledgePlus
معرفی یکی از وارد کنندگانی که تاکنون چندبار قطعات اصلی را با قیمت مناسب برای ما وارد کرده اند:
lionelectronic.ir
@KnowledgePlus
lionelectronic.ir
@KnowledgePlus
به افراد علاقه مند به الکترونیک و میکروکنترلر پیشنهاد می شود بخش های مختلف سایت Chan را که حاوی پروژه ها و مطالب ارزشمندی است با صبر و حوصله ملاحظه کنند:
www.elm-chan.org
@KnowledgePlus
www.elm-chan.org
@KnowledgePlus
یکی از دوستان که در کره جنوبی مشغول به تحصیل در مقطع دکترا بودند به نقل از استاد خود قریب به این مضمون را نقل می کردند که یکی از دلایلی که شما ایرانی ها حوصله انجام خیلی از کارها (مثلا پیاده سازی یک الگوریتم یا پروتکل پیچیده) را ندارید این است که پشتتان به معادن و منابعی مثل نفت و گاز و غیره گرم است. بنابراین حوصله پیاده سازی خیلی از موضوعات سخت و پیچیده را ندارید. اما ما کره ای ها چنین معادن و منابعی نداریم و می دانیم که سرمایه ما فقط کار و تلاش است و بنابراین مجبوریم برای انجام بسیاری از کارهای سخت حوصله داشته باشیم.
@KnowledgePlus
@KnowledgePlus
در مورد پست قبل (https://t.iss.one/KnowledgePlus/222) ذکر این توضیح ضروری است که در این مطلب فرض بر استفاده از پردازنده ای بوده که اطلاعات را با فرمت Little Endian ذخیره می کند و بایت های با ارزش کمتر در آدرس های پایین تر قرار می گیرند.
@KnowledgePlus
@KnowledgePlus
پروژه تولید PWM سینوسی سه فاز با AVR و Codevision:
- محدوده فرکانس 0.5 تا 100 هرتز با پله 0.1 هرتز
- قابلیت تنظیم Acceleration و Deceleration
- اعمال منحنی V/f
- قابلیت تغییر ولتاژ Boost
- دارای کلیدهای Run و Stop و Direction برای فرمان به اینورتر
- ورودی برای تشخیص شرایط Fault
این سورس در سال های گذاشته در بخش پروژه های سایت AVRFreaks هم قرار داده شده و بر حسب اطلاع افراد زیادی برای ساخت اینورتر سه فاز از آن استفاده کرده اند.
https://knowledgeplus.ir/userfiles/SPWM3_4Rev0.zip
@KnowledgePlus
- محدوده فرکانس 0.5 تا 100 هرتز با پله 0.1 هرتز
- قابلیت تنظیم Acceleration و Deceleration
- اعمال منحنی V/f
- قابلیت تغییر ولتاژ Boost
- دارای کلیدهای Run و Stop و Direction برای فرمان به اینورتر
- ورودی برای تشخیص شرایط Fault
این سورس در سال های گذاشته در بخش پروژه های سایت AVRFreaks هم قرار داده شده و بر حسب اطلاع افراد زیادی برای ساخت اینورتر سه فاز از آن استفاده کرده اند.
https://knowledgeplus.ir/userfiles/SPWM3_4Rev0.zip
@KnowledgePlus
شخصی با تجارب فراوان از کار و طراحی و تولید در رشته الکترونیک نقل می کرد که هر چند گفته می شود چرخ را از نو اختراع نکنید. اما به دلیل شرایط موجود ما تقریبا هر پول اساسی را که از الکترونیک در این مملکت در آورده ایم از انجام کارهایی بوده که به نوعی شبیه به اختراع کردن چرخ از نو بوده است.
@KnowledgePlus
@KnowledgePlus
نقل یک تجربه عملی:
در بردی مشاهده شد که برخی قطعات smd که با لایه نازکی از قلع از دو نقطه به برد متصل بودند به دلیل وارد شدن ضربه ای شدید به برد از جای خود کنده شده بودند. اما برای قطعات غیر smd که پین های آنها از برد رد شده و از دو طرف به برد لحیم شده بودند مشکل خاصی وجود نداشت.
@KnowledgePlus
در بردی مشاهده شد که برخی قطعات smd که با لایه نازکی از قلع از دو نقطه به برد متصل بودند به دلیل وارد شدن ضربه ای شدید به برد از جای خود کنده شده بودند. اما برای قطعات غیر smd که پین های آنها از برد رد شده و از دو طرف به برد لحیم شده بودند مشکل خاصی وجود نداشت.
@KnowledgePlus
این مطلب اخیرا در تاپیکی مربوط به تجربیات شغلی در انجمن eca قرار داده شد:
یک متولد دهه چهل که بیش از سی سال است در الکترونیک فعالیت می کند اگر بخواهد تجربیات شغلی خود را بیان کند احتمالا به حجمی در حد یک کتاب خواهد رسید. البته سعی شده در این سال ها از طریق همین انجمن و کانال تلگرام شخصی برخی از تجربیات منتقل شود. اما مناسب با احوال این تاپیک اگر بگویند مهم ترین و اساسی ترین تجربه در بین همه موارد را بگو که عدم رعایت آن بیشترین تاثیر منفی را در طول این سال ها داشته خواهم گفت که استفاده از تجربه افراد صاحب تجربه و مشورت کردن با انسان های آگاه و خوش نیت و خودداری از عمل کردن به تشخیص های شخصی، عالی ترین تجربه ای بوده که در طی زمان و با تحمل خسارت های مادی و معنوی فراوان بدست آمده است. من در زمان های دور خیلی به تشخیص های خودم اعتماد می کردم و به اهمیت استفاده از تجربه افراد صاحب تجربه واقف نبودم. اما گذر ایام این را آموخت که استفاده از نظر کسی که در موضوعی دارای سابقه و تجربه بیشتری است تا چه حد اهمیت دارد و چقدر می تواند انسان را جلو بیاندازد. و در نقطه بر عکس عمل کردن به برخی تشخیص های شخصی در امری که اطلاعات و آگاهی کامل در آن وجود ندارد و اعتماد به نفس بی مبنا چقدر می تواند انسان را در زندگی عقب بیاندارد و با مشکلات مواجه کند. امروز هم در مواجهه با افراد کم تجربه ای که برای خودشان به اصطلاح صاحب فتوا هستند و جملاتی شبیه به این می گویند که مثلا: "من به این نتیجه رسیده ام که بیسیک از C بهتر است (یا برعکس)" یا "من به این نتیجه رسیده ام که AVR منسوخ شده است"یا " من به این نتیجه رسیده ام که تولید در این مملکت فایده ندارد" و از این دست " من به این نتیجه رسیده ام ها"، اولین سوالی که مطرح می شود این است که شما در چه مرتبه ای از اطلاعات و تجربه و دانش هستی که به چنین نتایجی رسیده ای و اگر تجربه ندارید و اطلاعاتتان کافی نیست چرا بجای عمل کردن به این تشخیص های شخصی به اصطلاح چراغ بر نمی دارید و برای خریدن زمان و عمر خود به دنبال کسانی نمی روید که خیلی مسیرها را قبلا طی کرده اند و به ابعاد مختلف مسائل خیلی بیشتر از شما آگاهی دارند؟
@KnowledgePlus
یک متولد دهه چهل که بیش از سی سال است در الکترونیک فعالیت می کند اگر بخواهد تجربیات شغلی خود را بیان کند احتمالا به حجمی در حد یک کتاب خواهد رسید. البته سعی شده در این سال ها از طریق همین انجمن و کانال تلگرام شخصی برخی از تجربیات منتقل شود. اما مناسب با احوال این تاپیک اگر بگویند مهم ترین و اساسی ترین تجربه در بین همه موارد را بگو که عدم رعایت آن بیشترین تاثیر منفی را در طول این سال ها داشته خواهم گفت که استفاده از تجربه افراد صاحب تجربه و مشورت کردن با انسان های آگاه و خوش نیت و خودداری از عمل کردن به تشخیص های شخصی، عالی ترین تجربه ای بوده که در طی زمان و با تحمل خسارت های مادی و معنوی فراوان بدست آمده است. من در زمان های دور خیلی به تشخیص های خودم اعتماد می کردم و به اهمیت استفاده از تجربه افراد صاحب تجربه واقف نبودم. اما گذر ایام این را آموخت که استفاده از نظر کسی که در موضوعی دارای سابقه و تجربه بیشتری است تا چه حد اهمیت دارد و چقدر می تواند انسان را جلو بیاندازد. و در نقطه بر عکس عمل کردن به برخی تشخیص های شخصی در امری که اطلاعات و آگاهی کامل در آن وجود ندارد و اعتماد به نفس بی مبنا چقدر می تواند انسان را در زندگی عقب بیاندارد و با مشکلات مواجه کند. امروز هم در مواجهه با افراد کم تجربه ای که برای خودشان به اصطلاح صاحب فتوا هستند و جملاتی شبیه به این می گویند که مثلا: "من به این نتیجه رسیده ام که بیسیک از C بهتر است (یا برعکس)" یا "من به این نتیجه رسیده ام که AVR منسوخ شده است"یا " من به این نتیجه رسیده ام که تولید در این مملکت فایده ندارد" و از این دست " من به این نتیجه رسیده ام ها"، اولین سوالی که مطرح می شود این است که شما در چه مرتبه ای از اطلاعات و تجربه و دانش هستی که به چنین نتایجی رسیده ای و اگر تجربه ندارید و اطلاعاتتان کافی نیست چرا بجای عمل کردن به این تشخیص های شخصی به اصطلاح چراغ بر نمی دارید و برای خریدن زمان و عمر خود به دنبال کسانی نمی روید که خیلی مسیرها را قبلا طی کرده اند و به ابعاد مختلف مسائل خیلی بیشتر از شما آگاهی دارند؟
@KnowledgePlus
موردی را اخیرا از یک محیط صنعتی اطلاع دادند که در یک سیستم کنترلر مبتنی بر PC بعد از مدتی عملکرد ارتباط RS232 مختل می شود و دیتا بصورت اشتباه رد و بدل می شود. بعد از بررسی بسیار زیاد و اطمینان از صحت همه مواردی که باید رعایت شود در نهایت مشخص شد که این اشکال ناشی از ویروسی شدن سیستم بوده است. حال این چه ویروسی بوده که روی صحت ارتباط سریال اثر می گذاشته مورد قابل تاملی است که جای بررسی دارد.
@KnowledgePlus
@KnowledgePlus
مشاهدات مکرر از نیازهای مجموعه های صنعتی و به ویژه در بخش خصوصی حاکی از وجود ظرفیت های بالا برای انجام کارها و پروژه های سنگین و پیچیده است. اما تعداد افرادی که قادر به انجام صورت مسئله های مورد نیاز باشند در عمل بسیار انگشت شمار است. یک دلیل این کمبود شدید در نیروی انسانی متخصص این است که افرادی که داوطلب کار هستند در فاز تجربه آموزی بجای تمرکز روی پیاده سازی کاربردهای خاص و کسب تخصص در یک زمینه معین وقتشان را بیشتر صرف از این شاخه به آن شاخه پریدن و رفتن به دنبال موج های مختلف می کنند و وقتی از فاز آموزش و تجربه آموزی وارد فاز اجرایی و عملیاتی می شوند عملا در هیچ موضوعی بصورت حرفه ای حرفی برای گفتن ندارند.
نمونه رزومه گروه اکثریت:
- کار کردن با نرم افزار X و سخت افزار Y.
نمونه رزومه گروه اقلیت:
- پیاده سازی کاربرد X. تخصص در موضوع Y.
@KnowledgePlus
نمونه رزومه گروه اکثریت:
- کار کردن با نرم افزار X و سخت افزار Y.
نمونه رزومه گروه اقلیت:
- پیاده سازی کاربرد X. تخصص در موضوع Y.
@KnowledgePlus
چندین سال پیش یکی از دوستان که در کارگاه خود بردهای الکترونیکی تولید می کردند اظهار داشتند که از آنجایی که نیروهای مونتاژ کار ما در کارگاه بجای اینکه کارشان را انجام دهند با یکدیگر مشغول صحبت و گپ زدن می شوند، قصد داریم با قرار دادن یک برد الکترونیکی که بتواند صداهای ضعیف را تقویت کند صداهای فضای کارگاه را از طبقه بالا بشنویم تا کارمندان بدانند که در ساعت کاری گفتگوهایشان شنیده می شود و بجای صحبت های زائد کارشان را انجام بدهند. در همین راستا برای طراحی یک مدار آنالوگ کم نویز و با حساسیت بالا به منظور انتقال صدا تقاضای کمک داشتند. بعد از طراحی یک مدار آنالوگ مناسب، برد میکروفن در طبقه پایین قرار داده شد و سیگنال صوتی با سیم به طبقه بالا منتقل شد. وقتی که برای اولین بار در زمانی خارج از ساعت اداری برای تست این مجموعه اقدام شد، اتفاق عجیبی افتاد. به این ترتیب که در خروجی صوت منتقل شده یک صدای بلند و متناوب مثل ضربه زدن با چکش یا دنگ دنگ به گوش می رسید که منبعش معلوم نبود. چون اصلا کسی در طبقه پایین نبود که صدایی را ایجاد کند. بعد از بررسی بالاخره مشخص شد که به دلیل گین بسیار بالای تقویت کننده و کم نویز بودن آن این صدا مربوط به عقربه ثانیه شمار ساعتی است که روی دیوار کارگاه نصب شده و گین بسیار بالای مدار و عملکرد بسیار خوب آن در تقویت صدا سبب شده که صدای ضعیفی در حد ثانیه شمار یک ساعت در فاصله چند متری میکروفن بعد از تقویت مانند صدای ضربات چکش شنیده شود.
@KnowledgePlus
@KnowledgePlus
افزایش قیمت دلار، فرصتی برای کسب سهم بازار:
اگر محصولی را تولید می کنید که دارای رقیب ارزان قیمت خارجی است، افزایش قیمت دلار فرصت خوبی است که بتوانید سهم بیشتری را از بازار فروش آن محصول کسب کنید. فرض کنید قیمت محصول شما و رقیب خارجی هر دو A تومان بوده اما مصرف کننده تا قبل از این برای خرید محصول شما تمایلی از خود نشان نمی داده است و ترجیح می داده محصول خارجی را خریداری کند. حال که به دلیل افزایش قیمت دلار وارد کننده جنس خارجی مجبور است قیمت خود را افزایش دهد، شما می توانید از این فرصت استفاده کنید و با علم به اینکه برای تولیدات بعدی باید بیشتر هزینه کنید، قیمت خود را ثابت نگه دارید. این عدم افزایش قیمت ممکن است در ابتدا نوعی ضرر به نظر برسد. اما در واقع هزینه ای است که صرف می شود تا بخشی از سهم بازار را از رقیب بگیرد. زیرا در این شرایط مصرف کننده ممکن است ترغیب شود که ریسک کند و از محصول شما استفاده کند و وقتی از محصول شما به دلیل قیمت پایین تر استفاده کرد و جواب گرفت دیگر به سادگی از آن دست بر نمی دارد و حتی اگر بعدا قیمت محصول شما اضافه شود به دلیل اعتمادی که به آن ایجاد شده می توانید بخش عمده ای از مشتریان خود را حفظ کنید.
@KnowledgePlus
اگر محصولی را تولید می کنید که دارای رقیب ارزان قیمت خارجی است، افزایش قیمت دلار فرصت خوبی است که بتوانید سهم بیشتری را از بازار فروش آن محصول کسب کنید. فرض کنید قیمت محصول شما و رقیب خارجی هر دو A تومان بوده اما مصرف کننده تا قبل از این برای خرید محصول شما تمایلی از خود نشان نمی داده است و ترجیح می داده محصول خارجی را خریداری کند. حال که به دلیل افزایش قیمت دلار وارد کننده جنس خارجی مجبور است قیمت خود را افزایش دهد، شما می توانید از این فرصت استفاده کنید و با علم به اینکه برای تولیدات بعدی باید بیشتر هزینه کنید، قیمت خود را ثابت نگه دارید. این عدم افزایش قیمت ممکن است در ابتدا نوعی ضرر به نظر برسد. اما در واقع هزینه ای است که صرف می شود تا بخشی از سهم بازار را از رقیب بگیرد. زیرا در این شرایط مصرف کننده ممکن است ترغیب شود که ریسک کند و از محصول شما استفاده کند و وقتی از محصول شما به دلیل قیمت پایین تر استفاده کرد و جواب گرفت دیگر به سادگی از آن دست بر نمی دارد و حتی اگر بعدا قیمت محصول شما اضافه شود به دلیل اعتمادی که به آن ایجاد شده می توانید بخش عمده ای از مشتریان خود را حفظ کنید.
@KnowledgePlus
فرض کنیم در شرایطی که منابع فارسی بسیار کمی در مورد یک مبحث علمی وجود دارد (یا اصلا وجود ندارد)، یک نفر زحمت کشیده و کتابی را برای آموزش آن تالیف کرده است. حال اگر این فعالیت حتی به اندازه سر سوزنی منجر به پیشرفت در آن مبحث علمی شود آیا بجای قدردانی برای این حرکت مثبت باید انواع و اقسام ایرادها را از او بگیریم؟ و یا ضمن تشکر بابت همین فعالیت، پیشنهادات خود را برای بهبود آن ارائه کنیم تا آن شخص برای ادامه مسیر و تکمیل کار خود و برطرف کردن کاستی های احتمالی تشویق شود؟ یکی از ویژگی های جهان سومی همین رفتارها است که اگر هیچ کاری نکنیم و هیچ فعالیت مثبتی را انجام ندهیم کسی کاری با ما ندارد. اما به محض اینکه شخصی بخواهد حرکتی رو به جلو را انجام دهد سیل ایرادگیری ها و انتقادات و عیب جویی است که به سمت او سرازیر می شود. از قدیم گفته اند که دیکته ننوشته غلط ندارد. افرادی را که اطلاعاتشان را در کنج پستوها نگه نمی دارند و برای رشد علمی جامعه تلاش می کنند با این حرکت ها پشیمان نکنیم.
* متن فوق درباره یکی از کتاب های منتشر شده در مورد میکروکنترلرها و حواشی مرتبط با آن نوشته شده است.
@KnowledgePlus
* متن فوق درباره یکی از کتاب های منتشر شده در مورد میکروکنترلرها و حواشی مرتبط با آن نوشته شده است.
@KnowledgePlus
اگر Fcpu فرکانس کلاک در AVR های سری Mega و Tiny باشد، از طریق اجرای کد حداکثر چه فرکانسی را می توان روی پین های غیر pwm بصورت نرم افزاری تولید کرد؟ (پاسخ تشریحی در آینده ارائه می شود)
Fcpu/4 – 78
👍👍👍👍👍👍👍 41%
Fcpu/2 – 54
👍👍👍👍👍 28%
Fcpu/8 – 31
👍👍👍 16%
Fcpu/3 – 15
👍 8%
Fcpu – 13
👍 7%
👥 191 people voted so far. Poll closed.
Fcpu/4 – 78
👍👍👍👍👍👍👍 41%
Fcpu/2 – 54
👍👍👍👍👍 28%
Fcpu/8 – 31
👍👍👍 16%
Fcpu/3 – 15
👍 8%
Fcpu – 13
👍 7%
👥 191 people voted so far. Poll closed.
حداکثر فرکانس قابل تولید بصورت نرم افزاری روی پین های غیر pwm در AVR:
حداکثر سرعت تغییرات روی پین ها بصورت نرم افزاری به زمان اجرای دستورالعمل های اسمبلی مرتبط در میکروکنترلر مورد نظر بستگی دارد. در AVR برای تغییر وضعیت پین های برخی از پورت ها بصورت بیتی می توان از دستورات اسمبلی sbi و cbi استفاده کرد. زمان اجرای این دستورالعمل ها در اکثر شماره های AVR معادل دو سیکل کلاک cpu و در سری Reduced Core tinyAVR تنها یک سیکل کلاک cpu است. بنابراین قابلیت تغییر بیتی پین ها در یک کلاک cpu معین در شماره ای مثل Attiny10 دو برابر سریعتر از مثلا ATmega2560 است. اگر از طریق این دستورالعمل ها وضعیت یک پین بصورت متوالی set و reset شود، فرکانس لحظه ای شکل موج ایجاد شده بسته به خانواده مورد استفاده Fcpu/4 یا Fcpu/2 خواهد بود. مثال برای ایجاد سه سیکل متوالی روی پین 0 از PORTB:
sbi portb,0
cbi portb,0
sbi portb,0
cbi portb,0
sbi portb,0
cbi portb,0
علاوه بر sbi و cbi وضعیت تمام بیت های یک پورت را می توان بصورت همزمان توسط دستور اسمبلی out تغییر داد که البته این دستورالعمل در برخی شماره ها روی همه پورت ها عمل نمی کند. از آنجایی که زمان اجرای دستورالعمل out برای همه خانواده ها تنها یک سیکل کلاک cpu است، پس با استفاده هوشمندانه از آن می توان سیکل های متناوبی با فرکانس لحظه ای Fcpu/2 را ایجاد کرد. مثال برای سه سیکل متوالی روی پین 0 از PORTB در شرایطی که بقیه پین ها 0 باشند:
clr r16
ldi r17,1
...
out portb,r16
out portb,r17
out portb,r16
out portb,r17
out portb,r16
out portb,r17
اما در صورت نیاز به ایجاد یک حلقه مسئله متفاوت است و پرشی که لازم است در انتهای حلقه قرار داده شود، زمان بندی را تغییر می دهد. حداقل زمان اجرای پرش، دو سیکل است که با لحاظ حداقل دو سیکل برای set و reset شدن پین می توان به شکل موجی با فرکانس Fcpu/4 رسید که بخش های Low و High آن متقارن نیستند:
loop:
sbi portb,0
cbi portb,0
rjmp loop
در مثال بالا اگر از خانواده ای استفاده شود که زمان اجرای دستورالعمل های sbi و cbi در آن دو سیکل باشد، فرکانس شکل موج نهایی Fcpu/6 خواهد بود. برای ایجاد تقارن باید تاخیری را بعد از set کردن پین اضافه کرد که باعث کاهش فرکانس می شود. نتیجه کلی اینکه با استفاده صحیح از دستورالعمل های cpu امکان تولید سیکل هایی با فرکانس تا حداکثر Fcpu/2 روی پین ها وجود دارد که در صورت استفاده از حلقه این فرکانس کاهش می یابد.
حال وقتی با زبان های سطح بالا مثل C و BASIC برنامه می نویسیم، بسته به اینکه کد را چطور بنویسیم و از چه کامپایلری استفاده کنیم و کامپایلر را در چه سطحی از Optimization قرار دهیم، کامپایلر دستورالعمل هایی را جایگزین خطوط برنامه سطح بالا می کند که می تواند منجر به زمان بندی متفاوتی شود. مثلا اگر در زبان C برای تولید یک شکل موج بصورت نرم افزاری نوشته شود:
while(1) PORTB^=0x01;
کامپایلر کد بالا را با معادل اسمبلی شبیه کد زیر جایگزین می کند:
loop:
ldi r16,1
in r17,portb
eor r17,r16
out portb,r17
rjmp loop
که خروجی این کد شکل موجی با فرکانس Fcpu/12 را روی PORTB0 ایجاد خواهد کرد.
از توضیحات بالا می توان نتیجه گرفت که رسیدن به حداکثر قابلیت های یک سخت افزار وابستگی کاملی به روش و ابزارهای کدنویسی دارد و در یک سخت افزار ثابت، استفاده از روش های نرم افزاری مختلف می تواند منجر به نتایج متفاوتی شود.
@KnowledgePlus
حداکثر سرعت تغییرات روی پین ها بصورت نرم افزاری به زمان اجرای دستورالعمل های اسمبلی مرتبط در میکروکنترلر مورد نظر بستگی دارد. در AVR برای تغییر وضعیت پین های برخی از پورت ها بصورت بیتی می توان از دستورات اسمبلی sbi و cbi استفاده کرد. زمان اجرای این دستورالعمل ها در اکثر شماره های AVR معادل دو سیکل کلاک cpu و در سری Reduced Core tinyAVR تنها یک سیکل کلاک cpu است. بنابراین قابلیت تغییر بیتی پین ها در یک کلاک cpu معین در شماره ای مثل Attiny10 دو برابر سریعتر از مثلا ATmega2560 است. اگر از طریق این دستورالعمل ها وضعیت یک پین بصورت متوالی set و reset شود، فرکانس لحظه ای شکل موج ایجاد شده بسته به خانواده مورد استفاده Fcpu/4 یا Fcpu/2 خواهد بود. مثال برای ایجاد سه سیکل متوالی روی پین 0 از PORTB:
sbi portb,0
cbi portb,0
sbi portb,0
cbi portb,0
sbi portb,0
cbi portb,0
علاوه بر sbi و cbi وضعیت تمام بیت های یک پورت را می توان بصورت همزمان توسط دستور اسمبلی out تغییر داد که البته این دستورالعمل در برخی شماره ها روی همه پورت ها عمل نمی کند. از آنجایی که زمان اجرای دستورالعمل out برای همه خانواده ها تنها یک سیکل کلاک cpu است، پس با استفاده هوشمندانه از آن می توان سیکل های متناوبی با فرکانس لحظه ای Fcpu/2 را ایجاد کرد. مثال برای سه سیکل متوالی روی پین 0 از PORTB در شرایطی که بقیه پین ها 0 باشند:
clr r16
ldi r17,1
...
out portb,r16
out portb,r17
out portb,r16
out portb,r17
out portb,r16
out portb,r17
اما در صورت نیاز به ایجاد یک حلقه مسئله متفاوت است و پرشی که لازم است در انتهای حلقه قرار داده شود، زمان بندی را تغییر می دهد. حداقل زمان اجرای پرش، دو سیکل است که با لحاظ حداقل دو سیکل برای set و reset شدن پین می توان به شکل موجی با فرکانس Fcpu/4 رسید که بخش های Low و High آن متقارن نیستند:
loop:
sbi portb,0
cbi portb,0
rjmp loop
در مثال بالا اگر از خانواده ای استفاده شود که زمان اجرای دستورالعمل های sbi و cbi در آن دو سیکل باشد، فرکانس شکل موج نهایی Fcpu/6 خواهد بود. برای ایجاد تقارن باید تاخیری را بعد از set کردن پین اضافه کرد که باعث کاهش فرکانس می شود. نتیجه کلی اینکه با استفاده صحیح از دستورالعمل های cpu امکان تولید سیکل هایی با فرکانس تا حداکثر Fcpu/2 روی پین ها وجود دارد که در صورت استفاده از حلقه این فرکانس کاهش می یابد.
حال وقتی با زبان های سطح بالا مثل C و BASIC برنامه می نویسیم، بسته به اینکه کد را چطور بنویسیم و از چه کامپایلری استفاده کنیم و کامپایلر را در چه سطحی از Optimization قرار دهیم، کامپایلر دستورالعمل هایی را جایگزین خطوط برنامه سطح بالا می کند که می تواند منجر به زمان بندی متفاوتی شود. مثلا اگر در زبان C برای تولید یک شکل موج بصورت نرم افزاری نوشته شود:
while(1) PORTB^=0x01;
کامپایلر کد بالا را با معادل اسمبلی شبیه کد زیر جایگزین می کند:
loop:
ldi r16,1
in r17,portb
eor r17,r16
out portb,r17
rjmp loop
که خروجی این کد شکل موجی با فرکانس Fcpu/12 را روی PORTB0 ایجاد خواهد کرد.
از توضیحات بالا می توان نتیجه گرفت که رسیدن به حداکثر قابلیت های یک سخت افزار وابستگی کاملی به روش و ابزارهای کدنویسی دارد و در یک سخت افزار ثابت، استفاده از روش های نرم افزاری مختلف می تواند منجر به نتایج متفاوتی شود.
@KnowledgePlus