loading...
وب سایت تخصصی مدار منطقی
لیست پروژه دانشجویی برق الکترونیک ICT

آموزش TFT LCD

امین پاشایی بازدید : 2999 جمعه 07 شهریور 1393 نظرات (0)

دکدینگ ریموت کد لرن

با سلام به همه دوستان گرامی :) امروز قصد دارم که برنامه و سورسی رو قرار بدم که گاها دیده شده تو اینترنت به فروش می رسه، با این که چیز خاصی نداره !:o

چند وقت پیش این کد رو نوشته بودم ، فرصتی دست داد تا اون رو بهبود ببخشم و برای انتشار آماده کنم ، اول یه خلاصه در مورد کد موصوف عرض می کنم خدمت دوستان تا آن دسته از دوستانی که با موضوع آشنایی ندارند ، در جریان بحث قرار بگیرد:idea:،

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

نمونه های مدلاسیون

زیاد وارد بحث مودلاسیون نمی شم چون تقریبا باش کاری نداریم و از موضوع اصلی فاصله می گیرم ، نوع مدلاسیونی که برای این نوع ریموت ها استفاده میشه مدلاسیون ASK هست ، این نوع مدلاسیون بر روی دامنه موج حامل اثر گذاشته و به این ترتیب باعث انتقال اطلاعات میشه ، به عکس زیر دقت کنید ، نمونه ای از مدلاسیون ASK هست

Digital_wireless-ASK

مدلاسیون ASK یکی از ساده ترین انواع مدلاسوین هست ، و تاثیر پذیری خیلی شدیدی از عوامل محیطی داره ، بنابراین برای فرستنده های برد بالا معمولا از این نوع مدلاسیون استفاده نمیشه ، ولی برای استفاده در ریموت های برد نزدیک بسیار پرکاربرده و ارزان قیمت به نسبت انواع دیگر مدلاسیون ها ،

تا اینجا با نحوه ارسال اطلاعات آشنا شدیم ، حالا نیاز هست که داده های ارسالی از ریموت رو دریافت کرده و آنها رو آشکار سازی کنیم ، قبل از هر چیزی نیاز هست که یک گیرنده ASK داشته باشیم که به کمک اون امواج منتشر شده رو دریافت کرده و موج حامل رو از داده ها جدا کنیم ، برای این کار ماژول هایی آماده ای وجود داره که در زمان نگارش این نوشته قیمت آنها حدود ۳ الی ۷ هزار تومن هست ، تفاوت قیمت هم ناشی از کیفیت ساخت و حساسیت گیرندگی اونها هست.

ماژول گیرنده ASK DX-RF 433

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

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

اصولا این نوع ریموت ها از آیسی EV1527 برای این منظور استفاده میکنن و خوانده هایی مشابه ، این آیسی ها از انکدر OTP برای ارسال داده ها استفاده میکنن ، تو این نوع انکدینگ نسبت صفر بودن سیگنال به یک بدون اون مشخص گر منطق صفر یا یک است، مثلا اگر میزان صفر بودن دوبرابر میزان یک بود سیگنال تو یه سیکل نوسانی باشه اون موقه میشه صفر منطقی ، برای روشنتر شدن موضوع به تصویر زیر دقت کنید

ev1527همونطور که مشخصه ، کد ارسالی از سه بخش تشکیل شده ، یه قسمت شروع هست که باید نسبت صفر بودن ۳۱ برابر بزرگتر از یک بودن باشه ، با دریافت این وضعیت شما باید منتظر ۲۴ بایت داده باشید که مشخص کننده کد ریموت و وضعیت کلید های اون هست !

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

نمونه کد های زیادی رو در این راستا دیدم ، چه سورس هایی که تو اینترنت به فروش می رسه ، و چه سورس هایی که بصورت آموزشی منتشر شده ، هیچکدام از روش اصولی برای این کار استفاده نکردن ، نمونه هایی دیدم که حتما باید ریموتی استفاده می کردید که مقاومت نوسان سازش مقدار خاص باشه (چون توس کد صرفا مقدار صفر بودن بررسی میشده:wink: ) که برد خوبی هم نداشته ، با ضعیف شدن باطری ریموت درست کار نمیکنن و مسائل زیادی که بوجود میاره.

