ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 3 123 آخرین
نمایش نتایج: از 1 به 10 از 21
  1. #1
    2014/10/30
    isf
    280
    55

    مشکل با ادرس ها در 24c1024

    سلام خدمت همه ی دوستان.
    چطوری میتونم توی stm32 با کتاب خانه hal با 24c1024 ارتباط برقرار کنم.
    میدونم ادرس ها به صورت 16 بیتی هست و باید در قالب دو بایت ارسال بشه ولی توی hal نمیدونم چطوری باید این کار را انجام بدم.
    من همه کد های زیر را تست کردم. ولی هیچ کدوم جواب نداد و مقدار برگشتی این تابع برابر HAL_BUSY هست.


    کد:
    HAL_I2C_Mem_Write(&hi2c2,0x00a1,0x00FF,2,"1",1,1000)
    کد:
    HAL_I2C_Mem_Write(&hi2c2,0x00a1,0x00FF,8,"1",1,1000)
    کد:
    HAL_I2C_Mem_Write(&hi2c2,0x00a1,0x00FF,16,"1",1,1000)
    ممنون میشم اگه راهنمایی کنید.
  2. #2
    2014/03/08
    بابلسر
    884
    343

    پاسخ : مشکل با ادرس ها در 24c1024

    سلام
    شما آدرس ای سی رو هشت بیتی بده،یعنی یه صفر از سمت راست به ۷ بیت آدرس اضافه کن.(read و write رو خود برنامه تنظیم میکنه)
    فرمت ارسال هم به صورت زیر هستش:
    کد:
    HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
    آدرس ای سی به شرطی که A1 و P0 صفر باشند چه برای نوشتن و چه برای خوندن برابر 0x00A0 میشه.

    شما مثل کد زیر بنویس

    کد:
    HAL_I2C_Mem_Write(&hi2c2,0x00A0,0x0001,I2C_MEMADD_SIZE_16BIT,"DATA",DATA_SIZE,1000);
    ویرایش توسط سید رضا باباتبار : 2017/06/16 در ساعت 18:16
  3. #3
    2014/10/30
    isf
    280
    55

    پاسخ : مشکل با ادرس ها در 24c1024

    نقل قول نوشته اصلی توسط reza0506

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    شما آدرس ای سی رو هشت بیتی بده،یعنی یه صفر از سمت راست به ۷ بیت آدرس اضافه کن.(read و write رو خود برنامه تنظیم میکنه)
    فرمت ارسال هم به صورت زیر هستش:
    کد:
    HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
    آدرس ای سی به شرطی که A1 و P0 صفر باشند چه برای نوشتن و چه برای خوندن برابر 0x00A0 میشه.

    شما مثل کد زیر بنویس

    کد:
    HAL_I2C_Mem_Write(&hi2c2,0x00A0,0x0001,I2C_MEMADD_SIZE_16BIT,"DATA",DATA_SIZE,1000);
    ممنون از لطفتون
    کدی که دادید را تست کردم.
    اما برنامه توی تابع HAL_I2C_Mem_Write وقتی به تابع I2C_WaitOnFlagUntilTimeout میرسه ، برنامه روی این تابع گیر میکنه بعدشم HAL_BUSY را return میکنه.
    بردم را هم چک کردم مشکلی نداشت قبلا با همین برد با 24c64 کار کردم و مشکلی نبوده.
    به نظرتون مشکل از کجاست؟
  4. #4
    2014/03/08
    بابلسر
    884
    343

    پاسخ : مشکل با ادرس ها در 24c1024

    نقل قول نوشته اصلی توسط hosseinghaheri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ممنون از لطفتون
    کدی که دادید را تست کردم.
    اما برنامه توی تابع HAL_I2C_Mem_Write وقتی به تابع I2C_WaitOnFlagUntilTimeout میرسه ، برنامه روی این تابع گیر میکنه بعدشم HAL_BUSY را return میکنه.
    بردم را هم چک کردم مشکلی نداشت قبلا با همین برد با 24c64 کار کردم و مشکلی نبوده.
    به نظرتون مشکل از کجاست؟
    سخت افزار درسته؟ از مقاومت پول آپ برای خطوط i2c استفاده کردید؟ A1 روبه زمین وصل کردید؟ اگر سخت افزار درسته
    شما همون اول بعد include ها متغیر زیر رو تعریف کن
    کد:
    uint8_t str[5]={"hello"};
    بعد تو برنامه از کد زیر استفاده کن ببین نتیجه چی میشه
    کد:
    HAL_I2C_Mem_Write(&hi2c2,0x00A0,0x0000,I2C_MEMADD_SIZE_16BIT,str,5,1000);
  5. #5
    2014/10/30
    isf
    280
    55

    پاسخ : مشکل با ادرس ها در 24c1024

    نقل قول نوشته اصلی توسط reza0506

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سخت افزار درسته؟ از مقاومت پول آپ برای خطوط i2c استفاده کردید؟ A1 روبه زمین وصل کردید؟ اگر سخت افزار درسته
    شما همون اول بعد include ها متغیر زیر رو تعریف کن
    کد:
    uint8_t str[5]={"hello"};
    بعد تو برنامه از کد زیر استفاده کن ببین نتیجه چی میشه
    کد:
    HAL_I2C_Mem_Write(&hi2c2,0x00A0,0x0000,I2C_MEMADD_SIZE_16BIT,str,5,1000);
    این کد را هم تست کردم ولی جواب نداد بازم توی اون تابع گیر میکنه.
    برد را هم گفتم قبلا روی همین برد با 24c64 کار کردم.
    با مقاومت 4k7 پول اپ کردم و سمت چپه ایسی که شامل دو nc و a1 و gnd هست را هم زمین کردم.
    ولتاژ هم 3v3 هست.
    حالا یه بار ایسیو برمیدارم و دوباره میزارم و تست میکنم.

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    ایسی را هم عوض کردم ولی فایده ای نداشت!
  6. #6
    2014/03/08
    بابلسر
    884
    343

    پاسخ : مشکل با ادرس ها در 24c1024

    نقل قول نوشته اصلی توسط hosseinghaheri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    این کد را هم تست کردم ولی جواب نداد بازم توی اون تابع گیر میکنه.
    برد را هم گفتم قبلا روی همین برد با 24c64 کار کردم.
    با مقاومت 4k7 پول اپ کردم و سمت چپه ایسی که شامل دو nc و a1 و gnd هست را هم زمین کردم.
    ولتاژ هم 3v3 هست.
    حالا یه بار ایسیو برمیدارم و دوباره میزارم و تست میکنم.

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    ایسی را هم عوض کردم ولی فایده ای نداشت!
    پین wp رو به زمین وصل کنید،vcc رو هم اگر امکانش هست به ۵ ولت وصل کنید و یا سرعت ارتباط رو پایین بیارید
    سرعت ارتباط چنده؟ ۱۰۰ کیلو؟
    اگر تغذیه ۵ ولت دادید، مقاومت های پول آپ رو به ۳/۳ وصل کنید
    تنظیمات cubemx رو درست انجام دادید؟
    ویرایش توسط سید رضا باباتبار : 2017/06/16 در ساعت 21:03
  7. #7
    2014/10/30
    isf
    280
    55

    پاسخ : مشکل با ادرس ها در 24c1024

    سرعت i2c صد کیلو است. نیازه کمترش کنم؟
    اگه نیازه در چه حد؟
    بله تنظیمات مشکلی نداره حداقلش روی 24c64 جواب داد.
    چون ایسی smd هست و توی مدارم 5 ولت ندارم .
    یکم سخته ۵ ولت بهش بدم اخه vcc ایسی با vcc میکرو یکیه.
  8. #8
    2014/03/08
    بابلسر
    884
    343

    پاسخ : مشکل با ادرس ها در 24c1024

    نقل قول نوشته اصلی توسط hosseinghaheri

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سرعت i2c صد کیلو است. نیازه کمترش کنم؟
    اگه نیازه در چه حد؟
    بله تنظیمات مشکلی نداره حداقلش روی 24c64 جواب داد.
    چون ایسی smd هست و توی مدارم 5 ولت ندارم .
    یکم سخته ۵ ولت بهش بدم اخه vcc ایسی با vcc میکرو یکیه.
    با این ولتاژ تا سرعت 400 کیلو هم جواب میده پس مشکلی نیست
    شما به جای 0x00A0 قرار بده 0xA0
    راستی برنامه هیچ اخطاری نمیده؟ (warning)
  9. #9
    2014/10/30
    isf
    280
    55

    پاسخ : مشکل با ادرس ها در 24c1024

    این کد را هم نوشتم ولی بازم توی همون تابع گیر میکنه.
    کد:
    HAL_I2C_Mem_Write(&hi2c2,0xA0,0x0000,I2C_MEMADD_SIZE_16BIT,str,5,1000);
    راهی وجود نداره که خودمون روی دیتای ارسالی کنترل داشته باشیم.
    تقریبا مثل avr بایت ها رو تک تک بفرستیم
  10. #10
    2014/03/08
    بابلسر
    884
    343

    پاسخ : مشکل با ادرس ها در 24c1024

    با تابع hal_i2c_write میتونی هر دفعه آدرس حافظه رو بدی و یه بایت بنویسی
    ولی با همون برنامه قبلی باید میشد،شما با چی دیباگ میکنید؟
صفحه 1 از 3 123 آخرین
نمایش نتایج: از 1 به 10 از 21

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

  1. مشکل در نوشتن و خواندن از یک خانه حافظه با ادرس مشخص
    توسط alireza_xani در انجمن پردازش سیگنال
    پاسخ: 2
    آخرين نوشته: 2016/12/30, 00:04
  2. مشکل در ادرس دهی AT24C256 eeprom
    توسط m410 در انجمن NXP
    پاسخ: 6
    آخرين نوشته: 2012/04/13, 11:42
  3. ادرس دهی حافظه فلش
    توسط milad066 در انجمن كامپيوتر ، اينترنت و علوم مرتبط
    پاسخ: 1
    آخرين نوشته: 2012/01/07, 10:42
  4. در مورد 24C1024, ATMEGA64
    توسط payaimen در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2008/11/30, 16:07
  5. روش های ادرس دهی (کمک)
    توسط zizo2566 در انجمن برنامه نويسي و اينترفيس
    پاسخ: 0
    آخرين نوشته: 2008/05/07, 15:43

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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