سایر مطالب

ارتباط میکروکنترلر با حافظه خارجی AT45DB

ارتباط میکروکنترلر با حافظه خارجی AT45DB
5 (100%) 3 votes

AT45

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

1-حافظه FLASH:حافظه ای که کدهای برنامه در آن قرار می گیرند.

2-حافظه SRAM:حافظه ای که متغیرهای تعریف شده در برنامه از آن استفاده می کنند و پس از هربار قطع جریان برق پاک می شوند.

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

حافظه های خارجی نیز به همین گونه تقسیم بندی می شوند.میکروکنترلرها این قابلیت را دارند که هم با حافظه های ماندگار و هم با حافظه های غیر ماندگار ارتباط برقرار کنند.البته ذکر این نکته ضروری است که همه میکروکنترلرها قابلیت برقراری ارتباط با حافظه RAM خارجی را ندارند به عنوان مثال در خانواده AVR فقط بعضی از میکروکنترلرها مانند ATMEGA64 ویا ATMEGA128 دارای باس ارتباطی با حافظه های RAM خارجی هستند.اما تقریبا همه میکروکنترلر ها می توانند با حافظه های ماندگار ارتباط داشته باشند.

این مطلب را از دست ندهید  آشنایی و بررسی کنترلر سرعت موتورهای کوادکوپتر ESC

یکی از حافظه هایی که برای نوشتن وخواندن اطلاعات به طور زیاد مورد استفاده قرار میگیرد حافظه AT45DB است .این حافظه محصول شرکت اتمل است که از پروتکل ارتباطی SPI برای برقراری ارتباط با میکروکنترلر استفاده می کند.مقدار حافظه این قطعه بسته به نوع آن متفاوت است .به طور مثال حافظه AT45DB16از 16Mbit مگا بیت خانه حافظه و AT45DB32 از 32Mbit حافظه تشکیل شده است که می توان بیش از 100,000 مرتبه اطلاعات را در آن نوشت و یا از آن خواند.سرعت عملیات نوشتن و خواندن دراین حافظه در مقایسه با حافظه های با مد ارتباطی I2C بسیار بسیار بیشتر است.به طور مثال سرعت این حافظه 66 مگاهرتز است در صورتی که سرعت حافظه های I2C مانند سری AT24C از همین شرکت از 400 کیلوهرتز بیشتر نمی شود.این حافظه قادراست اطلاعات را تا 20 سال نگهداری کند.

توصیف پایه های این این قطعه به صورت زیر است:

 

AT45DB16PINOUT

1-SI:این پایه برای نوشتن اطلاعات و رجیسترهای قطعه استفاده می شود و باید به پایه MOSI میکروکنترلر وصل شود.

2-SCK:پایه کلاک قطعه است و باید به پین SCK میکرو متصل شود.

3-پایه 3 برای ریست میکرو مورد استفاده قرار می گیرد .می توانید آن را با یک مقاومت 10K به VCC وصل نمایید.

4-پایه 4:این پایه نیز برای انتخاب قطعه مورد استفاده قرار می گیرد.

5- پایه 5 برای محافظت از نوشتن مورد استفاده قرار می گیرد.یعنی اگر این پایه را صفر کنیم نمی توانیم داده ای را بر روی آن بنویسیم.پس بهتر است این پایه نیز با یک مقاومت 10K به VCC وصل شود.در صورتی که می خواهید عملیات محافظت از نوشتن را به صورت نرم افزاری کنترل کنید می توانید این پایه را یه یکی از پین های ورودی-خروجی میکرو وصل کنید.

این مطلب را از دست ندهید  راه اندازی موتور براشلس با استفاده از آردوینو

6-پایه 6 :پین تغذیه قطعه است و باید به ولتاژی بین 2.7 تا 3.3 ولت وصل شود.

7-GND:پایه گراند است وباید به زمین مدار متصل شود.

8-SO:پایه انتقال اطلاعات از  قطعه به میکرو است و باید به پین MISO از میکرو وصل شود.

ساختار داخلی این حافظه به این صورت است که هر 528 بایت در یک واحد مجزا به نام PAGE قرار می گیرند.هر هشت PAGE نیز در یک واحد بزرگتر به نام BLOCK قرار میگرد. بلوک ها نیز خود در واحدهای بزرگتری به نام SECTOR قرار میگیرند.این تقسیم بندی برای راحتی در عملیات آدرس دهی , خواندن , نوشتن و عملیات پاک کردن حافظه انجام شده است.

MEMORY ARRAY

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

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

 

SCH

لازم به ذکر است که یک پروژه نمونه با میکروکنترلر ATMEGA16A برای استفاده از این قطعه برای شما قرارداده شده است . فایل کتابخانه این حافظه در پوشه مربوط به پروژه قرار دارد.

این مطلب را از دست ندهید  کنترل فن 4 پین با آردوینو

 

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

درباره نویسنده

اکبر محمدی

2 دیدگاه

دیدگاهتان را بنویسید