این کد رو به زبان سی نوشتم برای میکروی مگا۸ و برای کامپایلر GCC هست ، فرکانس میکرو هم ۸ مگاهرتزه که باید از طریق کریستال خارجی تامین بشه ، در ضمن به راحتی میتونید با اضافه کردن تیکه کد ساده ای گیرنده ۴ کاناله بسازید

در ضمن خروجی ماژول گیرنده باید به اینتراپت ۰ وصل بشه که برای مگا۸ میشه پایه ۴ ، این کد رو با سه نمونه ریموت آزمایش کردم موردی نداشته ، هم با فرکانس ۳۱۵ و هم با فرمانس ۴۳۳ ، با ریموت ۴۳۳ بدون آنتن گیرنده ، تا حدود ۸ متر جواب میده !

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

نویسنده این بخش آقای محمد مزارعی

برای خرید این ماژول روی همین متن کلیک کنید

دانلود سورس کدها :

 

امین پاشایی بازدید : 704 چهارشنبه 29 مرداد 1393 نظرات (0)

این قطعه در موقعیت یابی پرینتر ها و دستگاه های CNC مورد استفاده قرار می گیرد که به انکدر مشهور هست چند روزی دنبال دیتاشیت این المان بودم که متاسفانه توسایت های فارسی چیزی نبود تا اینکه رو آوردم به یه سایت چینی که می تونید در زیر وارد این سایت شوید

http://www.kodenshi.co.jp/english/products/encoder/encoder.html

http://www.kodenshi.co.jp/english/news/2009/01/

برای دریافت دیتاشیت این سنسور لینک زیر را کلیک کنید

KE_1_13.PDF

امین پاشایی بازدید : 2537 شنبه 16 فروردین 1393 نظرات (4)

کرک نرم افزار آلتیوم دیزاینر

1- ابتدا فایل زیر را دانلود کرده وسپس تو دسکتاپ توسط نرم افزار Winrar اکسترک کنید

2-هر دو فایل رو در مسیری که نرم افزار رو نصب کردید کپی کنید

مثل C:\Program Files\Altium\AD 10

3-روی فایل فایل HS-AD10.exe کلیک راست و سپس Run as adminestor  را کلیک کرده و اگر پیغامی مبنی بر YES یا NO مشاهده کردید روی YES کلیک کنید

4-بر روی گزینه patch کلیک کنید تا پیغام patching done نمایان شود

توجه (اگر هنگام patch کردن با پیغام can not find the file مواجه شدید روی yes کلیک کنید و در پنجره ای که باز می شود به صورت دستی وارد مسیر نصب نرم افزار بشید و فایل DXP.exe رو انتخاب کنید)

5-نرم افزار آلتیوم را اجرا کنید

6- روی گزینه standlon licenceکلیک کنید و فایل hs-ads10.alf که در مسیر نصب نرم افزار قرار دارد را انتخاب کنید

 

موفق باشید

دانلود کرک آلتیوم دیزاینر10

پسورد    www.logic-circuit.ir

امین پاشایی بازدید : 989 دوشنبه 11 فروردین 1393 نظرات (0)

 مدیریت توان:

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

 

معرفي مدهاي SLEEP

1.مد IDLE :

كلاك CPU  متوقف مي شود.

ميكرو به SPI, ANALOG CAMPARATOR, ADC TIMER/COUNTER,WATCHDOGو وقفه هاي سيستم اجازه كار مي دهد. برای بیدار نمودن CPU در این مد می توان از وقفه های خارجی و داخلی مانند سرریز تایمر،وقفه مربوط به USART و...بیدار نمود.

 

2.مدکاهش نویز (ADC  NOISE REDUCTION)     

- كلاك هاي FLASH,I/O,CPU را به حالت مكث مي برد.

- جهت كاهش نويز سيستم در زمان نمونه برداري ADC طراحي شده.

- باعث تبديل با وضوح بيشتر ADC  مي شود.

- با فعال بودن ADC ، وارد شدن به اين مد باعث شروع نمونه برداري ADC از سيگنال آنالوگ مي شود.

