اطلاعیه

Collapse
No announcement yet.

ارتباط SPI با شیفت رجیستر 74595

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

    ارتباط SPI با شیفت رجیستر 74595

    سلام ما تو یه مدار قراره یه سری دیتا رو برای چند تا شیفت رجیستر 74595 بفرستیم و نیاز داریم دیتا بصورت بایت به بایت ارسال بشه ، اما تو کدویژن تا جاییکه اطلاع دارم با هربار فراخوانی تابع SPI هشت بایت ارسال میشه
    دوستان لطف میکنند روش ارسال بصورت تک بایت تک بایت رو توضیح بدن ؟ یا راه حل دیگری برای حل این مشکل ؟
    ممنون :smile:
    زندگی آن چه که زیسته ایم نیست ، بلکه آن چیزی است که از گذشته به خاطر داریم ...گابریل گارسیا مارکز

    #2
    پاسخ : ارتباط SPI با شیفت رجیستر 74595

    سلام
    منظور شما از هشت بایت چیه؟؟ اگه منظورتون هشت بیته و شما نیاز به ارسال بیتی دارید میتونید توی برنامتون این طور در نظر بگیرید که ارسال 0xFF یعنی 1 و ارسال 0x0 یعنی صفر. گرچه spi خطای پایینی داره اما این روش خوبیش به اینه که شما میتونید با میانگیری از تعداد 1 ها یا 0 ها خطا رو کاهش بدید. بدیه این روش هم اینه که سرعت شما هشت برابر کاهش پیدا میکنه.

    تکنیک دیگه اینه که شما یه پروتکل واسه خودت در نظر بگیری و مطابق اون دو میکرو رو با هم هماهنگ کنی.

    اگر شما دارید به روش spi یه کنترلر دیگه رو کنترل میکنی؟ یا با یه IC دیگه داده رد و بدل میکنی (مثلا ADC) اونوقت باید دیتاشیت رو بدقت بخونی اصولا ارتباط SPI یه ارتباط هشت بیتی که مستر و اسلیو داده ها رو هم زمان به هم شیفت میدن. پس اینکه از بایت رسیده من از یک بیتش استفاده کنم حرف درستیه اما اینکه به این روش فقط یک بیت بفرستم نشدنیه.

    موفق باشید
    Work with what you have .Never limit yourself by things you could have had

    دیدگاه


      #3
      پاسخ : ارتباط SPI با شیفت رجیستر 74595

      سلام بزارید بیشتر توضیح بدم
      ببینید ما توی یه تابلو روان نیاز به این IC داریم و چون شیفت رجیستر ها بطور متوالی بسته شدن (خروجی هر شیفت رجیستر به ورودی بعدی ) و متن هم قراره متحرک باشه و بصورت بیت به بیت از سمت چپ وارد تابلو بشه و همینطور یک بیت یک بیت شیفت پیدا کنه حالا من موندم چطوری تو SPI دیتا رو بطور یک بیت یک بیت بفرستم در حالی که با فراخوانی تابع SPI تو کدویژن 8بیت ارسال میشه
      سطرها هم توسط دیکدر یا شیفت رجیستر انتخاب میشند
      ممنون از توجهتون
      زندگی آن چه که زیسته ایم نیست ، بلکه آن چیزی است که از گذشته به خاطر داریم ...گابریل گارسیا مارکز

      دیدگاه


        #4
        پاسخ : ارتباط SPI با شیفت رجیستر 74595

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

        حالا این چه ربطی به سئوال شما داشت؟
        شیفت رجیستر عمل شیفت رو با اعمال پالس کلاک انجام میده. در هر صورت شما باید فرستادن ببیت توسط SPI و عمل شیفت در شیفت رجیستر رو با هم سنکرون کنید. بهترین راه اینه که پالس SCK یعنی کلاک تولیدی توسط SPI رو بدی به کلاک شیفت رجیستر.
        در اینصورت با هر بار فرستادن 8 بیت شیفت رجیسترهای شما هم عمل شیفت رو انجام میدن.

        نکته ای که باید در نظر بگیری fan out پایه SCK هست. اگر قرار این پالس به تعداد زیادی شیفت رجیستر وارد بشه بهتره از بافر استفاده کنی.
        در مورد مود SPI هم باید مود مورد نظر رو با توجه به شیفت رجیسترت انتخاب کنی.

        موفق باشید
        Work with what you have .Never limit yourself by things you could have had

        دیدگاه


          #5
          پاسخ : ارتباط SPI با شیفت رجیستر 74595

          سلام فکر میکنم نتونستم منظورمو به درستی منتقل کنم
          اگه ممکنه سورس یه برنامه تابلو روان با این IC را در صورت امکان قرار بدین
          بازم ممنون :smile:
          زندگی آن چه که زیسته ایم نیست ، بلکه آن چیزی است که از گذشته به خاطر داریم ...گابریل گارسیا مارکز

          دیدگاه

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