اطلاعیه

Collapse
No announcement yet.

استفاده از پورت سریال در میکرو

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

    استفاده از پورت سریال در میکرو

    سلام به همگی
    من میخواستم یک داده دوبایتی رو با یعنی درواقع یک عدد دوبایتی رو ازطریق مگا 32 به پورت سریالش spi بفرستم
    میخواستم ببینم
    اگر بعد از کانفیگ توی بسکام
    این خط رو بنویسم کافیه؟؟؟؟؟
    spiout x,2
    یعنی سوالم اینه که واقعا میفرسته؟؟؟
    چون من این کارو میکردم عدد به درستی فرستاده نمیشد
    اما وقتی یک بایت یک بایت فرستادم و از وقفه استفاده کردم درست فرستاد
    سوالم اینه راهی وجود نداره که از وقفه استفاده نکنم؟؟؟؟؟
    و اینکه چرا باید دستور بالایی که نوشتم جواب نده؟؟؟؟

    #2
    پاسخ : استفاده از پورت سریال در میکرو

    سلام.
    شما وقتی از جلوی دستور spiout عدد دو رو میزارید spi دو بایت ارسال میکند پس متغییر باید از نوع word باشد.
    در واقع این دستور یک بایت را دو بار نمیفرستد بلکه یک word را میفرستد.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

    دیدگاه


      #3
      پاسخ : استفاده از پورت سریال در میکرو

      فرمایش شما درسته
      ولی من میگم
      که این دوبایت رو با هم میفرسته ؟؟؟؟
      یا بینش فاصله هست؟؟؟
      چون وقتی من یه عدد دوبایتی رو با این دستور میفرستم درست خروجی نمیگیرم

      دیدگاه


        #4
        پاسخ : استفاده از پورت سریال در میکرو

        بله.مثلا براساس msb بودن اول بایت بالا و سپس بایت پایین رو میفرسته و برای lsb برعکس.
        ساختار spi هم به این صورته که ابتدا یک بیت از دیتای مورد نظر را روی پین خروجی گذاشته و سپس کلاک میزند.
        در این پروتکل به دلیل سنکرون بودن نیازی به فاصله بین بایت های ارسالی نیست.
        منظور شما از درست ارسال کردن چیه؟
        یعنی چه طور متوجه میشید که درست ارسال کرده؟
        احتمالا مشکل از اون طرفه.
        تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

        دیدگاه


          #5
          پاسخ : استفاده از پورت سریال در میکرو

          دوست خوبم
          مشکل در واقع اینه که
          ببین من یه عدد از جنس word دارم که دوبایت هستش
          وقتی میخوام اینو به آی سی ad420 بفرستم (که یک مبدل دیجیتال به آنالوگ 16 بیتی هستش) خروجی رو که با مولتی متر نگاه میکنم میبینم که عدد رو به صورت درست ارسال نمیکنه و فقط بایت اول یعنی بایت کم ارزش رو میفرسته یعنی انگار که دوتا عدد جدای یک بایتی ارسال میکنه
          این مشکلو من حل کردم
          از طریق استفاده از وقفه پورت سریال
          اما مشکل من اینه که من نمیخوام از وقفه استفاده کنم
          و میخوام این دوبایت رو یک جا به عنوان یک عدد بفرسته جوری که slave هم این رو متوجه بشه
          ولی متاسفانه این دستور spiout x,2 درسته که دوبایته عدد x رو میفرسته ولی جدا جدا میفرسته و اسلیو متوجه نمیشه که این دوبایت برای یک عدده
          امیدوارم کامل گفته باشم

          دیدگاه


            #6
            پاسخ : استفاده از پورت سریال در میکرو

            من خودم بارها و بارها از این دستور استفاده کردم.
            هیچ مشکلی نداره.مطمئن باش.مشکل از این دستور نیست.
            اصلا جدا جدا فرستادن تو ارتباط spi معنا نداره.
            ترجیحا برنامه ای که نوشتی بذار شاید نکته ای رو رعایت نکرده باشی.
            از نرم افزاری استفاده میکنی یا سخت افزاری؟
            تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

            دیدگاه


              #7
              پاسخ : استفاده از پورت سریال در میکرو

              من از سخت افزاری استفاده میکنم
              همونطور که گفتم میخوام وقفه استفاده نکنم تا بتونم از نرم افزاری استفاده کنم مشکلی که نداره؟؟؟
              اما در مورد برنامه ام هم براتون میذارمش
              راستی من سوال دیگه ای که دارم اینه که چطور میتونم ارتباط spi رو با پروتئوس شبیه سازی کنم چون این آی سی من توی کتابخانه پروتئوس نیست؟؟
              اینم جواب بدین ممنون میشم
              اما در مورد برنامم اینه دیگه:
              Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 4
              Spiinit
              dim x as word
              x=2000
              do
              spiout x,2
              wait 1
              loop
              end

              دیدگاه


                #8
                پاسخ : استفاده از پورت سریال در میکرو

                ااا چرا به ذهن خودم نرسید. :biggrin:
                از قسمت Virtula Instruments Mode (همون جایی اسیلوسکپ میاری :biggrin اون SPI DEBUGGER رو میتونی استفاده کنی و ببینی که دستور هیچ مشکلی نداره.
                تا حالا با این DAC کار نکردم که بتونم کمک کنم در موردش.
                ولی پیشنهاد میکنم مقدار Polarity و Phase روتغغیر بهده ببین به جایی میرسی.
                چون بعضی از قطعات حساسن با این جور چیزا.
                موفق باشید.
                تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                دیدگاه


                  #9
                  پاسخ : استفاده از پورت سریال در میکرو

                  سلام وقتی از این spidebugger ااستفاده میکنم
                  ایراد میگیره
                  یه فلش آبی که روش علامت سواله
                  نوشته میشه
                  این چیه؟؟؟؟؟
                  یعنی غلط دیگه؟؟؟
                  حتی اگه یه عدد یک بایتی هم میفرستم این جوری میشه
                  چیکار باید بکنم؟؟؟

                  دیدگاه


                    #10
                    پاسخ : استفاده از پورت سریال در میکرو

                    سلام
                    مشکل شما کماکان پابرجاست؟
                    من نفهمیدم مشکل شما با SPI DEBUGGER چیه ولی اگه جواب نمیده این تیکه رو تو پروتئوس ببند و امتحان کن.

                    در ضمن من با spi نرم افزاری کار نکردم و هر جا که نیاز بوده از نرم افزاری استفاده کنم از دستور shiftout استفاده کردم که در حقیقت همون spi نرم افزاری هسته.
                    خوب هم جواب میده با حداکثر سرعت.
                    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                    دیدگاه


                      #11
                      پاسخ : استفاده از پورت سریال در میکرو

                      سلام دوست عزیز
                      میشه لطف کنید یه برنامه با همین دستور که گفتید
                      اینجا بذارید
                      ممنونم
                      که نحوه استفاده شو بدونم

                      دیدگاه


                        #12
                        پاسخ : استفاده از پورت سریال در میکرو

                        سلام
                        به این صورت:
                        کد:
                        Shiftout Portb.1 , Portb.2 , A , 0
                        این هم هلپ بسکام در مورد این دستور که کامل توضیح داده.
                        کد:
                        SHIFTOUT pin , pclock , var , option [, bits , delay ]
                        
                        Pin:The port pin which serves as a data output.
                        Pclock:The port pin which generates the clock.
                        Var:The variable that is shifted out.
                         
                         Option can be :
                        
                        0 – MSB shifted out first when clock goes low
                        1 – MSB shifted out first when clock goes high
                        2 – LSB shifted out first when clock goes low
                        3 – LSB shifted out first when clock goes high
                         
                        Bits
                         Optional number of bits to shift out.
                         
                        Delay
                         Optional delay in uS. When you specify the delay, the number of bits must also be specified. When the default must be used you can also use NULL for the number of bits.
                        تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                        دیدگاه


                          #13
                          پاسخ : استفاده از پورت سریال در میکرو

                          سلام
                          اشکالی نداره که متغیر ما توی این دستور از جنس WORD باشه؟؟
                          من این کارو کردم
                          و برای پایه ای SS اسلیو هم یه پین از میکرو تخصیص دادم که اسلیو انتخاب بشه
                          وبعد با این دستور مقدار دوبایتی رو فرستادم
                          ولی باز هم خروجی ندارم
                          واقعا کلافه شدم
                          در مورد اسلیو هم من قبلا با همین مدار جانبی ازش جواب گرفتم
                          یعنی مطمئن هستم که مشکلی از طرف اسلیو نیست
                          اهان
                          راستی
                          من این سه پایه از میکرو رو هم که استفاده کردم به صورت خروجی تعریف کردم
                          این مشکلی که نداره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟//

                          دیدگاه


                            #14
                            پاسخ : استفاده از پورت سریال در میکرو

                            اشکالی نداره که متغیر ما توی این دستور از جنس WORD باشه؟؟
                            خیر.
                            دوست من،مشکل از این دستور ها نیست مطمئن باش.
                            مشکل از جای دیگه ای هست.
                            تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                            دیدگاه

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