اطلاعیه

Collapse
No announcement yet.

مدیریت MISO توسط Slave در حالتی که چند Slave داریم

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

    مدیریت MISO توسط Slave در حالتی که چند Slave داریم

    با سلام،

    عرض کنم که می خوام حدود 8 تا avr رو با SPI به هم وصل کنم. Master همیشه ثابت می مونه و تغییر Master ندارم. می خوام بدونم چیزایی که من فهمیدم درسته یا نه.
    1-کنترل پین MISO توسط Slave که Output باشه یا Input به صورت خودکار (توسط خود بلوک SPI) انجام نمیشه و باید در کد با رجیستر DDR تنظیم شه.
    2- این یعنی هر Slave بعد از تموم شدن صحبتش با Master، باید خودش، MISO ٍخودش رو Input کنه. و البته مهم تر اینکه قبل از شروع صحبت MISO رو خودش خروجی کنه.
    3- خوب از آنجایی که ارسال دیتا از Slave به Master هم در همون لحظه صورت می گیره، هیچ راهی برای فهمیدن شروع صحبت غیر از پین SS نداریم.
    4- بنابراین باید SS رو چک کنیم (ترجیحا با اینتراپت خارجی) و هر وقت LOW شد MISO رو Output کنیم (اگر شانس بیاریم قبل از شروع SCK توسط Master).
    آیا اینها درسته؟ آیا راه دیگری هم وجود داره برای درست پیش رفتن این connection ؟

    آیا این مدیریت MISO توسط سنسورها و قطعات جانبی که فقط می خواد دیتا بدن به میکرو، داخلی انجام میشه؟ چون معمولاً می گن که این قطعات رو می شه چندتایی به یه باس SPI وصل کرد (البته با SS جدا.)

    ممنون میشم راهنمایی کنیین.
    (امیدوارم پستم تکراری نباشه )

    #2
    پاسخ : مدیریت MISO توسط Slave در حالتی که چند Slave داریم

    کلا در ارتباط spi وقتی چندتا slave داری کافیه همه پایه ها غیر از ss رو به صورت مشترک بهم وصل کنید.
    بعد از هر slave که بخوای بخونی یا بنویسی کافیه با استفاده از پایه ss، اون slave رو صدا بزنی و عملیات خواندن و نوشتن رو انجام بدی. بعدش هم دوباره ss رو یک میکنی.
    همون موقع هم که داری پایه ها رو پیکربندی میکنی MISO رو در مستر ورودی و MOSI رو خروجی میکنی و در SLAVE ها برعکس.
    ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

    امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

    دیدگاه


      #3
      پاسخ : مدیریت MISO توسط Slave در حالتی که چند Slave داریم

      نوشته اصلی توسط AliRezaDAVE
      کلا در ارتباط spi وقتی چندتا slave داری کافیه همه پایه ها غیر از ss رو به صورت مشترک بهم وصل کنید.
      بعد از هر slave که بخوای بخونی یا بنویسی کافیه با استفاده از پایه ss، اون slave رو صدا بزنی و عملیات خواندن و نوشتن رو انجام بدی. بعدش هم دوباره ss رو یک میکنی.
      همون موقع هم که داری پایه ها رو پیکربندی میکنی MISO رو در مستر ورودی و MOSI رو خروجی میکنی و در SLAVE ها برعکس.
      ممنونم از پاسختون. از این موضوع مطمئنید؟ چون خود ATMEL هم توی دیتاشیت ATmega ها و هم توی AVR151 که مربوط به SPI هست گفته که وضعیت پین MISO در حالت Slave، توسط خود کاربر تعیین میشه (User Defined) هستش، یعنی ظاهراً باید Direction پین رو با DDR تعیین کنیم.

      بعدشم اگر تمام Slave ها دارای MISO خروجی باشند (و در طول ارتباط تغییرشون ندیم)، حتی در حالتی که MASTER با یکی از SLAVE ها صحبت می کنه، بقیه هم پین MISO رو HIGH یا LOW کردن، چون MISO در بقیه SLAVE ها خروجی هستش. که در این حالت در واقع connection نداریم. دیتاها همه گم می شن.

      بازهم ممنونم از پاسخ.

      دیدگاه


        #4
        پاسخ : مدیریت MISO توسط Slave در حالتی که چند Slave داریم

        نظری نداره کسی؟ اگر کسی با SPI عملاً کار کرده باشه حتماً با موضوعی که من می گم برخورد کرده. ممنون میشم راهنمایی کنین...

        دیدگاه


          #5
          پاسخ : مدیریت MISO توسط Slave در حالتی که چند Slave داریم

          دوستان هیچ کس نظری نداره؟ می خوام بدونم آیا مدیریت این پروتوکل بدون استفاده از Polling پایه SS (یا اینتراپت خارجی) راه دیگه ای هم داره؟
          راستی من دیتا شیت یکی از بهترین Chip های TI رو که خیلی هم ظاهراً کاربرد داره بررسی کردم. این قطعه که از SPI استفاده می که بعد از HIGH شدن پین CS (معادل با SS) پین Dout خودش رو (معادل با MISO) به وضعیت High Impedance می بره. فقط در این حالته که میشه چند تا Slave رو در SPI داشت، درسته؟

          ممنون میشم راهنمایی کنین.

          دیدگاه


            #6
            پاسخ : مدیریت MISO توسط Slave در حالتی که چند Slave داریم

            این پروتکل بدرد شما نمی خوره. برای 8 تا سنسور باید حدودا 11 سیم بین مستر و اسلیو سیم کشی بشه . این دیگه مفهوم شبکه نیست . شما از پروتکل تک سیمه استفاده کن تا 128 تا وسیله رو فقط با 3 سیم شبکه میکنی . مثبت + زمین + دیتا
            تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
            داشتن عقله زيادتر از دیگر آدم ها است

            دیدگاه


              #7
              پاسخ : مدیریت MISO توسط Slave در حالتی که چند Slave داریم

              نوشته اصلی توسط aliila
              این پروتکل بدرد شما نمی خوره. برای 8 تا سنسور باید حدودا 11 سیم بین مستر و اسلیو سیم کشی بشه . این دیگه مفهوم شبکه نیست . شما از پروتکل تک سیمه استفاده کن تا 128 تا وسیله رو فقط با 3 سیم شبکه میکنی . مثبت + زمین + دیتا
              با سلام،
              خیلی ممنونم از پاسختون،

              من سوالم این نیست که به دردم می خوره یا نه. بعدشم اینکه این ماهیت پروتکل SPI هستش که انقدر سیم احتیاج داره و در عوض یکسری مزایا داره که البته راههایی هم برای کم کردن تعداد سیم وجود داره. و در نهایت اینکه فکر می کنم شما کلی چیز اول باید در مورد سخت افزار و هدف پروژه بپرسید بعد به این نتیجه برسید که این پروتکل به درد می خوره یا نه.

              ممنونم از راهنماییتون.

              دیدگاه

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