نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه

آموزش جامع کار با ic حافظه با کتابخانه i2c

به نام خدا :  آموزش جامع کار با ic حافظه با کتابخانه i2c
n
توضیح : والا من منبع آموزشی درست و درمونی در این مبحث تو نت ندیدم(البته تو سایت های فارسی) ولی تو سایت های خارجی مطلب الی ما شا الله.تنها منبع فارسی که من دیدم کتاب جابر الوندی بود که یه پروژه در مورد این موضوع گزاشته بود…..حالا من میخوام این بحث رو به صورت تقریبا کامل آموزش بدم.حالا من سعی کردم به ساده ترین حالت ممن توضیح بدم تا همه ی دوستان بتونن از این آموزش استفاده کنم.این پروژه رو من در عمل انجام دادم و کار میکنه…..لذا نگران کار کردن یا نکردنش در عمل نباشید>>>فقط من فردا باید برم دانشگاه و نه وقتش رو دارم و نه حال بستن مدارش رو….لذا نمیتونم عملی ببندم و فیلمش رو بزارم…….
تشکر : این مطلب تقدیم به داش رامین اصیلی که باعث شد من این مطلب رو بنویسم.

1) نحوه نام گزاری آی سی های سری AT24Cxxx : این سری از آی سی ها که اول اسم همشون AT24C هستش و در ادامه اندازه حافظشون قرار میگیره…مثلا اگه حافظشون 512 باشه نام این آی سی به صورت AT24C512 خواهد بود و اگه اندازه حافظه 2 باشه>>>>به صورت AT24C02 خواهند بود.
2) انواع آی سی های سری AT24Cxxx : حافظه این آی سی ها از 1 شروع میشه تا 1024 و از 1024 به بعد من نیدم.(شاید قطعاتی از این سری با حافظه بیشتر وجود داشته باشه ولیگشتم نبود>>>نگرد نیست) >>>1-2-4-8-16-32-64-128-256-512-1024 >>> لذا این سری از آی سی ها در 11 مدل حافظه ای مختلف در بازار موجوده.
3)قیمت آی سی های حافظه : حافظه 2 قیمتش تقریبا 300 تومن هستش و 1024 هم 15 هزار تومن….در کل قیمت این آی سی ها زیاده….ولی بسته به نیازتون میزان به صرفه بودن متفاوت هستش>>>> قیمت آسی های حافظه سری AT24C
4) حافظه : نوع حافظه اینا EEPROM هستش >>یعنی اطلاعات که توش قرار میگیرند با قطع برق از بین نمیروند و یه بار که اطلاعات رو توشون ریختی تا زمانی که ریستشون نکنی و یا اطلاعاتشون رو خودت پاک نکنی….اطلاعاتشون پاک نمیشه.
حافظه اینا برحسب بیت هستش……یعنی وقتی میگن آی سی AT24C01 یعنی حافظش 2کیلو بیت هستش>>>>
1Kbit=1024bit=128byte
سوال1)  128 از کجا اومد؟
جواب1)  از اونجای که هر 8 بیت برابر 1 بایت هستش لذا 1024 بیت برابر 128 بایت هستش…..یعنی 1024 رو تقسیم بر 8 کردم و شده 128.

سوال2) منظور از  بیت و بایت چیست …. فرق بین بیت و بایت چیه؟؟؟
جواب2) اصل مطلب : 1دونه صفر یا یک=1بیت>>>>>8 تا صفر یا یک=1بایت
توضیحات بیشتر : مثلا وقتی میگیم مقدار پایه فلان 0 هستش(یا 1 هستش) به این میگن یه بیت.
ولی وقتی میگیم مقدار 8 تا پایه پورت A (یا هر پورت دیگه ای…) >>>این میشه 8 تا بیت که  برابر است با  1 بایت.
مثلا وقتی ما تو پروژه هامون میایم و کد زیر رو مینویسیم و یه پورت میکرو رو ورودی خروجی بودنش رو تعیین میکنیم در واقع داریم یه اطلاعات 8 بیتی (یا 1بایتی) بهش میدیم.

5) نحوه ذخیره سازی اطلاعات درون آی سی : همون طور که در بالا گفتم مبنای این حافظه ها بیت هستش مثلا میگن آی سی با حافظه 512 بیت.
ولی ما کارمون اکثرا (99%) با بایت ها هستش و نه بیت ها…..مثلا ما میخوایم کد های همچون 0X57 و کد های هگز 8 بیتی=1بایتی رو در آی سی حافظه ذخیره کنیم.
حالا اگه دیتاشیت این آسی ها رو ببینید (مثلا برا آی سی با حافظه 1 ) تو صفحه اولش نوشته شده

که منظورش اینه که حافظش 1کیلو بیتی=1024 بیتی هستش و 128 خانه برا ذخیره سازی بایت ها داره>>>>یعنی 128 تا دونه کد هگز 1 بایتی(به صورت 0Xxx) میتونه در خودش ذخیره کنه.(امید وارم گیجتون نکرده باشم.)
لپ کلوم : ذخیره سازی اطلاعات درون این آی سی ها بر اساس بایت هستش و نه بیت>>>یعنی  هر خانه ی این آی سی یه کد 8 بیتی=1بایتی درخودش ذخیره میکنه.

 

توجه : برا دانلود دیتاشیت های آیسی های سری AT24C به لینک مقابل برید : آموزش کار با آیسی های حافظه سری at24cxx

توضیح پایه های آی سی های حافظه

