اطلاعیه

Collapse
No announcement yet.

میکروکنترلر با چند SPI

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

    میکروکنترلر با چند SPI

    سلام به همه

    میشه در میکروکنترلر چند spiبوجود اورد اگر میشه راهنمایی کنید

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

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

    دیدگاه


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

      البته اگر همزمان نمی خواهی استفاده کنی !
      chip select چیز خوبی هست
      هميشه به ياد خدا باش !

      دیدگاه


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

        متاسفانه هم زمان هست

        دیدگاه


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

          نوشته اصلی توسط بنیامین 20
          متاسفانه هم زمان هست
          سرعتشون چقدره؟
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه


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

            کریستال 16مگزدم

            دیدگاه


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

              نوشته اصلی توسط بنیامین 20
              کریستال 16مگزدم
              منظورم سرعت SPI بود ...
              توی مد مستر میخوای باشه یا اسلیو ؟؟
              اگر میخوای مستر باشه همون روشی که دوستمون گفتن خیلی خوبه ... چند پایه رو میگذارید برای پایه SS ...
              موفق باشید
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


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

                سلام
                ایده دوست تون در مورد SPI نرم افزاری خوب بود. فقط باید حواست باشه که SPI ات با کدوم مد کار می کنه
                منظورم Sycle Half هست یا MSB FIRST هست یا ...

                این یه نمونه کد ساده با SPI نرم افزاری هست

                [code=c]
                unsigned char SPI597(void)
                {
                unsigned int j,outvar;
                outvar=0;
                j=128;
                while(j>0)
                {
                CLK597=0;
                CLK597=1;
                if(SDI597) outvar|=j;

                j>>=1;
                }

                return(outvar);
                };
                [/code]
                برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
                http://hosseinwalkingday.com

                دیدگاه


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

                  دوستان این کد برای نوشتن در spiهستش ایا درسته کدش

                  [code=c]

                  void Soft_spi (unsigned int data)
                  {
                  int temp ;
                  int j ;
                  for(j=1;j<=16;j++)
                  {
                  PORTB.7 = 1 ;
                  delay_us(300);
                  temp = data & 0x8000 ;
                  if (temp == 0)
                  PORTB.5 = 0 ;
                  else
                  PORTB.5 = 1 ;
                  data = data << 1 ;
                  delay_us(300);
                  PORTB.7 = 0 ;
                  delay_us(600);
                  }
                  PORTB.5 = 0 ;
                  }
                  [/code]

                  دیدگاه


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

                    نوشته اصلی توسط بنیامین 20
                    دوستان این کد برای نوشتن در spiهستش ایا درسته کدش

                    [code=c]

                    void Soft_spi (unsigned int data)
                    {
                    int temp ;
                    int j ;
                    for(j=1;j<=16;j++)
                    {
                    PORTB.7 = 1 ;
                    delay_us(300);
                    temp = data & 0x8000 ;
                    if (temp == 0)
                    PORTB.5 = 0 ;
                    else
                    PORTB.5 = 1 ;
                    data = data << 1 ;
                    delay_us(300);
                    PORTB.7 = 0 ;
                    delay_us(600);
                    }
                    PORTB.5 = 0 ;
                    }
                    [/code]
                    چکار کردی ؟
                    SPI ، بیت بیت خونده می شه. شما حلقه For ات چرا 15 تایی هست ؟
                    نه دو بیت می شه نه یک بیت


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

                    [code=c]
                    void spi595(unsigned char inp)
                    {
                    unsigned char i=128;
                    while(i>0)
                    {
                    SDI595= (inp & i);
                    CLK595= 1;
                    CLK595= 0;
                    i>>=1;
                    }
                    }
                    [/code]
                    برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
                    http://hosseinwalkingday.com

                    دیدگاه

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