سلام
با دستورات زیر میتونی با EEPRM داخلی میکرو در ارتباط باشین(در CCS)
READ_EEPROM( )
write_eeprom (address, value)
و با این دستورات با EEPROM خارجی میکرو
SETUP_EXTERNAL_MEMORY( )
READ_PROGRAM_MEMORY( )
READ_EXTERNAL_MEMORY( )
WRITE_EXTERNAL_MEMORY( )
اینم یه برنامه که یه عدد رو تو EEPROM میریزه و و رویه LCD نشون میده
#include <16F877A.h>
#use delay(clock=2000000)
#include <LCD.c>
سلام
از راهنمایتون ممنون
در مورد نحوه ی اتصال EEPROM و پروتکل های ارتباطی هم چیزی می دونه کسی؟
راستی شما از CCS راضی هستید ؟ من با MikroC کار کردم فقط متاسفانه! !
زمان تنها واحد حقیقی اندازه گیریه
زمان وجود ماده رو اثبات میکنه
بدون زمان هیچکدوم ما وجود نخواهیم داشت
زمان یکتاست
من به شما پیشنهاد میکنم CCS رو شروع کنید چون هر چند مشکلات کمی مثل نبود مرجع آموزشی مناسب و ضعیف بودن HELP رو داره اما از مزایای دیگری هم داره که بنظر من از بعضی از کامپایلر ها برترش میکنه
یه مرجع نیمه کامل اما خوب برای شروع هست که می تونی دانلود کنی
http://iranmicro.ir/forum/showthread.php?t=1366
من با همین مرجع شروع کردم (البته به توصیه یکی از همین دوستان eca)
به تازگی هم بچه ها تصمیم گرفتن مرجع کاملی برای PIC بنویسن که امیدوارم زودتر شروع بشه
شما IC خاصی مورد نظرت هست بگو تا من یه نگاهی بهش بندازم
سلام
من می خوام با 16F72 یه سری کد رو از ماژول گیرنده ی RF بخونم و در EEPROM خارجی 93C66 ذخیره کنم و یا یه سری اطلاعاتو از روی EEPROM بخونم .
با کد نویسی و C تقریبا مشکلی ندارم(البته فکر کنم)چون با AVR قبلا کار کردم اما PIC . . .
دستوراتی که شما نوشتید برای EEPROM خارجی هم به همین شکله ؟
ممنون
زمان تنها واحد حقیقی اندازه گیریه
زمان وجود ماده رو اثبات میکنه
بدون زمان هیچکدوم ما وجود نخواهیم داشت
زمان یکتاست
باسلام
دوست عزیز برای اینکه از 93C66 بعنوان EEPROM خارجی استفاده کنی باید با ارتباط SPI در میکروهای پیک آشنا بشی چون این EEPROM شما با استفاده از این پروتکل میتونه با میکرو ارتباط بر قرار کنه. از لینک زیر میتونید یه برنامه ساده به همراه فایل شبیه سازی شده که برای SPI بین دو میکرو نوشته شده رو دانلود کنی تا در مورد دستورات این پروتکل بیشتر آشنا بشی:
سلام
تا اون جایی که من از دوستان سئوال کردم میگن باید از پروتکل I2C استفاده کنم !
این پروتکل با SPI فرق داره ؟ البته یه سزی ملب در مورد I2C گرقتم اما متاسغنه وقت نکردم بخونم .
لینکی که زحمت کشیدید گذاشتیتد کار نمیکه چرا ؟
یه مشکل دیگه هم که دارم اینه که تو Proteus من 16F72 رو ندارم ! (ورژن 7.6 SP0)
ممنون
زمان تنها واحد حقیقی اندازه گیریه
زمان وجود ماده رو اثبات میکنه
بدون زمان هیچکدوم ما وجود نخواهیم داشت
زمان یکتاست
باسلام
دوست عزیز تو دیتاشیت EEPROM نوشته Three-wire Serial Interface و تو ادامه هم به جدول زیر اشاره کرده که من با توجه به این جدول میگم که باید از پروتکل SPI باید استفاده کنید:
فرق پروتکل SPI وI2C به زبان ساده اینکه شما در اولی از سه سیم برای انتقال و دریافت اطلاعات استفاده میکنید ولی در دومی از دو سیم, در اولی سرعت انتفال اطلاعات زیاده ولی در دومی یه خورده کمتره. البته برای درک بهتر و بیشتر این دو پروتکل کافیه که به دیتاشیت میکرو مراجعه کنید.
درمورد لینکم باید بگم کار میکنه و درسته و هیچ مشکلی نداره
در مورد میکرو به نظر من بهتره که از PIC16F877A استفاده کنی چون این میکرو تقریبا تمام امکانات سری Midrange رو داره و واسه کار بهتره.
درضمن من تاحالا با EEPROM کارنکردم اگه تونستم درایوش کنم حتما لینکش رو میزارم.
البته EEPROM ها چندین سری مختلف دارن که در هر سری نوع ارتباط با میکرو در انها مفاوته و همون طور که دوستان اشاره کردند 93C66 از ارتباط SPIآ استفاده میکنه و در سری دیگه ای مثل 24CXX ها بیشتر از پروتکل I2C استفاده میشه .
خوب سری های حجم بالای این حافظه ها هم موجوده که از پورت موازی 8 بیتی یا 16 بیتی و بیشتر استفاده میکنند که کاربردشون به دستگاهای پخش همه کاره چینی تحت عنوان فوجیتل و دیگر اسامی و البته تمامی رسیورها تا یک سال پیش مربوط میشه.
این تراشه ها که ظرفیت چند مگا بایتی دارند فریمور یا واسط میان افزار دستگاه رو در خودشون جا میدن که تقریبا چیزی شبیه به سیستم عامل هست.
البته در حال حاضر این دستگاها و سینماهای خانوادگی و ... دارن از نمونه های FLASH ROM با اتباط SPI استفاده میکنند.
***نکته قابل توجه اینه که نباید اتصال مقاومتهای پول پ در حدود 10 کیلو رو به پایه های SDA و SCL در پروتکل I2C فراموش کنید وگرنه اصلا کار نخواهد کرد. :wow:
این هم یک نمونه برنامه به زبان بیسیک PBP که من در این مورد پیدا کردم:
البته ببخشید که توضیحاتش ایتالیاییه :eek:
'******************************************** ********************
' Ime programa: EEPROM.BAS
' Opis: program pomocu naredbe I2CWRITE upisuje u EEPROM
' podatak iz promenjive EE_byteOut, a zatim naredbom I2CREAD
' taj isti podatak iz EEPROM-a prenosi u promenjivu EE_byteIn
' i prikazuje ga na diodama porta D.
'******************************************** ********************
Include "Modedefs.Bas" ' Modovi prenosa podataka koje ' koriste nadedbe I2CWRITE i ' I2CREAD
symbol SCL = PORTC.3 ' I2C klok pin
symbol SDA = PORTC.5 ' I2C data pin
Addr Var byte ' 8-bitna adr.lokacije u EEPROMu
EE_ByteOut Var Byte ' Promenjiva ciji sadrzaj se ' upisuje u EEPROM
EE_ByteIn Var Byte ' Promenjiva u koju se smesta ' podatak procitan iz EEPROM-a
تا اون جایی که من از دوستان سئوال کردم میگن باید از پروتکل I2C استفاده کنم !
این پروتکل با SPI فرق داره ؟ البته یه سزی ملب در مورد I2C گرقتم اما متاسغنه وقت نکردم بخونم .
ئی دو پرام های ساخت خود میکروچیپ عموما از I2C استفاده می کنن که فرکانس 100 یا 400 کیلو هرتز دارن
بعضی دیگه از اونا که با SPI وصل میشن می تونن تا 10 مگ هم کار کنن
نوشته اصلی توسط Robo-amir
سلام
لطفا اگه کسی پروژه d ساده ای شیه سازی شده با Proteus که در اون از EEPROM در ارتباط با PIC استفاده شده داره ارسال کنه .
ممنون
این پروژه ای که ارسلان جان زحمتشو کشیدن و گذاشتن تو سایت
دوست عزیز تو دیتاشیت EEPROM نوشته Three-wire Serial Interface و تو ادامه هم به جدول زیر اشاره کرده که من با توجه به این جدول میگم که باید از پروتکل SPI باید استفاده کنید
من این رو از دیتا شیت خود 93C66 دیدم آقا سعید !!! مگه Dual-In-Line همان پروتکل I2C نیست؟
از اینا بگذریم مگه اصلا نوع پروتکل برای ما مهمه وقتی می خوایم از توابع کمپایلر استفاده کنیم؟
یعنی اگر نوع پروتکل فرق کنه باید از توابع متفاوتی استفاده کنیم ؟
ممنون
زمان تنها واحد حقیقی اندازه گیریه
زمان وجود ماده رو اثبات میکنه
بدون زمان هیچکدوم ما وجود نخواهیم داشت
زمان یکتاست
دوست گرامی طبق این عکسی که شما گذاشتید این تراشه از پروتکل SPI استفاده می کنه :eek:
در این پروتکل شما به سه پایه کلاک و وردودی و خروجی سریال احتیاج دارید که طبق دیتاشیت اینا SK و DI و DO هستن اگه I2C می بود باید SDA و SCL میداشت یعنی کلاک و دیتا
شما تو پروتکلهای مختلف رجیسترهای متفاوتی از ماژول MSSP رو مقدار دهی میکنید >-
راستی داشت یادم می رفت ؛ این مقاله رو بخونید : http://www.avr.ir/pdf/ic_packages.pdf تا بفهمید Dual-In-Line یعنی چی
دیدگاه