تبليغاتX
الکترو(نيک) و کامپیوتر

الکترو(نيک) و کامپیوتر


اتصال حافظه MMC به AVR

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

کارت های فلش دارای انواع مختلف می باشند مثل SD و MMC و .... دو نمونه از این کارت ها در شکل زیر می بینید:

 

MMC And SD TopView

 

نمای زیرین این کارت ها هم به این صورت می باشد:

 

MMC And SD BottomView

 

کارت MMC موجود در عکس دارای پایه هستش که وقتی پایه اونو جدا کنیم اندازش نصف می شه.

من کارتی رو که به میکرو وصل کردم و  جواب گرفتم کارت MMC هست که در تصویر بالا می بینید .SD هم تست کردم ولی درست جواب نمیده شاید اشکال از کامندهای اون باشه . به شما پیشنهاد میکنم MMC بگیرین تا به مشکل بر نخورین. شماره پایه MMC به صورت زیر می باشد:

 

MMC PIN.

 

ارتباط با این کارت ها به صورت سریال هست و در دو مود SPI و MMC کار می کنه و چون آیسی های میکروکنترلر AVR دارای سخت افزار SPI میباشند می توانند با مد SPI با MMC ارتباط برقرار کنند.نحوه اتصال MMC به میکروکنترلر ATMEGA16 در شکل زیر می بیند:

 

MMC And AVR Circuit

 

تغذیه MMC 3.2 ولت هستش که توسط یک رگولاتور ترانزیستوری که در شکل می بینید ساخته می شود. چون تغذیه میکروکنترلر 5 ولت و تغذیه MMC 3.2 ولته برای تبدیل سطح از تقسیم مقاومتی استفاده شده است که در شکل بالا می بینید.

سورس های زیادی در اینترنت برای ارتباط با MMC وجود دارند که من تعداد زیادی از آنها را گرفتم و تست کردم و جواب گرفتم و بیشتر سورس ها به زبان C هستش ولی با WinAVR یا برنامه های دیگه نوشته شده و با CodeVision سازگاری ندارند که با کمی تغییرات می شه سورس ها رو  داخل CodeVision آورد و کامپایل کرد. من یک نمونه از این سورس ها رو با اندکی تغییرات داخل CodeVision آوردم و توابع مربوط به نوشتن و خواندن را داخل یک فایل جدا به نام mmc.h   قرار دادم تا بشه از اون در پروژه های دیگه هم استفاده کرد.

داخل این فایل دو تابع وجود دارد با نام های Write_MMC و Read_MMC که هر دوی این توابع یک عدد به عنوان آدرس بلاکی که دیتا باید در ان آدرس نوشته یا خوانده شود , می گیرند. اگر تابع Write_MMC  فراخوانی شود مقادیر موجود در آرایه MMC_Buffer در آدرسی که در ورودی تابع تعیین شده نوشته می شود و اگر تابع Read_MMC فراخوانی شود از آدرسی که در ورودی تابع تعیین شده ۵۱۲ بایت از MMC خوانده می شود و در آرایه MMC_Buffer قرار داده می شود .

 

یک مثال با CodeVision نوشتم که طرز استفاده از این هدر فایل را نشان می دهد. همراه فایل پروژه یک فایل PDF است که کامندهای MMC را نشان می دهد.

 

دانلود سورس پروژه!

 

2 نوشته شده در  سه شنبه 1387/02/17ساعت 16:9  توسط علی | 

اتصال avr به usb

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

من تو اینترنت زیاد گشتم و پروژه های زیادی به این منظور پیدا کردم . یکی از این پروژه ها که تست کردم و جواب می ده وساده هم هست اینه که با یک میکرو کنترلر Atmega8 پورت USB رو به پورت سریال تبدیل می کنه و می تونید داخل پروژه هاتون ازش استفاده کنید.

