NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3388 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 21 به 39 از 39

موضوع: پرونکل I2C در میکروکنترلر lpc1768

  1. #21
    کاربر فعال
    تاریخ عضویت
    Dec 2007
    نوشته ها
    113
    تشکر
    92
    تشکر شده 78 بار در 59 پست

    پیش فرض

    سلام
    بنده با lpc کار نکردم اما از اونجا که خودمم دنبال راه اندازی سنسور حرارت mlx که با پروتکل i2c به stm32 یه چیزی هایی دستگیرم شده که میگم شاید به درد شما بخوره:
    تایید دریافت یا همون ack معمولا (ظاهرا) با گیرنده اطلاعاته! بنابراین برنامه منتظر می مونه تا گیرنده دریافت اطلاعات رو تایید کنه. برای همین سخت افزار داره درست عمل می کنه...
    بنابراین کیل داره اشتباه می کنه... چون کسی اطلاعات اونو دریافت نکرده که بخواد تایید بفرسته
    احتمال بسیار زیاد تو لایه سخت افزار یا پیاده سازی پروتکل شما دارید اشتباه می کنید
    نترسید خودمم هیچی نفهمیدم...

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #22
    کاربر علاقه مند ensane2008 آواتار ها
    تاریخ عضویت
    Apr 2010
    نوشته ها
    62
    تشکر
    53
    تشکر شده 5 بار در 5 پست

    پیش فرض

    باز هم خیلی ممنون.

    این جور که بنده متوجه شدم، کلاک رو فقط مستر یا همان میکرو تولید میکنه.
    وقتی میکرو اطلاعات میفرسته باید منتظر بمانه تا اسلیو یه اکلانیج یا همان تایید ارسال کنه.
    این تاییده گویا حالت های مختلفی داره، که در lpc1768 در حالت وقفه برای هر کدام حالت ویژه ای در نظر گرفته شده.
    به هر حال با نفسیر این قسمت می توان قسمت پاسخ بعد رو هم تکمیل و تفسیر کرد.
    خود اکنالیج و استارت و استپ های مختلف میشه پروتکل i2c .

    الان وقتی میکرو مستر هست و یک اسلیو داریم، مراحل گویا اینجوری میشه برای سنسور sht15:

    1. در گام اول آدرس و حالت خواند با کد 00000101 برای خواندن رطوبت(به طور مثال) ارسال میشه.
    2.میکرو ACK رو دریافت میکنه.(در واقع بعد از ارسال کد فوق مستر یک پالس کلاک ایجاد میکنه که توی اون می بایست دستگاه اسلیو که اینجا sht15 هست یک ACK که همان یک پالس low است جواب بده).
    3.در این وضعیت با توجه به توضیحات سنسور فوق، این سنسور پایه دیتا رو در وضعیت high نگه میداره تا پردازش تکمیل بشه(رطوبت اندازه گیری بشه). بعد از تکمیل اندازه گیری گیری پایه دیتا low میشه.
    4. حالا دوباره پالس های کلاک می بایست توسط میکرو یا همان مستر ارسال بشه و همزمان با آن دیتا از سمت سلیو یا همان سنسور به سمت مستر ارسال میشه.

    5. با توجه به اینکه اطلاعات دو بایت است در هر بایت دریافت شده از سوی مستر یک ACK (یک پالس low ایجاد میگردد) به اسلیو ارسال میشه.


    لطفا اساتید یه بررسی بکنند بنده دارم درست توضیح میدم؟
    اگه اشتباهی هست لطفا راهنمایی و اصلاح کنند.
    و آیا این پروتکل همان I2C است؟
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 3.jpg
مشاهده: 30
حجم: 144.6 کیلو بایت  
    ویرایش توسط ensane2008 : 24-11-2014 در ساعت 09:22

  5. #23
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ensane2008 نمایش پست ها
    بزرگواران، هیچ کس توی فورم به این بزرگی اصلا با i2c کار نکرده، به داد ما برسه؟[emoji17] [emoji17]
    مهندس این کتابخونه ی خودمه بدونه مشکل با لطف خدا می کاره
    دانلود LPC1768 I2C0 rar

  6. تشکرها از این نوشته :


  7. #24
    کاربر علاقه مند ensane2008 آواتار ها
    تاریخ عضویت
    Apr 2010
    نوشته ها
    62
    تشکر
    53
    تشکر شده 5 بار در 5 پست

    پیش فرض

    آقا بررسی میکنم.
    خیلی خیلی لطف کردید.
    توضیحی نداشت؟

  8. #25
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    نیازی به توضیح نمی بینم مهنس اگه بازم مشکلی بود در خدمتم

  9. #26
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pirozy نمایش پست ها
    مهندس این کتابخونه ی خودمه بدونه مشکل با لطف خدا می کاره
    دانلود LPC1768 I2C0 rar
    مهندس! این برنامه را شما تست کردید؟
    من الان تست کردم اصلا کار نمی کنه با ایتوپرامی که وصل کرده ام. در قسمت Write bufer گیر می کنه!

  10. تشکرها از این نوشته :


  11. #27
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    مهندس! این برنامه را شما تست کردید؟
    من الان تست کردم اصلا کار نمی کنه با ایتوپرامی که وصل کرده ام. در قسمت Write bufer گیر می کنه!
    مهندس من خودم رو پروژه تست کردم کار می کنه
    ادرس ایپیرام رو با ادرس برنامه چک کن یکی باشه
    پایه wr ایپیرام رو زمین کن

  12. تشکرها از این نوشته :


  13. #28
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    کاشتن یک درخت کار سختی نیست
    ولی نگهداری ازش خیلی سخته
    یکروز ازش مواظبت نکنی افت میزنه خشک میشه یا سیل ریشه اش رو میشوره
    ایران میکرو هم مثل همین درختی هست که بهش توجهی نمیشه
    ویرایش توسط sadeghbakhshi : 01-09-2015 در ساعت 20:55

  14. تشکرها از این نوشته :


  15. #29
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pirozy نمایش پست ها
    مهندس من خودم رو پروژه تست کردم کار می کنه
    ادرس ایپیرام رو با ادرس برنامه چک کن یکی باشه
    پایه wr ایپیرام رو زمین کن
    پایه ها زمین هستند. آدرس برنامه را در کجا تعریف کردید باید چی باشد؟
    من تغییری در برنامه ندادم و فقط بابت تست برنامه را روی برد ریختم . البته یه سریال هم بهش اد کردم تا بشه مانیتورینگ کرد.ولی در قسمت write گیر می کنه
    سخت افزار درسته چون سمپل خودم کار می کنه:
    کد:
    
    Write bufer :
    1 0 0 0
    2 0 0 0
    4 0 0 0
    8 0 0 0
    16 0 0 0
    32 0 0 0
    64 0 0 0
    128 0 0 0
    0 1 0 0
    128 2 0 0
    Read bufer :
    1 0 0 0
    2 0 0 0
    4 0 0 0
    8 0 0 0
    16 0 0 0
    32 0 0 0
    64 0 0 0
    128 0 0 0
    0 1 0 0
    
    128 2 0 0

  16. تشکرها از این نوشته :


  17. #30
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    مهندس تو فایل AT24C02B_I2C0.h ادرس های خوندن نوشتن هستش
    پایه هات رو طبق عکس زیر وصل کن



    که ادرس خواندش میشه 0xA7 و ادرس نوشتنش میشه 0xA6 البته تو AT24C02B شاید تو EEPROM شما ادرس داخلی که با ادرس سخت افزاری یعنی پین های A0,A1,A2,... ترکیب میشه متفاوت باشه به دیتا شیتش نگاه کن
    ویرایش توسط mzarkoob : 22-12-2014 در ساعت 19:23

  18. کاربران : 2 تشکر کرده اند از شما pirozy برای ارسال این پست سودمند:


  19. #31
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    کاشتن یک درخت کار سختی نیست
    ولی نگهداری ازش خیلی سخته
    یکروز ازش مواظبت نکنی افت میزنه خشک میشه یا سیل ریشه اش رو میشوره
    ایران میکرو هم مثل همین درختی هست که بهش توجهی نمیشه
    ویرایش توسط sadeghbakhshi : 01-09-2015 در ساعت 20:55

  20. #32
    کاربر فعال
    تاریخ عضویت
    Dec 2007
    نوشته ها
    113
    تشکر
    92
    تشکر شده 78 بار در 59 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ensane2008 نمایش پست ها
    باز هم خیلی ممنون.

    این جور که بنده متوجه شدم، کلاک رو فقط مستر یا همان میکرو تولید میکنه.
    وقتی میکرو اطلاعات میفرسته باید منتظر بمانه تا اسلیو یه اکلانیج یا همان تایید ارسال کنه.
    این تاییده گویا حالت های مختلفی داره، که در lpc1768 در حالت وقفه برای هر کدام حالت ویژه ای در نظر گرفته شده.
    به هر حال با نفسیر این قسمت می توان قسمت پاسخ بعد رو هم تکمیل و تفسیر کرد.
    خود اکنالیج و استارت و استپ های مختلف میشه پروتکل i2c .

    الان وقتی میکرو مستر هست و یک اسلیو داریم، مراحل گویا اینجوری میشه برای سنسور sht15:

    1. در گام اول آدرس و حالت خواند با کد 00000101 برای خواندن رطوبت(به طور مثال) ارسال میشه.
    2.میکرو ACK رو دریافت میکنه.(در واقع بعد از ارسال کد فوق مستر یک پالس کلاک ایجاد میکنه که توی اون می بایست دستگاه اسلیو که اینجا sht15 هست یک ACK که همان یک پالس low است جواب بده).
    3.در این وضعیت با توجه به توضیحات سنسور فوق، این سنسور پایه دیتا رو در وضعیت high نگه میداره تا پردازش تکمیل بشه(رطوبت اندازه گیری بشه). بعد از تکمیل اندازه گیری گیری پایه دیتا low میشه.
    4. حالا دوباره پالس های کلاک می بایست توسط میکرو یا همان مستر ارسال بشه و همزمان با آن دیتا از سمت سلیو یا همان سنسور به سمت مستر ارسال میشه.

    5. با توجه به اینکه اطلاعات دو بایت است در هر بایت دریافت شده از سوی مستر یک ACK (یک پالس low ایجاد میگردد) به اسلیو ارسال میشه.


    لطفا اساتید یه بررسی بکنند بنده دارم درست توضیح میدم؟
    اگه اشتباهی هست لطفا راهنمایی و اصلاح کنند.
    و آیا این پروتکل همان I2C است؟
    سلام
    شاید!
    I²C - Wikipedia, the free encyclopedia
    File:I2C data transfer.svg - Wikipedia, the free encyclopedia
    -کلا تو چهار حالت میکرو می تونه بره:
    کد:
    master transmit — master node is sending data to a slave master receive — master node is receiving data from a slave slave transmit — slave node is sending data to the master slave receive — slave node is receiving data from the master

    -وضعیت شروع : کلاک=1 و دیتا >0
    -وضعیت پایان: کلاک=1 و دیتا >1

    - مستر کلاک ساعت رو تولید میکنه
    -بعد از هر 8 بیت، گیرنده اطلاعات تایید میده

    -توی stm:
    با رسیدن میکرو به دستور ارسال وضعیت آغاز، میکرو به وضعیت master فرستنده میره
    با ارسال وضعیت پایان هم به وضعیت slave


    توپروتکل این سنسور ظاهرا بعد از ارسال شروع باید یه پایان هم ارسال کنید تا اونجا که من می دونم (البته توی stm) بعد از فرستادن پایان میکرو خودکار می ره وضعیت گیرنده و شما مجبوری دو باره درخواست وضعیت شروع رو بدین.
    در ضمن بعد از ارسال دستور میکرو باید توی یه حلقه منتظر بمونه تا پایه دیتا یک بشه => احتمالا باید از i2c بیرون بره...
    دوباره وقتی تغییر رو دیده بره وضعیت مستر گیرنده

  21. تشکرها از این نوشته :


  22. #33
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pirozy نمایش پست ها
    بفرما

    آها پس شما سخت افزارتون همه پایه های آدرس را زمین نکردید! سخت افزار تست من (AT24C512)همش زمین است:

    اصلاح و تست می کنم
    با این اوصاف فکر کنم بایستی این دو ادرس این بشه؟:
    کد:
    #define  AT24C02B_WR_Add     0xA0
    #define  AT24C02B_RD_Add     0xA0
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: eeprom.png
مشاهده: 93
حجم: 30.8 کیلو بایت  

  23. تشکرها از این نوشته :


  24. #34
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    نه مهندس میشه

    کد:
    
    
    کد:
    #define  AT24C02B_WR_Add     0xA0
    #define  AT24C02B_RD_Add     0xA1
    

  25. تشکرها از این نوشته :


  26. #35
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    با این تغییر برای ایتپرام دو کیلو تست کردم کار می کنه:
    کد:
    Write bufer :0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
    Read bufer :0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
    ولی برای ایتوپرام 512 کیلو نه! اعداد بی ربط میده در خروجی :
    کد:
    Write bufer :0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
    Read bufer :0 0 2 0 0 4 6 0 0 0 2 8 8 12 14 0 0 0 2 0
    البته قبلا هم ظاهرا کار می کرده ولی چون 200 تا زیاد بوده و رایت شدن را نشون نمی دادم در سریال و طول می کشیده فکر می کردم کار نمی کنه
    در ضمن فرقی نمی کنه در تست این بذاریم :
    کد:
    #define  AT24C02B_WR_Add     0xA0
    #define  AT24C02B_RD_Add     0xA0
    یا این!
    کد:
    #define  AT24C02B_WR_Add     0xA0
    #define  AT24C02B_RD_Add     0xA1
    و حتی این مقدار که از اول هم بود فرقی نمی کنه در جواب!
    کد:
    #define  AT24C02B_WR_Add     0xA6
    #define  AT24C02B_RD_Add     0xA7
    پس این تعریف دقیقا چیکار می کنه در این برنامه!؟

  27. تشکرها از این نوشته :


  28. #36
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    این و برو از شرکت اتمل بپرس مهندس که با هر ادرسی کار میکنه
    در ضمن یکی از پایه های ادرست رو تغییر بده بین کار می کنه
    وقتی ادرس حافظه با ادرسی که براش ارسال میشه یکی نباشه تایید نمیکنه و کتابخونه ی من تو یه حلقه ی بی نهایت گیر می کنه تا درخواست تایید رو بگیره
    مهندس جسارت نباشه تا حالا با پروتکل i2c کار کردین؟

  29. تشکرها از این نوشته :


  30. #37
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pirozy نمایش پست ها
    مهندس جسارت نباشه تا حالا با پروتکل i2c کار کردین؟
    بله مهندس. در این مورد با موارد جالب دیگه ای هم مواجه شده ام ..
    به همین خاطر این سمپل هم تست کردم تا موارد جالب این هم ببینم چیه

  31. کاربران : 2 تشکر کرده اند از شما mzarkoob برای ارسال این پست سودمند:


  32. #38
    کاربر فعال pirozy آواتار ها
    تاریخ عضویت
    May 2010
    نوشته ها
    337
    تشکر
    147
    تشکر شده 192 بار در 84 پست

    پیش فرض

    ولی من تو برد خودم ادرس رو که تغییر میدم برنامه گیر میکنه مهندس

  33. تشکرها از این نوشته :


  34. #39
    کاربر علاقه مند ensane2008 آواتار ها
    تاریخ عضویت
    Apr 2010
    نوشته ها
    62
    تشکر
    53
    تشکر شده 5 بار در 5 پست

    پیش فرض

    با تشکر از همه دوستان.
    بعد از بررسی کامل، برطبق گفته یکی از دوستان که در همان ابتدای بحث فرمودند، پروتکل مورد استفاده در مورد این ic اصلا پروتکل i2c نیست.
    که با بررسی شرایط شروع به کار این سنسور که در عکس اولین پست آمده است، قابل مشاهده است.

    بر طبق گفته ان بزرگوار، بنده نیز به صورت دستی به این ای سی موفق به دریافت و ارسال اطلاعات شدم.
    هنوز تکمیل نشده، بعد از تکمیل نتایج رو همینجا اطلاع رسانی میکنم.

  35. تشکرها از این نوشته :


صفحه 2 از 2 نخستنخست 12

موضوعات مشابه

  1. محدوده ولتاژ ورودی adc در میکروکنترلر lpc1768
    توسط hamed.b3269 در انجمن LPC series (NXP)
    پاسخ: 1
    آخرين نوشته: 19-08-2014, 12:37
  2. مشکل در lcd کارکتری با میکرو LPC1768
    توسط ramin_kent در انجمن LPC series (NXP)
    پاسخ: 2
    آخرين نوشته: 17-08-2014, 12:17
  3. خروجی های pwm در میکروکنترلر lpc1768
    توسط hamed.b3269 در انجمن LPC series (NXP)
    پاسخ: 2
    آخرين نوشته: 21-07-2014, 01:30
  4. مشکل تاچ LCD 7 با رابط Spi در میکرو Lpc1768
    توسط majid97 در انجمن LPC series (NXP)
    پاسخ: 3
    آخرين نوشته: 02-07-2013, 19:22
  5. تامین ولتاژ 3.3امکانات جانبی هدربوردlpc1768
    توسط a.moghadam در انجمن LPC series (NXP)
    پاسخ: 9
    آخرين نوشته: 12-10-2012, 01:10

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •