اطلاعیه

Collapse
No announcement yet.

اشکال دراستفاده همزمان I2C و UART در AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    اشکال دراستفاده همزمان I2C و UART در AVR

    سلام به دوستان خوبم . :bye

    من جدیدا به یه مشکلی برخوردم که از این قراره :

    یه سنسور دارم که با I2C راه اندازی میشه و می خوام اطلاعات اونو تو کامپیوتر نمایش بدم .

    من وقتی شروع میکنم به خوندن اطلاعات از طریق I2C و بعد ارسال اون به کامپیوتر ، چیزی تو PC دریافت نمی کنم . ولی وقتی میام کد های مربوط به I2C رو تو برنامم غیر فعال میکنم . و یه متن رو برای آزمایش ارسال میکنم ، درست کار میکنه و دریافت میشه . :cry2:

    از دوستان عاجزانه درخواست کمک دارم . :cry2:
    چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...

    #2
    پاسخ : اشکال دراستفاده همزمان I2C و UART در AVR

    سلام

    مطمئن شید که سیمهای مربوط به تغذیه،UART,I2C به اندازه کافی از هم فاصله داشته باشن

    دیدگاه


      #3
      پاسخ : اشکال دراستفاده همزمان I2C و UART در AVR

      تغذیه رو ok کردم ولی بازم نشد.

      من الان کلا uart رو از برنامه حذف کردم و فقط بخش i2c موند . بعد از مراحل خوندن اطلاعات از i2c گفتم که یه پین از میکرو رو 1 کنه و 500ms صبرکنه و بعد اونو 0 کنه و دوباره wait کنه .
      الان به این نتیجه رسیدم که برنامه تو مرتحل i2c گیر میکنه و ادامه نمیده . چون باید حداقل اون پین رو تغییر وضعیت بده که نمیده .

      حالا موندم چیکار کنم . وقتی از i2c استفاده میکنم برنامه تو بخش i2c گیر میکنه پایین نمیاد .

      :cry2:
      چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...

      دیدگاه


        #4
        پاسخ : اشکال دراستفاده همزمان I2C و UART در AVR

        از اونجاییکه در ارتباط I2C ایتدا مستر درخواست خودشو ارسال میکنه و بعد منتظر جواب از اسلیو میومونه ممکنه آی سی اسلیو دچار مشکل باشه و جواب مستر رو نمیده .البته اگه نوع آی سی اسلیو رو هم مشخص کرده بودین شاید میشد بهتر کمک کرد. (مقاومت روی خطوط دیتا و کلاک که یادتون نرفته؟!)

        دیدگاه


          #5
          پاسخ : اشکال دراستفاده همزمان I2C و UART در AVR

          سنسور مورد نظر BMP085 هست.
          دو تا مقاومت هم 4K7 هستند .

          راستی من دارم با توابع آماده کدویژن کار میکنم . موردی که نداره !؟

          یه نمونه :

          ;()i2c_init
          ;()i2c_start
          ;(i2c_write(0xEE
          ;(i2c_write(0xAA
          ;()i2c_start
          ;(i2c_write(0xEA
          ;(MSB=i2c_write(0xEA
          ;()i2c_stop

          چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...

          دیدگاه


            #6
            پاسخ : اشکال دراستفاده همزمان I2C و UART در AVR

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

            unsigned char read345reg(unsigned char add)
            {
            unsigned char regvalue=0;
            while(!i2c_start()) //wait here to free bus
            {#asm("wdr&quot}
            i2c_write(0xA6); //slave adress+write
            i2c_write(add); //set register address
            i2c_stop(); //restart (stoP followed by Start)
            i2c_start();
            i2c_write(0xA7); //slave adress+Read
            regvalue=i2c_read(0x00);
            i2c_stop();
            return(regvalue);
            }

            دیدگاه


              #7
              پاسخ : اشکال دراستفاده همزمان I2C و UART در AVR

              ممنون.
              از روش فوق استفاده کردم . مشکل uart حل شد . ولی الان حتی رجیستر دمای سنسور ds1621 رو تو پروتئوس میخونم 0 نشون میده . با 5 تا سنسور دیگه حتی شتاب سنج هم علاوه بر BMP085 هم امتحان کردم . صفر برمیگردونه !!! :cry2:
              چه دعايي کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...

              دیدگاه

              لطفا صبر کنید...
              X