پایه های این آیسی ها بسته به حافظش یه کمی تفاوت داره.که میتونید ترتیب پایه ها رو تو دیتاشیت(تو صفحه 1 یا 2 باشد باشه) ببینید.
VCC :  منبع تغزیه 5 ولت
GND : زمین
NC : به جایی وصل نمیشود >>> No Connect
A0-A1-A2 و… : تعیین آدرس سخت افزاری قطعه هستش>>>Address Inputs >>> اون طوری که یکی از سایت های خارجی گفته بود این پایه ها برا وقطیه که چند تا آی سی حافظه به میکرو وصل باشه …. حالا نحوه کارش دقیقا چیه رو من هنوز نفهمیدم(لذا اگه کسی فهمید به ما هم بگه)….لذا فعلا این پایه ها رو به GND وصل کنید تا بعدا یکارش کنم.
SCL : ارسال کلاک >>>> Serial Clock Input
SDA : انتقال اطلاعات >>>> SDA Serial Data
توجه : اگه کار دو پایه بالا رو متوجه نشدید>> زیاد مهم نیست>>>>لازم هم نیست بدونید فعلا.
TEST : زیاد مهم نیست…به جایی وصلش نکنید…… (Test Input (GND or VCC
WP : محافظت از دیتا های درون آی سی—اگه به VCC وصل بشه نمیشه اطلاعاتش رو تغییر داد و فقط میشه اطلاعاتش رو خوند….ولی اگه به GND وصل بشه ، هم میشه اطلاعاتش رو خوند و هم توش اطلاعات ریخت.
توضیح پایه های آی سی های حافظه

پروژه IC حافظه AT24C512

پروژه در این زمینه من چند تایی انجام دادم….که انشاالله به مرور زمان میزارمشون تو سایت.فعلا پروژه زیر و توضیحاتی که میدم رو قشنگ ببینید و بخونید تا بعد…
نحوه عملکرد پروژه : پروژه به این صورت کار میکنه که ابتدا کاراکتر های A تا Z در آی سی ذخیره میشن و بعد خونده میشن و در LCD نمایش داده میشن.

این از مدار پروژه
در مورد مدارش باید اینو بگم که پایه های SLC و SDA که به میکرو وصل میشوند باید توسط دو مقاومت 10 کیلو ، پول آپ بشن>>>> مطابق شکل زیر.
مورد بعد این که آی سی حافظه زیر از نوع 512 کیلو بیتی هستش >>> و نکته بعد که در بالا هم بهش اشاره کردم اینه که این آیسی ها پایهاشون باهم فرق داره….
مثلا آیسی 2 کیلوبتی با 1024 کیلوبیتی ترتیب پایه هاش مثل هم نیستند.>>>>لذا به این موضوع حتما دقت کنید.
میکرو استفاده شده هم مگا 32 هستش….lcd هم نوع کاراکتری و 16*2 هستش(^_^)

پروژه IC حافظه AT24C512

اینم از کد های پروژه
(بر روی دکمه بالای کد ها کلیک کنید تا در یه صفحه جدید و بزرگتر نگاش کنید.)

 

دانلود پروژه IC حافظه AT24C

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

پسورد فایل های سایت :
www.dmf313.ir
جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
115

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    محرم

    یاشا قارداش

    1398/01/25
    10:41
  2. مهمان

    محرم

    سلام دوستان
    میشه به جای 24c01 از 24c02 استفاده کرد

    1398/01/23
    03:47
    • نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – دیتاشیت هر دو رو بررسی کن – پایه هاشون فرق نداشتن استفاده کن.

      1398/01/23
      04:15
  3. مهمان

    امین

    یک سری از ای سی هایی هست که فلش هستند مثل AT45DB161 شما تا حالا با این ای سی ها کار کردید؟ اگر بله من از کجا برم در مورد نحوه کارباهاش بخونم فارسی یا انگلیسی معرفی کنید. بعد تفاوتی که این ای سی های با EEPROM ها دارند دقیقا چیه؟ من میدونم ضرفیتشون بیشتره ولی من برا یه کاری می خوام که قرار هست یک دادخ ای مکررا روی حافظه رایت بشه و چون EEPROM ها اکثرا صدهزار بار بیشتر ظرفیت رایت ندارند من رفتم سراغ اینا شما پیشنهاد بهتری ندارد؟

    1397/06/23
    09:30
  4. مهمان

    ناشناس

    دمت گرم مرد کارت 20 ع

    1397/05/21
    01:54
  5. مهمان

    عظیمی

    سلام و خسته نباشید من میخوام تصویر رو با استفاده از حافظه ۲۴c۶۴ذخیره کنم و در ال سی دی گرافیکی نشون بدم میشه یه توضیح کوچیک در مورد این موضوع بزارید ممنون

    1397/01/23
    10:03
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      عکس؟ 24c64? نمیدونم دقیقا پروژتون چیه ولی از رم هم میتونید استفاده کنید.
      توضیح چی بدم – عکسو کد میکنی – در حافظه ذخیره میکنی و بعد میخونه و نمایش میدی-شما عکسو به کم تبدیل کن و داخل خود میکرو بزارش – نمایشش بده – اکی شد – برو بریزش تو حافظه و از اونجا بخون.

      1397/01/24
      04:17
  6. مهمان

    ناشناس

    سلام من دارم برای استخدامی نفت میخونم یه تست دیدم گفته ic حافظه به شماره 2816 کدام است؟ الف) EPROM
    ب) EEPROM
    ج) RAM دینامیک
    د) RAM استاتیک
    کلا میخام بدونم چطور میشه ic ها رو حساب میکنن یا ثابت هستن باید حفظ کنم و اینکه چطور پیدا کنم

    1396/09/04
    12:30
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      shock
      اینا دیگه چه موجوداتی هستن laugh نفت؟ آیسی؟ چه ربطی داره – ربط هم داشته باشه، حفظ کردن اینا آخه دیگه چیه آخه جان داش – نمیدونم کدومشه – باید تو گوگل بسرچی اسم آیسیرو – طرف ( حالا هر کسی میخواد باشه ) مخ هم باشه – با تموم آیسی های موجود کار نکرده!!!

      1396/09/04
      11:01
  7. مهمان

    هادی

    سلام و ممنون بابت اطلاعات خوبی که میذارید میخواستم ببینم حالا چجوری میشه AT24C512 رو پاک کرد

    1396/01/20
    08:39
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      در کل پاک کردن زیاد شاید منطقی به نظر نیاید – ولی میتونی از توابع نوشتن استفاده کنی و دیتا رو کاراکتر ۰ بدی ( و نه عدد ۰ )

      1396/01/20
      09:41
      • مهمان

        pourya

        سلام آقا مهدی ممنون بابت تمام زحماتی که میکشی امیدوارم همیشه همین طور با علاقه بنویسی. ok
        یه سوال :
        میتونی یه چند خط کد برای پاک کردن کل حافظه at24c512 قرار بدی من از دیتاشیت چیزی نفهمیدم crazy از اون روش ذخیره کردن با توابع نوشتن نمیتونم استفاده کنم چون حدود ۱۱ دقیقه طول میکشه…! shock تا حافظه به صورت صحیح با کارکتر های صفر پر بشه من دنبال راهی هستم تا حد اکثر ۱ دقیقه.
        لطف میکنی اگر کد روشی که تو دیتاشیت گفته رو قرار بدی.

        1396/04/18
        10:37
        • نویسنده این مطلب

          مهدی دمرچیلو

          سلام
          به مطلب همین آییسی با ۱۷۶۸ مراجعه کنید – اونجا توابع کامل تر هستن.

          1396/04/18
          11:15
  8. مهمان

    محمد

    سلام
    نمونه کدش برای آردوینو رو نداری توی سایت قرار بدی؟؟
    اومدم یه پروژه با آردوینو ببندم بابام دراومده تیکه به تیکه به یه مشکلی میخورم

    1396/01/08
    11:35
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام-نه-چی مالی هم تو نت پیدا نکردم – احتمالا خودم باید کتابخونشو بنویسم – ولی فعلا سرگرم کارای دیگم ولی مینویسم تو لیست و هفته آینده احتمالا انجام بدمش.

      1396/01/08
      11:50
    • مهمان

      محمد

      کاری میتونم بکنم که به جای هفته دیگه همین دو سه روزه اوکی بکنیش؟ help
      برای پروژه دانشگاه میخوام واقعا لازمش دارم
      اصل مشکلم با این حافظه ایپرام خود آردوینو هست یه بار ازت پرسیدم گفتی ۱۰۰ درصد دائمی نیست ولی از هر کی دیگه میپرسم میگه دائمیه حتی توی آموزش ها خودت گفته بودی توی هر مکان از اپرام آی سی یه مقداری هست که از توی دیتاشیت میشه فهمید و اطلاعاتیه که کارخونه گذاشته توش از همین میشه فهمید که حافظه خودش هم کاملا دائمیه
      من میخوام اطلاعات یه متغیر string رو روی ایپرام بریزم ولی بعد چند دقیقه که برد رو کاملا خاموش میکنم اطلاعات از روی اون مکانی که نوشته بودم پاک میشه
      حدسی که میزنم از سر ریز شدن داده ها از اون آدرسه که اطلاعات رو توش ریختم
      یه کمکی برسون شر این پروژه رو بکنم cry

      1396/01/08
      12:18
      • نویسنده این مطلب

        مهدی دمرچیلو

        من هیچ قولی نمیدم – اول باید کارای دیگم تموم بشه – قول بدم بد نتونم اون وقت…
        حافظه ایپرام avr دائمی هستش ولی ممکنه تحت شرایطی ریست بشه که برا اینم باید تو نت بگردی راه حلشو پیدا کنی.

        1396/01/08
        12:31
    • مهمان

      محمد

      سفارشی بخوام میتونی انجام بدی برام؟
      هزینش رو هم پرداخت میکنم چون واقعا لازمش دارم

      1396/01/08
      02:41
      • نویسنده این مطلب

        مهدی دمرچیلو

        نه جان داش – پروژه دانشجویی انجام نمیدم.

        1396/01/08
        10:39
    • مهمان

      محمد

      فقط قبلش دو تا تابعی که این داده رو یه نگاهی بهشون بکن ببین چه جوریه
      http://turbodigital.ir/خواندن-و-نوشتن-رشته-string-در-eeprom-با-آردوینو-arduino/

      1396/01/08
      02:49
  9. مهمان

    مجتبی

    مثل همیشه عااالی

    1395/12/26
    02:16
  10. مهمان

    جلیل

    حله.لاقل یه آیسی بگو که حافظه rx buffer رو بتونم افزایش بدم!!

    1395/12/09
    09:37
    • نویسنده این مطلب

      مهدی دمرچیلو

      خب بگو دقیقا میخوای چیکار کنی
      والا اولین باره میشنوم حافظه rx-buffer اگه منظورت همون بافر دریافت سریال هستش که نرم افزاری تعریف میکنن تا جایی که من دیدم – مگه این که حجم اطلاعاتت زیاد باشه اون وقت باس بسته به نوع کارت حافظه مناسب رو انتخاب کرد

      1395/12/10
      07:39
      • مهمان

        جلیل

        همون حافظه بافر منظورمه.rx interrupt.حجم اطلاعاتم ۹۰۰۰ کاراکتر هس ولی موقع کامپایل ارور میده مینویسه حافظه کمه.میخوام بدونم چه آیسی بزارم مهندس

        1395/12/12
        02:42
        • نویسنده این مطلب

          مهدی دمرچیلو

          خب شما مثلا ۵۰ تعریف کن و ۵۰ تا ۵۰ تا کارت رو انجام بده.
          قرار نیست که آرایه ای به اندازه طول دیتات تعریف کی که.

          1395/12/12
          03:53
          • مهمان

            جلیل

            مشکل اینجاس که کل اطلاعات یجا فرستاده میشه.نرخ تبادل اطلاعات ۹۶۰۰ هس

            1395/12/13
            09:37
          • نویسنده این مطلب

            مهدی دمرچیلو

            خب باشه – شما هم که وای نمیسیتی تا کل دیتا دریافت بشه – همین که داره دیتا دریافت میشه، شما هم اون بلای مد نظر رو سر دیتا ها میاری کم کم.

            1395/12/13
            02:05
  11. مهمان

    جلیل

    سلام خسته نباشی مهندس.یه سوال در مورد آی سی AT45DB32 داشتم.واسه اتصالش به میکرو باید در کدویزارد در قسمت external sram کدوم گزینه رو فعال کنم؟۱۶k , 32k , 2k , … چیه اصلا؟ممنون میشم پاسخ بدی.یا علی

    1395/12/09
    06:59
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام-نمیدونم – کار نکردم با این آیسی

      1395/12/09
      08:27
  12. مهمان

    Saeed Update

    میشه گفت که برای وارد کردن یک آدرس 16 بیتی به تابع های خوندن و نوشتن باید یکم تابع رو عوض کرد.
    unsigned char eeprom_read(int BUS_ADDRESS_W,int BUS_ADDRESS_R,int address)
    {
    unsigned char data;
    unsigned char addH, addL;
    addH = ((address >> 8) & 0xff);
    addL = address & 0xff;
    i2c_start();
    i2c_write(BUS_ADDRESS_W);
    i2c_write(addH); //high byte address
    i2c_write(addL); //low byte address
    i2c_start();
    i2c_write(BUS_ADDRESS_R);
    data=i2c_read(0);
    i2c_stop();
    delay_ms(10);
    return data;
    }
    //////////////////////////////////////////////////////////////////////////////////////////////////////
    void eeprom_write(int ADDRESS_BUSS,int address, unsigned char data)
    {
    unsigned char addH, addL;
    addH = ((address >> 8) & 0xff);
    addL = address & 0xff;
    i2c_start();
    i2c_write(ADDRESS_BUSS);
    i2c_write(addH); //high byte address
    i2c_write(addL); //low byte address
    i2c_write(data);
    i2c_stop();
    delay_ms(10);
    }

    تو تابع های اصلاح شده بالا هر عددی که بین 0 تا 65535 بعنوان آدرس بدهید تابع تو اون قسمت مینویسه یا از اون میخونه.
    حالا مشکل من تو مدل 1024 هستش که نمیدونم چطوری 17 بیت آدرس رو تو این دو بایت بفرستم !! اگر کسی بلده یا بگه یا بهم ایمیل کنه. ممنون
    Saeedupdate@gmail.com

    1395/06/16
    03:24
  13. مهمان

    Saeed Update

    سلام.
    شرمنده این P یا همون صفحه که بجای A0…2 تو بعضی ها هست چیه؟ چه کاری میکنه؟ لطفا جواب بدین.
    ممنون.

    1395/06/15
    09:01
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      حقیقتا یادم نیست باید برم دیتاشیت رو بخونم که حسش نیس جان داش pardon

      1395/06/17
      08:54
  14. مهمان

    علی

    بابا تو دیگه کی هستی؟ هر سوالی دارم جوابش تو سایت شما هست. قویاا تشکر می کنم. کاش موقعیتش پیش میومد شما رو ببینم

    1395/06/04
    08:02
  15. مهمان

    مهمان

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

    1395/05/03
    11:17
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      اسم متغییر نه، مقدارش رو مثلا تو خونه 0 حافظه ایپرام ذخیره میکنی
      فقط باید بدونی که هر متغییر کجای حافظه قرار داره

      1395/05/04
      03:57
  16. مهمان

    معین

    سلام اقا مهدی اون تویه پروژه دیگه بود ک سوال کردم و این دو خط بلا استفاده بودن
    من از دیتاشیتش ک خوندم متوجه شدم این دوخط ادرس سخت افزاری eepromرو مشخص میکنند چون در مد ارتباط i2c ما نیاز به ادرس سخت افزاری داریم
    طبق دیتاشیت دو بیت A0 و A1 ک جزیی از یه رجیستر ۸ بیتی هستند رو میشه تنظیم کرد برا موقعی ک میخوایم چند تا ای سی حافظه ب میکرو متصل کنیم(البته بسته ب نوع ایسی eeprom محدوده)
    ک در این پروژه چون یه ایسی داریم جفتش رو 0 میکنیم و با تنظیم بقیه بیت ها و بیت R/W ک یبار 0 و یبار 1 هست دو عدد 160 و 161بدست میاد
    10100000
    10100001
    ک معادل ۱۶۰ و ۱۶۱ هستن
    و A0 وA1 به ترتیب بیت ۲ و ۳هستن
    و بیت 0 ‘ بیت R/W هست
    موفق باشی

    1395/04/07
    09:03
  17. مهمان

    معین

    سلام
    اقا مهدی من کله سوالاتو خوندم همچین سوالی مطرح نشده بودا…!!!
    جواب نداده بودید .

    1395/04/06
    10:02
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      گفتم قبلا – این دو خط اشتباهی در پروژه قرار داده شده و کاربردی نداره

      1395/04/07
      03:05
  18. مهمان

    معین

    سلام خسته نباشید
    ممنون بابت توضیحاتتون خداییش مفید بود
    فقط من خودمو کشتم و دیتاشیتم ی نگاهی انداختم ولی این دوخط رو متوجه نشدم میشه توضیح بدید
    ممنون
    eeprom_bus_addres_w 160
    eeprom_bus_addres_r 161
    چرا تو همه برنامه هایی ک برا ارتباط با eepromنوشته میشه ادرس read و write
    160و 161 در نظر گرفته میشه

    1395/04/05
    12:22
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام-قبلا جواب دادم

      1395/04/06
      05:32
  19. مهمان

    علی

    سلام
    اقا من هم با at24c2 کار کردم هم با at24c64 هر دوتاش تا 31 بایت رو میتونم ذخیره کنم وقتی ادرس حافظه رو 32 میکنم دوباره تو خونه ی ادرس 0 مینویسه
    32 به باینری میشه 100000
    و 31 به باینری میشه 11111
    لطفا کمک کنید

    1395/03/30
    10:22
  20. مهمان

    علی

    در مورد پایه های a2,a1,a0 که فرمودید هر کی میدونه بگه ، من میدونم ، شما بزارید داخل متن اصلی
    شما آدرس سخت افزار برا نوشتن رو گذاشتی 160 و خوندنی رو گذاشتی 161
    حالا این دو عدد رو به صورت باینری من مینویسم
    160=10100000
    161=10100001
    صفحه 11 از دیتاشیت گفته بیت شماره صفر برای خوندی 1 و برا نوشتن 0 هست، که در بالا میبینید شما هم رعایت کردید
    حالا اگه یک آی سی پایه شماره a0 را به مثبت وصل کردید که شما در بالا گفتید همه رو بدنه کنیم باید بیت شماره 1 رو یک کنیم اگه a1 رو به مثبت دادی باید بیت شماره 2 را یک کنی و اگر a2 را به مثبت دادی باید بیت شماره 3 را یک کنید و آدرس سخت افزاری به این شکل برا هشت آی سی رو یک باس میتونه آدرس دهی بشه
    فقط من خودم هم یه چیز رو نفهمیدم برا آدرس دهی حافظه 32kB نیاز به آدرس صفر تا 32768 بایت داریم
    اما در صفحه 11 دیتاشیت گفته چهار بیت از بایت اول بی اهمیت هست در این صورت ما با 12 بیت آدرس دهی میکنیم
    ولی 12 بیت که فقط میتونه 4096 بایت اشاره کنه، حالا ما باید چطور بقیه حافظه رو بخونیم؟
    البته دیتاشیت گفته حافظه 32k تشکیل شده از هشت صفحه 4096 بایتی
    حالا چطور ما باید به صفحه های دیگه دسترسی داشته باشیم؟

    1395/03/25
    02:58
    • مهمان

      Saeed Update

      عزیزم بیت های آدرس 16تا هستن یعنی میتونن مقادیر 0 تا 65535 رو اختیار کنن. 65535*8 = 524280 یا همون 512 کیلو بیت. حالا مشکلی نداریم تو آدرس دادنش.

      1395/06/16
      05:45
  21. مهمان

    samimi

    سلام
    منتظر پاسخ شما هستم

    1395/03/02
    04:14
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      فک کنم جواب نظراتتون رو دادم
      یه ctrl +f5 بزنی مشکل حل میشه

      1395/03/02
      09:45
  22. مهمان

    samimi

    با سلام
    با avr -atmega16
    توسط دستورات مربوط به راه اندازی i2c با کمک برنامه شما میتونم اعداد از 1 تا 9 رو بصورت هگز در eeprom 24c512 بریزم و بخونم و روی gcd نمایش بدم. در ضمن با کدویزن کار می کنم

    1395/02/30
    11:02
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/02/31
      07:21
  23. مهمان

    samimi

    با سلام
    اقا مهدی من در رابطه با ارسال کد عکس به 24cxx وخواندن اون و نمایش روی glcd دچار مشکل شدم.باارسال این کد به حافظه فلش میکرو همه چیز درست کار میکند ولی در eeprom نمیتوانم.لطفا در رابطه با ارسال و دریافت کد عکس در 24cxx یک مقدار توضیح داده یا لینک مناسبی رو توصیه بفرمایید.(خیلی به این برنامه نیازمندم)
    با تشکر

    1395/02/29
    01:30
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      با avr میخوای یا آردوینو؟
      مشکلت کجاس؟
      اول تست کن ببینم میتونی دیتا در ایپرام بنویسی و بخونی و بعد برو سراغ نمایشگر

      1395/02/29
      08:29
  24. مهمان

    hamed

    معذزت میخوام چطوری میشه آدرس هرکدوم رو مشخص کرد ؟ چون در دستورات راه اندازی I2C ما باید پورت و پینی که بهش وصل میشیم رو تعریف کنیم . چطور مبشه مثلا دو تا پین رو تعریف کرد؟

    1395/02/28
    02:59
    • نویسنده این مطلب

      مهدی دمرچیلو

      خط 29 پروژه رو ببین

      1395/02/29
      08:30
  25. مهمان

    hamed

    با سلام
    اگه با I2C همزمان ماژول ساعت رو هم راه اندازی کنیم باهم تداخلی ندارن ؟ برای رفع مشکل چی باید کرد ؟ ممنون

    1395/02/27
    07:16
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام – مشکلی رخ نمیده – اون عکس اول مطلب رو ببین که چندید قطعه و ماژول و … از طریق i2c بهم وصل هستن.

      1395/02/27
      08:08
  26. مهمان

    samimi

    ممنون از پاسختون.می شه بفرمایید از چه طریق می شه به اون مطالب دسترسی داشت من پیدا نکردم و بعد اینکه برای پروگرام کردن eeprom باید از پروگرمر خاصی استفاده کرد یا با خود avr میشه.
    با سپاس

    1395/02/27
    05:35
    • نویسنده این مطلب

      مهدی دمرچیلو

      کدوم مطالب؟
      با Avr هم میشه دیتای ایپرام خارجی رو خوند و نوشت با بعضی پروگرامر ها هم میشه

      1395/02/29
      08:37
  27. مهمان

    samimi

    اقا مهدی از زحمات شما بینهایت متشکرم.اگر ممکنه در رابطه با ذخیره اطلاعات به صورت صفحه ای در ای سی های eeprom 24cxxx توضیح بدید. من میخواهم کد عکس را در حافظه ذخیره کنم و سپس با glcd نمایش بدم.
    پیشاپیش از راهنماییتون ممنونم

    1395/02/27
    01:51
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا با Avr من مطلبش رو گزاشتم – برا آردوینو هم چند بار خواستم بزارم ولی امان از…. laugh
      سعی میکنم تا 3 روز آینده بزارم تو سایت(البته اگه فراموش نکنم)

      1395/02/27
      04:23
  28. مهمان

    علیرضا

    عالی بود عین خودت مهدی جان

    1395/01/27
    11:06
  29. مهمان

    Hosein

    با سلام میشه در مورد کارت تلفن هم صحبت کنین

    1394/07/09
    08:00
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      فعلا درگیرم
      ولی تو نت مطالب خوبی من قبلا دیده بودم…

      1394/07/09
      10:00
  30. مهمان

    سارا

    من میخام تو کد ویژن برنامه نویسیش کنم کتاب خونه پیدا نکردم i2c های شمارو خوندم موندم تو آدرس دهی هاش تور هر سایتی یه چیزی گفته

    1394/06/29
    08:01
    • نویسنده این مطلب

      مهدی دمرچیلو

      والا با این سنسور من کار نکردم واطلاعاتی در این زمینه ندارم
      ولی اگه کتابخونش رو پیدا کنی کارت خیلی راحت میشه و در عرض یه روز میتونی راه اندازیش کنی
      که نحوه استفاده از کتابخونه هم معلومه…خود کتابخونه توابعش رو معمولا طوری مینویسن که طرف متوجه میشه هر تابع کارش چیه و طوری نیست طرف نفهمه

      1394/06/29
      08:26
  31. مهمان

    سارا

    سلام
    من میخوام با mlx90614 و avr ارتباط بر قرار کنم نمی فهمم کجای دیتا شیت رو بخونم

    1394/06/29
    07:40
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      معمولا آی سی ها و نسنور و ماژول ها کتابخونه ای برات تو نت پیدا میشه(البته اگه خوب بگردی)
      https://www.google.com/search?es_sm=93&q=mlx90614+LIBRARY+FOR+AVR&oq=mlx90614+LIBRARY+FOR+AVR&gs_l=serp.3…24488.36189.0.36407.0.0.0.0.0.0.0.0..0.0….0…1c.1.64.serp..0.0.0.RzwbS6eIVSw
      ولی اگه حتما میخوای دیتاشیت رو بخونی باید بگم غیر از پروتکول ارتباطی اون سنسور که باید خوب بلدش باشی، دیتاشیت سنسور رو هم باید کلش رو بخونی…..صفحات اولیه معمولا یه سری توضیحات کلی درباره سنسور میگه….ولی اگه بخوام دقیقا جواب سوالت رو بدم باید بگم تمام دیتاشیت رو باس بخونی good

      1394/06/29
      07:55
  32. مهمان

    korosh

    من کارت sd ماژول sd گرفتم . می تونم اطلاعات رو بخونم ولی نوشتن رو خیر.
    البته اونم از یک پروژه برداشتم .
    حال میشه خیلی راحت و خلاصه یک کد بزارید بخونه و بنویسه داخل فایل متنی در sd کارت ؟
    ممنون

    1394/06/05
    02:44
  33. مهمان

    پارسا

    عالییییییییی ولی چرا هیچی نفهمیدم؟؟ smile dash

    1394/05/07
    09:43
    • نویسنده این مطلب

      مهدی دمرچیلو

      کجاش؟

      1394/05/08
      05:54
  34. مهمان

    علوی

    سلام خسته نباشید.یه سوال داشتم من باید برای پروژه ام دمای محیط رو که متغیر هستش سنس کنم و توی eeprom ذخیره کنم؟نمیدونم چطور باید یک متغیر رو توش ذخیره کنم؟میشه کمکم کنید؟مرسی

    1394/04/25
    10:27
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تو مطلب>توی پروژه>>> متغییر داخل آی سی ریختم که!!! unknw
      چیش رو بگم؟
      تو مطلب مگه نگغتم؟

      1394/04/25
      11:41
  35. مهمان

    عظیمی

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

    1394/04/24
    12:23
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بی نهایت وجود نداره لذا… laugh
      شوخی کردم

      1394/04/24
      12:29
  36. مهمان

    Hosein

    با سلام.
    باید برای هر دو ای سی کد جدا بنویسیم؟
    یه سوال دیگه.کد بالا روی ایسی حافظه قرار میگیره یا ATmega3؟

    1394/04/16
    12:53
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      این برنامه رو mega پروگرام میشه و کارش ریختن اطلاعات بر روی آی سی هستش….
      ok?

      1394/04/16
      01:46
  37. مهمان

    رضا

    اقا مهدی میشه راهنمایی کنید

    1394/03/30
    10:24
    • نویسنده این مطلب

      مهدی دمرچیلو

      تو eca مطرح کنید

      1394/03/30
      12:30
  38. مهمان

    رضا

    من میخوام یه ارایه دو بعدی توی eepromذخیره کنم مثلا تو پروژه زیر میخوام ۷۰بشه ۸۰۰۰
    ***

    1394/03/28
    10:21
  39. مهمان

    رضا

    سلام یه سوال میشه حافظه رو به صورت یه ارایه درست کنیم یعنی به شکل زیر
    char a [10][10]

    1394/03/28
    10:46
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام…متوجه نشدم

      1394/03/28
      01:36
  40. مهمان

    hossein

    تو رو خدا I2C رو هم تو یه جلسه کامل توضیح بده مثل usart که با یه پروژه ساده هم ارسال و هم دریافتشو توضیح داده بودی.مرسی

    1394/03/18
    10:41
    • نویسنده این مطلب

      مهدی دمرچیلو

      چشم حتما سر وقت
      الان موقع امتحاناتم هستش

      1394/03/19
      08:16
  41. مهمان

    سپهر

    صددرصد SD/MMC
    ^_^

    1394/01/22
    11:55
  42. مهمان

    سعید

    ببخشید سرت رو درد اوردم شما یک عدد رو 8 بیت 8 بیت کن تا ما هم یاد بگیریم اخه بی سوادیم فقط با مثال متوجه میشیم
    و تنها کاری که بلدم ساخت PCB با مارکاژ و سولدر هستش به صورت صنعتی که فایل اموزشش اماده بشه اگر امکانش هست اینجا بگذاریمش

    1393/11/11
    04:49
  43. مهمان

    سعید

    خوب مهندس دردمن هم همینه بی سوادیم گل کرده و بلد نیستم این کار رو بکنم اول 8 بیت 8 بیت کنم و بعد باز کنار هم بگذارمشون و یکی بشن الگوریتمش رو نمیفهمم و بلد نیستم

    1393/11/11
    04:43
    • نویسنده این مطلب

      مهدی دمرچیلو

      ۸ بیت ۸ بیت کن….ذخیره کن….بخون….متصل کن crazy

      1393/11/11
      04:44
      • نویسنده این مطلب

        مهدی دمرچیلو

        تو همه کتابهای avr نوشته شده….

        1393/11/11
        04:45
      • نویسنده این مطلب

        مهدی دمرچیلو

        راه۱) ۲۰۰ تا ۲۰۰ تا (یا مثلا ۲۵۵ تا ۲۵۵ تا ) کن عدد رو و ذخیره کن و بعد با هم جمع کن
        راه۲) عددت رو درمبنای ۲ بنویس و ۴ بیت ۴ بیت از سمت راست جدا کن و ذخیره کن و بچسبون

        1393/11/11
        05:03
  44. مهمان

    سعید

    درسته اما رشته ثابت رو نمیخوام ذخیره کنم.
    ببخشید اما برای اعداد بالای 255 جواب نمیده
    یعنی من نتونستم باهاش کار کنم
    میشه با یک مثال بگید که بشه مثلا عدد 9550 رو داخل حافظه ذخیره و از داخل حافظه بخونیم و روی LCD نمایش بدیم

    1393/11/11
    04:36
    • نویسنده این مطلب

      مهدی دمرچیلو

      ۲۵۵ یعنی یه عدد ۸بیتی—-۸ بیت ۸ بیت باس ذخیره کنی و بعد موقع خوندن متصل کنی به هم—–بالای ۲۵۵ هم نباید جواب بده—

      1393/11/11
      04:39
  45. مهمان

    سعید

    ممنون و سپاس از سرعت پاسخگویی امتحان میکنم ببینم چ میشود متغیر j رو با یک متغیر از نوع int مقدار بدم
    و برای رشته مثل hello چ باید کرد

    1393/11/11
    02:33
    • نویسنده این مطلب

      مهدی دمرچیلو

      دادا مگه من حروف انگلیسی رو کلمه کلمه ذخیره نکردم….تو هم اینو کلمه کلمه ذخیره کن

      1393/11/11
      04:25
  46. مهمان

    سعید

    سلام ممنون از برنامه کاملی که قرار دادین
    چند تا سوال ببخشید چطوری میشه داده از نوع int رو داخل AT24cxx نوشت و دوباره خوندش
    و سوال دوم اینکه چطور میشه یک رشته مثل hello رو داخل این سری حافظه نوشت و دوباره اون رو خوند
    با سپاس

    1393/11/11
    01:55
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تو مطلب-قسمت کد ها-قسمت void main رو نگاه کنی جواب سوالت رو پیدا میکنی………….تو اون حلقه هه به چای j عدد بزار…از نوع int بزار

      1393/11/11
      02:09
  47. مهمان

    میلاد

    اقا دمت گرم واقعا

    1393/10/12
    01:45
  48. مهمان

    amin

    سلام ،خسته نباشید . مطالب بسیار عالی بود. یک سوال داشتم ،ممنون می شم اگه پاسخ بدید
    نحوه ریست کردن کل اطلاعات در این مدل حافظه چگونه است؟

    1393/08/07
    11:01
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تو دیتاشیتش کامل گفته……

      1393/08/07
      08:08
  49. مهمان

    مجید

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

    1393/07/27
    10:21
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام….والا من با آرم کار نکردم و اطلاعی در موردش ندارم cry

      1393/07/27
      07:57
  50. مهمان

    مجید

    سلام .اینم لینکش
    http://uplod.ir/wqa2sx1zjofr/%5B02%5D_EV_EEPROM_(AT24Cm
    با at24c02 کار میکنه ولی با 128 نه اگر اصلاح کردی برام بفرستی ممنون میشم.
    برا استارت آرم هم فایلای زیادی دارم .ایمیلت رو بده سر فرصت برات میفرستم.
    کل پروژه با کیل نوشته شده.128).rar.ht
    رو سایت هم آپلود کردم.منتظر میمونم.

    1393/07/26
    09:14
    • نویسنده این مطلب

      مهدی دمرچیلو

      گفتم که….با آرم کار نکردم(رفتم کتابش رو بخرم ولی…)
      پروژه تو هم که با آرم هستش….این کتاب خونه برا کدویژن هستش و نه آرم….

      1393/07/27
      12:21
  51. مهمان

    مجید

    اینه که توی ایپرام نوشته نمیشه.شما با میکرو آرم کار کردی؟برا این ایپرام کتابخانه ای داری؟

    1393/07/26
    12:10
    • نویسنده این مطلب

      مهدی دمرچیلو

      با آرم کار نکردم ولی تو فکرشم… laugh
      پروژت چیه…..کداش رو ببینم…..(آپلود کن تو سایت برام بفرست)……….من تستش کردم و گزاشتم تو سایت pardon

      1393/07/26
      08:01
  52. مهمان

    مجید

    اینه که کار نمیکنه !شما کتابخانه ای برای این داری؟یا هدری؟شما با میکرو آرم کار کردی؟اینجا شما مینویسی i2cstart
    اونجا باید این تابع رو خودت درست کنی .اینجا مینویسی i2cstop ولی اونجا باید اینو خودت بنویسی و کل توابعی مثل i2c_write(data); اینا رو من انجام دادم ولی هرکاری میکنم نمیشه .شما کتابخانه ای داری که کار کنه؟من یه چند تا لایبرری دارم ولی وقتی استفاده میکنم میبینم کار نمیکنه با جلینک تست گرفتم.از سخت افزار مطمئنم .نرم افزار مورد داره.

    1393/07/25
    11:11
  53. مهمان

    مجید

    سلام.من یه ایپرام خارجی به lpc1788 وصل کردم ولی هرکاری میکنم جواب نمیده.هر کی بلده کمک کنه.ایپرامم هم at24c128 هست.هزینه هم پرداخت میکنم.کل پروژه رو انجام دادم توی این قسمت گیر کردم.

    1393/07/25
    11:49
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      مشکل پروژت چیه؟

      1393/07/25
      12:11
  54. مهمان

    حجت فرجیان

    سلام و خداقوت خدمت آقا مهدی، خیلی آقایی
    خیلی ممنون که وقت میذاری
    موفق باشی داداش

    1393/07/17
    11:12
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      چاکریم.

      1393/07/17
      11:17
  55. مهمان

    علی قاضی

    چشم حتما پروژت چی هست؟

    1393/07/14
    11:06
  56. مهمان

    علی قاضی

    فردا میتونی یه نگاه بندازی؟

    1393/07/14
    10:23
    • نویسنده این مطلب

      مهدی دمرچیلو

      چان داش اصلا کارام معلوم نیست……یه پروژه هستش که 1 ماهه پاشم ولی مشکلش هنوز که هنوزه حل نشده…دارم دیوونه میشم…کسی هم نیست کم کنه…تو eca هم کسی بلد نیست انگار….اگه هم بلد باشه جواب ما رو نمیده….یکی بلد بود….بابت رفع مشکلم پول میخواست…… cry

      1393/07/14
      10:28
      • نویسنده این مطلب

        مهدی دمرچیلو

        در ضمن یکی از کاربرای سایت تو مطالبت نظر گزاشته….بیا تاییدش کن……
        مگه وقتی یکی تو مطالبت نظر میده….برات ایمیل نمیاد؟؟؟؟

        1393/07/14
        10:29
  57. مهمان

    علی قاضی

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

    1393/07/14
    10:23
  58. نویسنده این مطلب

    مهدی دمرچیلو

    مدار رو که بهت دادم…..کدت رو بده بهش ببین چطور عمل میکنه……من الان کار دارم خودم….در ضمن چرا سایتت؟؟
    مگه تو با ما نیستی؟

    1393/07/14
    10:21
  59. مهمان

    مجید

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

    1393/07/14
    09:25
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام smile
      ممنون…

      1393/07/14
      09:42
  60. مهمان

    shahpoor71

    ممنون اقا مهدی

    1393/07/14
    11:16