این پروژه رو می تونید از اینجا دانلود کنید. داخل این فایل زیپ, یک فایل هگز هستش که اونو روی میکروکنترلر mega8 بریزید بعد طبق نقشه شماتیکی که همراه پروژه هستش میکرو را به USB وصل کنید. بعد از وصل کردن میکرو به USB ویندوز پیغام پیدا شدن سخت افزار جدید می ده برای نصب درایور باید در پنجره نصب درایور مسیر فایل avrcdc.inf رو که همراه فایل زیپ هست رو بدیم تا درایور نصب بشه. بعد از نصب کردن داریور, ویندوز یک Com مجازی می سازه که ما می تونیم مثل Com با آن رفتار کنیم یعنی وقتی اطلاعات رو به این Com می فرستیم در واقع به USB ارسال می شه بعد میکرو اطلاعات را از USB خوانده و آن را به صورت سریال به ما می دهد و برعکس.

 آیسی هایی هستند که تبدیل USB به Com (FT232) هستند و یا کابل های تبدیل هستند که این کارو می کنن ولی این پروژه به مراتب ارزونتر در میاد و باحالتره  چون دارای میکرو هستش و می تونید استفاده های دیگری هم از اون بکنید.

امیدوارم به کارتون بیاد!

منبع اصلی!

2 نوشته شده در  دوشنبه 1386/12/27ساعت 22:25  توسط علی | 

Atmel 89 Series Device Programmer

من یک نمونه از این پروگرامر رو منتاژ کردم و ۱۰۰٪ جواب میده.

Atmel 89 Series Device Programmer

این پروگرامر قابلیت پروگرام کردن آیسی های زیر را دارد:

Flash (Kbytes) EEPROM RAM (Bytes) I/O Pins
AT89C51 4 128 32
AT89LV51 4 128 32
AT89C52 8 256 32
AT89LV52 8 256 32
AT8C55 20 256 32
AT89LV55 20 256 32
AT89S51 4 128 32
AT89LS51 4 128 32
AT89S52 8 256 32
AT89LS52 8 256 32
AT89S53 12 256 32
AT89LS53 12 256 32
AT89S8252 8 2 Kb 256 32
AT89LS8252 8 2 Kb 256 32
AT89C1051 1 128 15
AT89C2051 2 128 15
AT89C4051 4 128 15

برای اطلاعات بیشتر به منبع اصلی مراجعه کنید.

پروگرامر ساده تر برای میکروکنترلرهای سری 89S

2 نوشته شده در  چهارشنبه 1386/08/09ساعت 19:16  توسط علی | 

استفاده از پورت موازی کامپیوتر در دات نت

در ویژوال استودیو 2005 هیچ کنترلی جهت کار با پورت موازی طراحی نشده است در نتیجه برای کار با پورت موازی ما از یک  dll به نام inpout32.dll استفاده می کنیم.برای استفاده از این dll ابتدا ما باید آن را به برنامه خود وارد کنیم.من دو مثال یکی به زبان C#.net و یکی به زبان  VB.net نوشتم که طرز استفاده از این dll را نشان می دهد.

 

دانلود ۱۰۰کیلو  (Updated 1387/2/30)

 

شکل زیر شماره پین های پورت موازی را نشان میدهد.

 

 

مشخصات هر پین در جدول زیر نوشته شده است.

 

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

 

اگر سوالی در مورد این پست داشتید در قسمت نظرات بگویید تا در اسرع فقط پاسخ دهم.

 

 

Signal BIT PIN Direction
-Strobe

¬C0

1 Output
+Data Bit 0 D0

2 Output
+Data Bit 1 D1

3 Output
+Data Bit 2 D2

4 Output
+Data Bit 3 D3

5 Output
+Data Bit 4 D4

6 Output
+Data Bit 5 D5

7 Output
+Data Bit 6 D6

8 Output
+Data Bit 7 D7

9 Output
-Acknowledge

S6

10 Input
+Busy

¬S7

11 Input
+Paper End

S5 12 Input
+Select In

S4 13 Input
-Auto Feed

¬C1 14 Output
-Error

S3

15 Input
-Initialize

C2

16 Output
-Select

¬C3

17 Output
Ground

-

18-25

Ground

 این پست استفاده از پورت های کامپیوتر توسط سی تحت داس را نشان می دهد.

 

2 نوشته شده در  سه شنبه 1386/07/24ساعت 21:31  توسط علی | 

پروگرامر FPGA & CPLD - JTAG

این پروگرامر به پورت موازی وصل می شود و قابلیت پروگرام کردن آیسی های خانواده

Virtex/E/II/I-PRO Families (FPGA)

CoolRunner Families (CPLD)

Spartan/II/II-E/3 Families (FPGA)

XC9500/XL/XV Families (CPLD)

XC1800 Families (PROM)

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

Click here
2 نوشته شده در  شنبه 1386/07/07ساعت 19:13  توسط علی | 