- وقفه اتمام تبديل  ADC ،وقفه ريست خارجي ، وقفه خارجي INT2 ،ريست WATCHDOG ، وقفه تايمر 2 ،وقفه آمادگي EEPROM ميكرو را از اين مد خارج مي كنند.

 

 3 .مد :POWER- DOWN

-اسيلاتور خارجي متوقف مي شود.

-وقفه هاي خارجی، 2wireو WATCHDOG اگر فعال شده باشند به عملياتشان ادامه مي دهند.

-ريست خارجي ، ريست  WATCHDOG ، وقفه خارجي INT2 ،ريست BROWN-OUT ،،وقفه خارجي حساس به سطح INT0 و INT1 مي توانند ميكرو را از اين مد خارج كنند

 

4 .مد :POWER- SAVE

اين مد با مد POWER-DOWN  يكسان است.

با اين تفاوت كه :

در اين مد، تايمر/ كانتر دو مي تواند با يك شدن بيت AS2 در رجيستر  ASSRبه صورت غير همزمان كار كند.

زماني كه تايمر/ كانتردو در مد غيرهمزمان استفاده نمي شود مد POWER-DOWN ترجيح داده مي شود.

 

5 .مد :STANDBY

اين مد در حالتيكه ميكرو با كريستال يا نوسانگر خارجي كار مي كند معتبر است. اين مد با مد POWER-DOWNيكسان است.

با اين تفاوت كه:

- در اين مد كريستال خارجي قطع نمي شود .

- ميكرو پس از گذشت 6 كلاك سيكل از اين مد بيدار مي شود.

 

6 .مد EXTENDED-STANDBY

اين مد در حالتيكه ميكرو با كريستال يا نوسانگر خارجي كار مي كند معتبر است.

اين مد با مد POWER-SAVEيكسان است.

با اين تفاوت كه:

- در اين مد كريستال خارجي قطع نمي شود .

- ميكرو پس از گذشت 6 كلاك سيكل از اين مد بيدار مي شود.

 

نکته:

زمانیکه AVR از مد Sleep بیدار می شود محتویات فایل رجیستر و SRAM ثابت می مانند.

 

رجیستر مربوط به Sleep :

رجیستر کنترل MCU (MCUCR)k

 

Bit 7 – SE: Sleep Enable

این بیت برای فعال سازی Sleep می باشد.

 

 Bits 6...4 – SM2..0: Sleep Mode Select Bits 2, 1, and 0

توسط این سه بیت می توان مد Sleep را انتخاب نمود.در شکل زیر محوه انتخاب آنرا نمایش می دهد.

 

در جدول زیر منابع بیدار کردن MCU در مدهای مختلف را نشان می دهد.(ATmega32 )

 

 


امین پاشایی بازدید : 1043 پنجشنبه 29 اسفند 1392 نظرات (0)

امروزه با پیشرفت روز افزون تجهیزات و الکترونیکی شدن آنها، بکارگیری سیستم های یکپارچه رونق زیادی یافته است. به طوری که در اکثر دستگا ههای جدید از این سیستم ها استفاده می شود. به عنوان مثال گوشی های همراه، دستگاه و ….اکثراً دارای این تجهیزات الکترونیکی می باشند. با توجه به این موضوع اکثر ABS سیستم های ترمز ،GPS شرکت ها و کارخانجات الکترونیکی به سمت این سیستم های الکترونیکی روی آورده اند. که این خود باعث ایجاد یک رقابت در بین تولیدکنندگان پردازنده های سرعت بالا شده است. در این خلال نسل جدید پردازنده های ARM به بازار معرفی شدند ، که دارای سیستم پردازش ۳۲ بیتی با سرعت پردازش چند مگاهرتز تا چند صد مگ اهرتز می باشند . سرعت بالا، قیمت ارزان و حجم کم این پردازنده ها باعث شد که اکثر تولیدکنندگان میکروکنترلرها و پروسسورها مانند ATMEL PHILIPS, و… آنرا در لیست محصولات خود قرار دهند.حجم کم پردازنده های ARM باعث شده که اکثر فضای داخلی میکروکنترلرها برای تجهیزات جانبی مانند DAC ، Serial, LAN, USB, ADC و … بکار گرفته شود.هسته داخلی تمام میکروکنترلرهای ARM کارخانجات مختلف یکی است بنابراین برنامه نوشته شده برای یک سری از میکروکنترلرها را می توان برای سری دیگر نیز استفاده کرد.



