اطلاعیه

Collapse
No announcement yet.

SPI بین دو میکرو

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

    SPI بین دو میکرو

    سلام من با بسکام کار میکنم
    1-من میخوام دو میکروی MEGA32 رو از طریق SPI به هم وصل کنم
    و میخوام از یکی به اون یکی یه عدد بفرستم اگه میشه پروژه ی آمادشو برام بزارید
    2- یه سوال حاشیه ای:
    من یه میکروی ATTINY26 دارم. اگه بخوام از طریق SPI سخت افزاری باهاش ارتباط برقرار کنم پایه ی SS رو کم داره
    اینم عکسش

    #2
    پاسخ : SPI بین دو میکرو

    با سلام خدمت دوست خوبم :
    اولا که من مطمئن نیستم که تینی ها قابلیت spi داشته باشن در نتیجه شما هم به نقشه سخت افزاریش اکتفا نکنین و حتما دیتاشیت اون رو مطالعه کن تا ببینی این قابلیت رو داره یا نه . ثانیا برای ارتباط spi بطور کلی به سه درگاه از هرمیکرو نیازه که این درگاه ها MISO , MOSI , SCK هستند . ارسال هر بیت با یک لبه پالس همواره در پایه SCK است . پایه ای که شما گفتی (ss) برای تعیین حالت میکرو بین master , slave هست که در حالت مستر این پایه بعنوان خروجی و در حالت اسلیو همیشه بعنوان ورودی استفاده میشه و اگر این پایه رو active LOW کنی ارتباط برقرار میشه و در غیر اینصورت ارتباط قطع است . در مورد سوال اولت هم باید بگم که کمی زحمت لازم داری تا بتونی پروژت رو انجام بدی و یادت نره که نیرو های غیبی تا زمانی که خودت زحمت نکشی به کمکت نمیان . بازم من در خدمتم . با سپاس
    چو ایران نباشد تن من مباد

    دیدگاه


      #3
      پاسخ : SPI بین دو میکرو

      همین الآن تونستم ارتباط رو برقرار کنم ( منظورم سوال اول هستش)
      اینم از لینک های دانلود پروژه


      http://www.lgshare.com/upload/do.php...9e8e640e71.rar

      و اما سوال دوم
      تو عکس موجود سه پایه ی MOSI , MISO , SCK وجود داره ولی SS نیست من کدوم پایه رو ACTIVE LOW کنم ؟
      همچنین منظورتون از ACTIVE LOW چیه چون من یکم مبتدی هستم؟

      دیدگاه


        #4
        پاسخ : SPI بین دو میکرو

        پایه ss اصلا مال spi نیست! مال uart هست

        دیدگاه


          #5
          پاسخ : SPI بین دو میکرو

          چرا آقا
          UART فقط دو پایه ی TXD و RXD داره
          پایه ی SS همان مخفف SELECT SLAVE هستش
          لطفا یکم دقت کنید
          میتونید به کینک زیر رفته و مطالعه کنید
          http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

          دیدگاه


            #6
            پاسخ : SPI بین دو میکرو

            نوشته اصلی توسط Amir-b
            همین الآن تونستم ارتباط رو برقرار کنم ( منظورم سوال اول هستش)
            اینم از لینک های دانلود پروژه


            http://www.lgshare.com/upload/do.php...9e8e640e71.rar

            و اما سوال دوم
            تو عکس موجود سه پایه ی MOSI , MISO , SCK وجود داره ولی SS نیست من کدوم پایه رو ACTIVE LOW کنم ؟
            همچنین منظورتون از ACTIVE LOW چیه چون من یکم مبتدی هستم؟
            درسته پایه ss برای پروتکل spi است و برای آنکه در مد slave قرار بگیرد به این پایه احتیاج می باشد.
            میکرو ATtiny26 واحد spi ندارد و این پایه ها برای پروگرمر isp می باشد.

            دیدگاه


              #7
              پاسخ : SPI بین دو میکرو

              سلام.
              اگه به صفحه 87، شکل شماره 45 دیتاشیت نگاه بکنید، اونجا گفته که برای حالت Slave یا Master باید
              بصورت نرم‎افزاری آی‎سی رو تنظیم بکنیم. و در ادامه یه مثال هم خودش نوشته.
              البته من خودم با این آی‎سی کار نکردم.
              موفق باشید

              دیدگاه


                #8
                پاسخ : SPI بین دو میکرو

                نوشته اصلی توسط sina_80
                سلام.
                اگه به صفحه 87، شکل شماره 45 دیتاشیت نگاه بکنید، اونجا گفته که برای حالت Slave یا Master باید
                بصورت نرم‎افزاری آی‎سی رو تنظیم بکنیم. و در ادامه یه مثال هم خودش نوشته.
                البته من خودم با این آی‎سی کار نکردم.
                موفق باشید
                درسته من هم آن را دیدم ولی اگه توجه کنید فقط می شود دو تا میکرو را بهم وصل کرد با سه سیم و داده ارسال و دریافت می شود اما نمی شود چندتا میکرو را به عنوان slave به یک میکرو به عنوان master وصل کرد (شبکه کردن میکروها) در ضمن اگر بلوک دیاگرام اول دیتاشیت را هم ملاحظه کنید واحد spi وجود ندارد.

                دیدگاه


                  #9
                  پاسخ : SPI بین دو میکرو

                  بله شما درست میگید تو دیتاشیت نوشته SPI PROGRAMMING
                  اگه دقت کنید یه پروتکل USI یا همون Universal Serial Interface داره با این پروتکل چطوری میتونم کار کنم؟

                  دیدگاه


                    #10
                    پاسخ : SPI بین دو میکرو

                    تو دیتاشیت نوشته
                    the universal serial interface (USI) of attiny26 allows efficient software implementation of twi or sm-bus interface
                    یعنی از usi باید به عنوان TWI یا SM-bus interface استفاده کنیم

                    دیدگاه


                      #11
                      پاسخ : SPI بین دو میکرو

                      نوشته اصلی توسط Amir-b
                      بله شما درست میگید تو دیتاشیت نوشته SPI PROGRAMMING
                      اگه دقت کنید یه پروتکل USI یا همون Universal Serial Interface داره با این پروتکل چطوری میتونم کار کنم؟
                      صفحه 80 به بعد دیتا شیت همه چیز رو توضیح داده این واحد هم می تواند به صورت دو سیمه و سه سیمه ارتباط برقرار کند.

                      دیدگاه


                        #12
                        پاسخ : SPI بین دو میکرو

                        لطفا کمکم کنید خیلی واجبه میخوام یه عدد رو از این attiny26 به یه mega32 بفرستم

                        دیدگاه


                          #13
                          پاسخ : SPI بین دو میکرو

                          نوشته اصلی توسط Amir-b
                          لطفا کمکم کنید خیلی واجبه میخوام یه عدد رو از این attiny26 به یه mega32 بفرستم
                          خوب ببین من خیلی وقته با AVR کار نکردم به خاطر این ARM که 2و3 ساله دارم فقط با اون کار می کنم. حالا از لحاظ سخت افزاری به نظرم چون ATtiny26 را نمی شود درست حسابی slave قرار داد (مگر اینکه با وقفه کار کنید) پس آنرا ما Master در نظر می گیریم و ATmega32 را slave در نظر بگیر و مطابق شکل صفحه 85 مدارت را ببند و یک پایه دیگر از ATtiny26 را به پایه ss میکرو ATmega32 وصل کن. با slave میکرو ATmega32 که مشکلی نداری و به راحتی رجیسترهای آنرا تنظیم می کنی بعد برای ATtiny26 هم که کلا 3 تا رجیستر دارد 1 رجیستر هم که بافر می باشد پس در کل اون دوتا رجیستر را مطالعه کن مطمئنا می توانی راه اندازی کنی فقط دقت داشته باش هر وقت که می خواهی عدد را از ATtiny26 ارسال کنی باید اون پین که به پایه ss میکرو ATmega32 وصل است را باید صفر کنید بعد از ارسال آنرا یک کن حتما.
                          موفق باشید

                          دیدگاه


                            #14
                            پاسخ : SPI بین دو میکرو

                            آخه یه مشکل بزرگتر اینه که من میخوام دو تا attiny26 رو به یک mega32 وصل کنم و از هر کدوم یه عدد به mega32 بفرستم

                            دیدگاه


                              #15
                              پاسخ : SPI بین دو میکرو

                              نوشته اصلی توسط Amir-b
                              آخه یه مشکل بزرگتر اینه که من میخوام دو تا attiny26 رو به یک mega32 وصل کنم و از هر کدوم یه عدد به mega32 بفرستم
                              خوب در این حالت mega32 را master در نظر می گیریم و tiny26 ها رو slave .در میکرویی که master می باشد باید به تعداد slave ها یک پایه برای فعال کردن پایه ss میکرو slave در نظر گرفت. اصولا در پروتکل SPI این پایه با صفر فعال می شود و با یک غیر فعال می شود. در مدار زیر هم فرض بر این است که این پایه با صفر فعال می شود اما شما می توانید آنرا با یک فعال و صفر غیر فعال کنید در اینصورت به NOTها نیازی نیست.
                              مدار شکل زیر را نگاه کن DO , DI ها رو به دوتا ATtiny26 وصل کن و SCK1 به tiny26 اول و SCK2 به tiny26 دوم. سپس برای tiny26 ها برنامه slave را مظابق دیتاشیت بنویس برنامه هر دو هم مشابه می باشد. برای mega32 برنامه master را بنویس و هواست باشد برای ارسال و دریافت اطلاعات پایه ss مورد نظر را قبل از ارسال فعال کن بعد از اتمام کار غیر فعالش کن. در ضمن به این روش هر چندتا tiny26 را که بخواهید می توانی به mega32 وصل کنید.

                              دیدگاه

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