تبليغات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  توسط علی | 

سال نو مبارک(نوروز1387)
سال نو مبارک!

سال نو مبارک

2 نوشته شده در  جمعه 1387/01/02ساعت 9:56  توسط علی | 

اتصال 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  توسط علی | 

مطلب ندارم
ویرایش نهایی Visual Studio 2008 عرضه شد.
2 نوشته شده در  سه شنبه 1386/11/16ساعت 22:21  توسط علی | 

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  توسط علی | 

الافی
امروز یه پرستو اومده بود تو خونمون.

با وب کم عکسشو گرفتم به همین دلیل کیفیت نداره.

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

اینم طرف دیگش:

بعدا آزادش کردم.دیگه فکر نکنم این طرفا پیداش بشه.

2 نوشته شده در  جمعه 1386/01/31ساعت 21:39  توسط علی | 

سال نو مبارک(نوروز1386)

نظر یادت نره!

2 نوشته شده در  دوشنبه 1385/12/28ساعت 21:46  توسط علی |