ايران ويج

نسخه‌ی کامل: ساخت تستر SRAM با AVR
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام خدمت شما دوستان گرامی
من می خوام با یک SRAM خارجی از طریق میکرو ارتباط برقرار کنم یعنی در اصل می خوام یک تستر این نوع ای سی SRAM رو درست کنم به این صورت که روی تک تک ادرس های این SRAM بنویسم ( 128*8 ) بعد همون موقع بخونم . فقط توی ارتباط یکمی مشکل دارم اگه لطف کنید یک توضیحی بدید کارم راه میوفته . اسمش K6X1008T2D-GF55 هستش که یک ای سی SRAM یک مگابیتی متعلق به شرکت سامسونگ هستش .
با تشکر فراوان
سلام

یعنی الان شما یه دید کلی در مورد نحوه ی ارتباط با sram ها نیاز دارین؟

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


همه sram ها وجه مشترکشون Address، WE, OE , CS & &CS , IO ها هستش...


خب SRAM ها اکثرا 2 تا CS یا chip select دارن...
که یکیشون active low هه و اون یکی active high....

OE هم که معلومه کارش چیه....

IO ها برای انتقال یا گرفتن بایت هه...

A0~A16 هم آدرس بایتی هست که شما نیاز داری بخونی...

ببینید مثلا این SRAM ای که شما معرفی کردی، نوشته 128K x8 یعنی شما 128K تا بایت داری...
و در هر بار خوندن یا نوشتن به SRAM ، شما x8 ها بیت رد و بدل میکنی یعنی 1 بایت.... چون 8 تا خط data داری...

بعضی sram ها 16 بیت ان.... مثلا اگه 128K x16 بود ... یعنی شما 128 هزار تا "2بایت" داری ( یا 128 هزار تا "16 بیت" ) که در هر بار خوندن یا نوشتن، 16 بیت رد و بدل میشه...

پس sram شما 128 هزار تا خونه برای دسترسی داره
128000 در مبنای دودویی میشه 11111010000000000
که همونطور که میبینین، 16 تا رقمه... شما هم 16 تا a0~a15 دارین...
که a0 کم ارزش ترین بیت هه و a15 پر ارزش ترین...
یعنی a0 توی اون عدد دودویی بالا، سمت راسته آخریه... و a15 سمت چپ، اولی Biggrin (فکر کنم اول و آخر رو اشتباه میگم Biggrin Biggrin Biggrin )


sram ها در یک زمان مشخص نمی تونن 2 تا کار انجام بدن... معلومه خب...

کلا برای اینکه با sram کار کنید، باید CS رو فعال کنید...
زمانی که cs انتخاب نشده، sram در حالت standby انرژی کم تری مصرف میکنه... و البته غیر قابل دسترسی یه...


WE& مشخص میکنه که sram باید عملیات خواندن انجام بده یا نوشتن

چند نوع روش برای کنترل پروسه ی نوشتن یا خوندن هست
معمولا دیتاشیت نمودار هر کدوم هست و احیانا توضیحی مختصر هم داره...

شما که هدفتون استفاده از حداکثر توانایی sram نیست، مشکل خاصی ندارین.... ولی اگه زمان بندی ها(timing توی دیتاشیت ) رعایت نشن، اطلاعاتی که منتقل شدن، نصفه و نیمه ذخیره یا خونده میشن..

حالا از این بگذریم... این زمانبدی بیشتر توی راه اندازی sram با fpga و cpld ها مطرحه ... چون اونجا سرعت برامون خیلی مهمه و همه چیز با clk کل سیستم کنترل میشه...

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

مثلا توی دیتاشیت به write cycle 1 نگاه کنید...

اول از همه باید address رو به pio میکرو بنویسید.... در حالی که مطمئن اید که WE& یک هه...


یعدا باید CS1 و CS2 و WE رو مطابق اون نمودار مقدار دهی کنید (اول cs بعدا we )

بعد اینکه we صفر شد، sram شما پایه هاش ورودی میشه... حالا وقتشه که اون 8 بیت داده رو بفرستین به IO آیسی SRAM

اگه قبل اینکه WE صفر بشه، اطلاعات رو به SRAM بفرستید ممکنه اتصال کوتاه رخ بده و آیسی هاتون داغ کنن... مواظب باشید..

بعدا یه وقفه ی کوتاه داشته باشید تا مطمئن باشید که زمان بندی ها رو نقض نکردید...

بعدش کافیه we رو یک کنید تا کارتون تموم بشه....






نحوه ی خوندن هم به همین شکله...

قسمت برنامه نویسی میکرو هم که جای خود دارد....



مشکلی بود در خدمتم


موفق باشید Happy
با سلام وتشکر فراوان بابت جواب کاملتون
من برای اینکه بتونم این نوع SRAM رو تست کامل انجام بدم باید روی تمام خونه های حافظه ش اطلاعات بریزم و بخونم