اطلاعیه

Collapse
No announcement yet.

spi در بسکام

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

    #61
    پاسخ : spi در بسکام

    سلام آقای بهی
    ممنون از دلگرمی شما
    اتفاقی که افتاده ما فعلا همونطور که از اول بحث کردیم سر دستورات موندیم
    فعلا به جریان کاری نداریم دقیقا الان ولتاژ رو انتخاب کردیم که مرحله به مرحله جلو بریم
    الان اگه صلاح می دونید برنامه ارتباط با این ic رو از طریق spi کمک کنید که چی بفرستیم و چی بخونیم چون واقعا مشکل اساسی ما از اینجا شروع شد حالا اگه بتونیم همین مقدار ولتاژی که نیما با تقسیم مقاومتی انجام داده بخونیم و تی همون ال سی دی هم نمایش بدیم سعی می کنیم که خیلی کمتر مزاحم شما بشیم این بورد هم همه به این دلیل زدیم (البته من نتونستم ) که شما یه نمونه از این ارتباط رو بگید و بعد ما توسعه بدیم حالا نظرتون چیه

    دیدگاه


      #62
      پاسخ : spi در بسکام

      من هم از لطف همه شما متشکرم استاد behi اگه الان بی خیال جریان بشیم خیلی بهتره چون فعلا اگه یه دستور بتونیم بفرستیم و مقدار اون رو بخونیم خیلی خوب میشه . مشتاقانه منتظر راهنمائی شما مشتاقانه هستیم
      فقط یه داستان دیگه من با تقسیم مقاومتی 220 ولت رو به 40 میلی ولت تبدیل کردم (مشکلی با این ندارید )
      معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

      دیدگاه


        #63
        پاسخ : spi در بسکام

        نوشته اصلی توسط pani_rezaii
        سلام آقای بهی
        ممنون از دلگرمی شما
        اتفاقی که افتاده ما فعلا همونطور که از اول بحث کردیم سر دستورات موندیم
        فعلا به جریان کاری نداریم دقیقا الان ولتاژ رو انتخاب کردیم که مرحله به مرحله جلو بریم
        الان اگه صلاح می دونید برنامه ارتباط با این ic رو از طریق spi کمک کنید که چی بفرستیم و چی بخونیم چون واقعا مشکل اساسی ما از اینجا شروع شد حالا اگه بتونیم همین مقدار ولتاژی که نیما با تقسیم مقاومتی انجام داده بخونیم و تی همون ال سی دی هم نمایش بدیم سعی می کنیم که خیلی کمتر مزاحم شما بشیم این بورد هم همه به این دلیل زدیم (البته من نتونستم ) که شما یه نمونه از این ارتباط رو بگید و بعد ما توسعه بدیم حالا نظرتون چیه
        تنظیمات توی Bascom رو توی صفحات اول گفتم اول اونها رو تنظیم کنید بعد دستورات رو به ترتیب برای آی سی بفرستید
        1-دستور Start Conversions : می تواند یک بار یا پشت سر هم باشد
        2-دستور Register Read : این دستور از2 قسمت تشکیل شده یکی تعیین خواندن یا نوشتن که برای خواندن ولتاژ آن را روی حالت Read قرار میدهیم و دیگری آدرس خانه ای ازحافظه که اطلاعات مثلا ولتاژ قرار دارد (01000)
        3- خواندن 3 بایت اطلاعات

        نوشته اصلی توسط john lock
        من هم از لطف همه شما متشکرم استاد behi اگه الان بی خیال جریان بشیم خیلی بهتره چون فعلا اگه یه دستور بتونیم بفرستیم و مقدار اون رو بخونیم خیلی خوب میشه . مشتاقانه منتظر راهنمائی شما مشتاقانه هستیم
        فقط یه داستان دیگه من با تقسیم مقاومتی 220 ولت رو به 40 میلی ولت تبدیل کردم (مشکلی با این ندارید )
        40mV فکر کنم کم باشه و دقت رو پایین بیاره. برای اندازه گیری ولتاژ 220V میتونید از تقسیم 1:1000 استفاده کنید


        دیدگاه


          #64
          پاسخ : spi در بسکام

          [quote=behi88]

          آقای بهی میشه چند خط رو توی بس کام خودتون زحمتشو بکشید واقعا من یکی نمی دونم باید چی کار کنم مخصوصا خواندن رجیستر واقعا موندیم

          دیدگاه


            #65
            پاسخ : spi در بسکام

            استاد سلام

            :angry: :angry: :angry: :angry:
            این دستور شروع که این جوری که گفته باید 2 بار فرستاده بشه

            حالا برای خواندن ولتاژ چی کار کنیم ؟؟

            $regfile = "m32def.dat"
            Dim Co As Byte
            Dim Answ(3) As Byte
            Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portd.1 , Rs = Portd.0
            Config Lcd = 16 * 2
            Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128
            Spiinit
            'co = start convestion =11101000
            Co = 232
            Spiout Co , 1
            Spiout Co , 1
            Co = 254 'sync0
            Spiout Co , 1
            Spiout Co , 1
            Co = 160 'sync1
            Spiout Co , 1
            Spiout Co , 1
            Co = 24 'read vrms
            Spiout Co , 1
            Spiin Answ(1) , 3
            Lcd Answ(1)
            End
            سوال اصلی اینه که من این 3 بایت رو چه طوری بریزم توی متغیرم فکر میکنم ایراد من اینجا باشه که من فقط یک بایم از متغیر answ رو پر می کنم


            و آیا دستوری که من برای خوندان مقدار Vrms دادم درسته
            در ضمن این منظورش چی بوده که جواب توی sclk بسیت و چهارم ارسال میشه



            معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

            دیدگاه


              #66
              پاسخ : spi در بسکام

              یه چند روزی هست که نیستم
              ولی خوب هر وقت بتوانم سر میزنم
              1- هیچ وقت دستورات رو به صورت دسیمال نفرستید چون اینطوری ممکن است اشتباه کنید
              یا از هگزادسیمال یا از باینری استفاده کنید
              2- هیچ دستوری را بیش از 1 بار برای آی سی نفرستید
              3-بعد از فرستادن دستور start convestion باید 3 بایت از SPI با دستور Spiin بخوانید
              4- برای دیدن عدد باید یک متغیر LONG با دستور DIM تعریف کنید و سه بایت را در درون متغیر Long قرار دهید:
              مثلا متغیر A یک متغییر Long هست و b1 بایت خوانده شده اول b2 بایت خوانده شده دوم و b3 باست خوانده شد سوم

              a=0
              a=b1
              shift a,left,8
              a=a or b2
              shift a,left,8
              a= a or b3


              حالا میتوتنید عدد A راروی LCD ببینید این عدد با مقدار ولتاژ متناسب خواهد بود

              موفق باشید

              دیدگاه


                #67
                پاسخ : spi در بسکام

                استاد سلام
                ما برنامه رو این جوری تغییر دادم
                فقط یه موصوع شما گفته بودید بعد از دستور start Converstion منتطر خواندن باشیم که فکر کنم استباه باشه حتما باید دستور (اگه اشتباه نکنم vrms که متناظر آن میشه F8 رو باید بفرستیم ) ولی توی همه این حالات مقدار 0 رو ری ال سی دی نمایش میده به نظر شما اگه برنامه مشکل نداره کدام دستور رو بفرستیم اگه میشه اصلاحش کنید برنامه رو


                $regfile = "m32def.dat"
                $crystal = 8000000
                Dim Co As Byte
                Dim Along As Long
                Dim Answ(3) As Byte
                Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portd.1 , Rs = Portd.0
                Config Lcd = 16 * 2
                Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128
                Spiinit
                Cls
                Lcd "yono"
                Wait 1
                Cls
                Along = 0
                'co = start convestion =11101000
                Co = &HE8
                Spiout Co , 1

                Co = &HF8 'Read Vrms
                Spiout Co , 1
                Spiin Answ(1) , 3


                Along = Answ(1)
                Shift Along , Left , 8
                Along = Along Or Answ(2)
                Shift Along , Left , 8
                Along = Along Or Answ(3)
                Lcd Along



                End



                معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                دیدگاه


                  #68
                  پاسخ : spi در بسکام

                  سلام دوست عزیز
                  درسته من هم منظورم این بود که برای تبدیل فقط به یه بار دستور start Converstion نیاز دارید
                  1- برای نمایش حتما دستورات خواندن اطلاعات و نمایش را درون حلقه قرار دهید
                  2- بعد از نوشتن دستور start Converstion حد اقل به مدت 1 پانیه تاخیر داشته باشید بعد اطلاعات را از رجیستر بخوانید

                  موفق باشید

                  دیدگاه


                    #69
                    پاسخ : spi در بسکام

                    استاد بهی می دونم خیلی کم وقت دارید و لی من واقعا دیونه شده این دائما مقدار صفر رو بر می گردونه دو تا سوال دارم
                    1- من به پایه شماره 9 حدود 400 میلی ولت دارم ولتاژ میدم باید با کودم دستور بخونم این رو
                    2- چرا این مقادریر هم قابل خواندن و هم قابل نوشتنه ؟؟؟؟؟؟ :eek: مثلا میشه ما روی مقدار ولتاژی که فعلا می خوایم بخونیمش که نتونستیم چیزی بنویسیم منطقی به نظر نمیاد ؟

                    در ضمن من از ارسال ولتاژ به پایه 9 و ارتباط مدار مطئن هستم چون هم فیزیکی تست کردم و هم نرم افزاری حداقل گرچه صفر دارم می خونم ولی بازم میشه مطمئن شد که ارتباط با میکرو بر قرارره حالا چی کار کنم به نظر شما کدام دستور ؟
                    معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                    دیدگاه


                      #70
                      پاسخ : spi در بسکام

                      ولتاژ پایه 9 نسبت به 10 حداکثر باید 250mV باشه (البته برای تست میتونید 10 رو زمین کنید)
                      اگر میخواهید از ارتباط مطمعن بشوید میتوانید از دستور Read Config استفاده کنید اونوقت باید مقدار غیر ازصفر بگیرید
                      در صورت صفر بودن اونوقت باید ارتباط رو دوباره چک کنید
                      به اسیلوسکوپ دسترسی دارید

                      دیدگاه


                        #71
                        پاسخ : spi در بسکام

                        استاد ممنونم فقط این چرا ایراد میگیره ؟؟؟


                        Dim a as integer
                        a= read config spi

                        معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                        دیدگاه


                          #72
                          پاسخ : spi در بسکام

                          هدفت از این دستور چیه؟
                          اگر میخوای تنظیمات SPI رو بخوانی در این صورت این دستور اشتباه است و این طوری نمیشه تنظیمات SPI رو خواند
                          در کل در Bascom بیشتر از یک دستور توی یک خط نمیشه نوشت
                          اگر میخواهی بیشتر از یک خط بنویسی باید بین دستورات علامت ; بگذاری

                          دیدگاه


                            #73
                            پاسخ : spi در بسکام

                            نوشته اصلی توسط behi88
                            ولتاژ پایه 9 نسبت به 10 حداکثر باید 250mV باشه (البته برای تست میتونید 10 رو زمین کنید)
                            اگر میخواهید از ارتباط مطمعن بشوید میتوانید از دستور Read Config استفاده کنید اونوقت باید مقدار غیر ازصفر بگیرید
                            در صورت صفر بودن اونوقت باید ارتباط رو دوباره چک کنید
                            به اسیلوسکوپ دسترسی دارید
                            استاد خودتون فرمودید از این دستور استفاده کنم . بله اسیلوسکوپ داریم
                            معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                            دیدگاه


                              #74
                              پاسخ : spi در بسکام

                              :smile:
                              ببخشید من بد گفتم
                              منظورم خواندن رجسیتر Config یا Status آی سی بود

                              دیدگاه


                                #75
                                پاسخ : spi در بسکام

                                خسته نباشید من این آی سی رو راه اندازی کردم ولی توی کالیبراسیون این آی سی مشکل دارم
                                اگر میشه درباره ی کالیبراسیون این آی سی توضیح بدید

                                دیدگاه

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