پردازنده هایی که در میکروکنترلرهای ARMاستفاده می شوند ، پردازنده های ۳۲ بیتی با معماری Risk می باشد، این پردازنده ها برای کاربردهای قابل حمل (Portable) بهینه سازی شده اند به صورتی که مصرف توان آن ها بسیار کم است و می توان آن ها را توسط باتری برای مدت زیادی روشن نگه داشت به عنوان نمونه می توان گوشی های موبایل را نام برد که در آنها از این هسته پردازشی استفاده می شود.
معروفترین هسته پردازنده ARM7 ، ARM می باشد که یکی از رایج ترین هسته های پردازشی موجود می باشد.
بعد از ARM 7 به ترتیب ARM9 و ARM10 و ARM11 قرار دارند.
انواع هسته های پردازنده سری : ARM7

ARM7TDMI (1: رایج ترین هسته پردازنده ۳۲ بیتی با معماری RISK می باشد.
: ARM7TDMI-S (2 این هسته نسخه قابل سنتز ARM7TDMI است.
ARM72OT (3: این هسته علاوه بر ویژگی های هسته های بالا داری حافظه CASHو بخش مدیریت حافظه می باشد.
: ARM7EJ-5 (4 این هسته برخی از قابلیت های پیشرفته DSP را در خود دارد و برای کارهای پردازش سیگنال مناسب می باشد.

پردازنده های ARM از سیستم PIPELINE برای پردازش استفاده می کنند منظور از این سیستم این است که پردازنده دارای سه مد کاری برای اجرای یک دستور است:
FETCH (1 یا بازخوانی اطلاعات از حافظه کد
DECODE (2 یا رمزگشایی اطلاعات نوشته شده
EXECUTE (3 یا اجرای برنامه در پردازنده های قدیمی تر
در سیکل اول دستور اول FETCH می شود ، در سیکل دوم دستور اول DECODE می شود دستور دوم FETCHمیشود. در سیکل سوم دستور اول EXECUTE دستور دوم DECODE می شود و دستور سوم FETCHمی شود.
این نوع سیستم ۳ STAGE PIPELINE است.
در پردازنده های ARM بالاتر مانند ARM9 سیستم پردازش ۵STAGE PIPELINE می باشد که عملیات خواندن و نوشتن از حافظه ها نیز جزء این عملیات قرار گرفته در۱۰ ARM سیستم پردازش به صورتPIPELINE 6 STAGE است.

انتخاب میکرو کنترلر :

شرکت های مختلفی میکروکنترلر های بر مبنای پروسسور ARM می سازند مانند : atmel , Philips ,Samsung , St-micro , Motorola و کمپانی های دیگر ما از میان این شرکت ها میکروکنترلر های ساخت Philips رو که از تولید شرکت NXP است به دلایل زیر انتخاب کردیم:
· قطعات سری LPC2000 یکی از متنوع‏ترین خانواده‏ های میکروکنترلرهای با هسته‏ی ARM7 هستند و قطعات این سری، در مقایسه با AT91SAM قیمت کمتری دارند. مثلاً قیمت LPC2101 حدود ۲ دلار است که این مقدار از خیلی از میکروکنترلرهای ۸ بیتی (مثل ATmega16) کمتر است.
· اجرای برنامه از حافظ ه‏ی فلش بسیار سریعتر است. بدلیل دسترسی ۱۲۸ بیتی به حافظه‏ی فلش و وجود واحد شتاب‏دهنده‏ی حافظه (MAM)، قطعات LPC2000 می‏توانند در مُد ARM با حداکثر سرعت ۶۰ تا ۷۵ MHz به حافظه‏ی فلش دسترسی داشته باشند؛ در حالیکه که SAM7ها با سرعتی کمتر از نصف این مقدار کد برنامه را اجرا می‏کنند. علاوه براین، در مقایسه با سایر میکروهای با هسته ی ARM7، فرکانس کاری میکروکنترلرهای LPC2000 نسبتاً بالاست (۶۰ تا ۷۰ مگاهرتز در LPC2000ها در مقایسه با ۵۵ مگاهرتر در sam
· راه‏اندازی Peripheralهای قطعات LPC2000 ساده‏تره. اکثر سخت‏افزارهای جنبی به شکلی طراحی شده‏اند که لازمه رجیسترهای کمتری تنظیم بشن و بسیاری از اونها را می‏تونید به حالت پیش‏فرض رها کنید.
· میکروکنترلرهای LPC2000 دارای Peripheralهایی هستند که به ندرت در سایر میکروکنترلرهای با هسته‏ی ARM7 دیده می‏شه. مثلاً تایمر ۳۲ بیتی با پیش‏تقسیم‏کننده‏ی ۳۲ بیتی (AT91SAMها فقط تایمر ۱۶ بیتی دارن!)، DAC، RTC، LIN، SSP، MMC/SD Controller، USB Host/OTG، Fast GPIO ،XGA LCD Controller و غیره.
· قطعات LPC دارای تعداد I/O بیشتری هستند. مثلاً قطعه‏ی LPC2132 که یک قطعه‏ی ۶۴ پایه است ۴۷ پایه‏ی GPIO داره درحالیکه قطعه ی مشابه ۶۴ پایه ای AT91SAM7S64، دارای ۳۲ خط I/O است.
· مستندات و نمونه برنامه های ارائه شده توسط NXP برای LPCها کاملتر و غنی از ATmel برای SAM7هاست.

حافظه فلش چیپ می تواند به روش های مختلفی برنامه ریزی شود :

۱- واسط سریال J-Tag 2- به صورت ISP توسط UART0 3- استفاده از in application programming (IAP)

کامپایلر ها و مفسر های موجود برای چیپ های ARM را در اینجا ذکر می کنم :

IAR : قابلیت برنامه نویسی میکرو کنترل های ارم ببه زبان های C و C++و اسمبلی ، امکان شبیه سازی برنامه نوشته شده ، پشتیبانی تمامی میکروکنترلر های ارم ، منابع اموزشی متوسط و محیط حرفه ای ، پشتیبانی از SPY-C که امکانات خیلی زیادی دارد ، سرعت اجرای بالا و سازگاری کامل با ANSI C ، توابع کتاب خانه ای کم ، نداشتن باگ های امنیتی.

Winarm : قابلیت برنامه نویسی به زبان های C و C++ ، عدم شبیه سازی برنامه ، فقط پشتیبانی ARM7 ، منابع آموزشی و مثال های زیاد ، متن باز بودن برنامه و بالطبع رایگان بودن ، داشتن توابع کتابخانه ای بالا ، ۳ سال است که این نرم افزار به روز رسانی نشده است.

Keil : برنامه نویسی به زبان های Cو C++ و اسمبلی ، امکان شبیه سازی برنامه نوشته شده ، پشتیبانی تمام میکروکنترلر های ARM ، کاربرپسند بودن برنامه و منابع اموزشی متوسط

سایر کامپایلر ها : Cross works for ARM , Flowcode ARM, ARM ADS,تقریبا دو کامپایلر keil و IAR از محبوبیت بیشتری برخوردارند .

شما میتونید تو لینک زیر جزوات و مقالات آموزشی زیادی درباره این نوع میکروکنترلرها دانلود کنید

تعداد صفحات : 7

اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    پیوندهای روزانه
    آمار سایت
  • کل مطالب : 41
  • کل نظرات : 24
  • افراد آنلاین : 2
  • تعداد اعضا : 286
  • آی پی امروز : 18
  • آی پی دیروز : 71
  • بازدید امروز : 26
  • باردید دیروز : 275
  • گوگل امروز : 0
  • گوگل دیروز : 12
  • بازدید هفته : 1,036
  • بازدید ماه : 767
  • بازدید سال : 16,363
  • بازدید کلی : 250,489
  • نویسندگان سایت مدار منطقی

     امین پاشایی