سایت خودم
این سایت خودمه

http://www.Projeha.com 

2 نوشته شده در  جمعه 1386/04/08ساعت 1:22  توسط علی | 

پروگرامر ساده برای میکروکنترلر های AVR

برای استفاده از این پروگرامر می توانید از نرم افزار کد ویژن یا بیسکام استفاده کنید.این نقشه ساده شده پروگرامر stk 200/300 هست فقط باید مواظب پورت موازی باشید چون با یک اشتباه می سوزه .

AVR programer

2 نوشته شده در  جمعه 1385/07/21ساعت 15:8  توسط علی | 

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

                  shematic

اینم سورس برنامش  دانلود ۲کیلو که به زبان سی نوشتم.و مخصوص میکروکنترلرهای ۸۰۵۱ هستش برای کامپایل کردن برنامه می تونید از برنامه فرانکلین استفاده کنید.من هگز برنامه هم براتون گذاشتم  می تونید با استفاده از پروگرامر ۸۰۵۱ اون رو روی میکرو بریزید و استفاده کنید. برنامه هم تست شده و صد در صد جواب می ده.خداییش هیجا همچون برنامه ای گیر نمیاد..

اون چهار کلید هم برای اینه که کلید کنترل به صورت شستی کار کنه یا به صورت روشن و خاموش.من با کنترل تلویزیون شهاب ۲۰۰ را تست کردم .کلید های ۱ تا ۴.

2 نوشته شده در  جمعه 1385/05/13ساعت 15:27  توسط علی | 

آمپلی فایر پر قدرت برای ماشین

آمپلی فایر مداری است برای تقویت سیگنال که دارای پارامتر های زیادی است.
یکی از این پارامتر ها ماکزیمم دامنه خروجی است.
هر چه دامنه سیگنال خروجی زیاد تر باشد صدای آمپلی فایر بیشتر است. ودامنه ولتاژ خروجی آمپلی فایر به تغذیه آن بستگی دارد.
 وچون آمپلي فاير پخش ماشين 12 ولت است پس نمي تواند توان زيادي به بلندگو بدهد.مثلا اگر خروجي آمپلي فاير پخش شما به صورت يک  پوش پول تنها باشد ماکزيمم دامنه خروجي 6 ولت مي شود. واگر خروجي آن به صورت پل باشد ماکزيمم دامنه خروجي 12 ولت است.
پس ما بايد ولتاژ 12 ولت باتری را به ولتاژ بالا حدود 60 ولت تبديل کنيم ویک آمپلی فایر 60 ولت هم طراحی کنیم.
بهترین راه برای افزايش ولتاژ باتری استفاده از يک منبع تغذيه سوئيچينگ است.
پس ابتدا ما باید یه منبع تغذیه 12 ولت به 60 ولت بسازیم من یک نمونه ساده آن را طراحی کردم که نقشه آن به صورت زیر است

 

 

مدار منبع تغذیه

در مورد ترانس باید بگم ترانس از نوع هسته فریت(فرکانس بالا) است .سیم پیچ اولیه تشکیل شده از سه رشته سیم لاکی 0.7 که باهم موازی شده اند تا از مقاوت سطحی سیم ها کاسته شود.
اندازه هسته ترانس در شکل نشان داده شده است.می تونید از ترانس منبع تغذیه سوخته کامپیوتر هم استفاده کنید.

نحوه پیچیدن سیم پیچ اولیه در شکل زیر نشان داده شده است.

 

  

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

مدار آمپلی فایر


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

نمونه ساخته شده

اطلا عات بیشتر در مورد مدار در فایل شماتیک وجود دارد برای دانلود pcb و شماتیک روی شکل زیر کلیک کنید.با پرتل DXP2004 کشیدم من پی سی بی رو تست نکردم ونمی دونم جواب میده یا نه.

Click Here To Download PCB And Schematic

 

2 نوشته شده در  سه شنبه 1385/02/19ساعت 13:55  توسط علی | 

پروگرامر ساده براي آی سی های میکروکنترولر 89s51- 89s52- 89s8252
شماتیک پروگرامر به صورت زیر است.

sprogramer sch

برنامه مربوط به پرگرامر :دانلود-40kb.

نمونه ای  که ساختم و کار می کنه.s programer

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

2 نوشته شده در  یکشنبه 1384/08/29ساعت 20:7  توسط علی |