اطلاعیه

Collapse
No announcement yet.

مشکل با spi

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

    مشکل با spi

    سلام به همه مهندسین عزیز
    من میخام که spi رو با at91sam7s64 راه بندازم برنامه زیر رو نوشتم اما وقتی برنامرو پروگرم می کنم با اسکوپ سیگنال پایه PA13 یا PA14 (که میشه MOSI و SPCK) رو میگیرم هیچی نمیبینم
    تو شبیه ساز keil هم چیزی نشون نمیده آخه چه طوری باید برناممو تست کنم.

    وقتی تو شبیه ساز keil رجیستر وضعیت رو می بینم بیت فعال بودن spi صفره یعنی فعال نیست در صورتی که از دستور ;AT91C_SPI_CR=0x1* استفاده می کنم.
    برناممو پایین گذاشتم.

    #2
    پاسخ : مشکل با spi

    #include <at91sam7s64.h>
    #include <delay.h>

    #define NPCS0 (1<<11)
    #define MISO (1<<12)
    #define MOSI (1<<13)
    #define SPCK (1<<14)
    void main(){
    int control_byte;

    //spi clock enable
    *AT91C_PMC_PCER|=AT91C_ID_SPI; // AT91C_ID_SPI=(1<<5)
    //configuring spi pins
    *AT91C_PIOA_PDR=(NPCS0|MISO|MOSI|SPCK);
    *AT91C_PIOA_MDER=(NPCS0|MISO|MOSI|SPCK);
    *AT91C_PIOA_ASR=(NPCS0|MISO|MOSI|SPCK);
    *AT91C_PIOA_PPUER=(NPCS0|MISO|MOSI|SPCK);

    //spi setting
    *AT91C_SPI_MR=0xf000091; // m/s mode,ps=0:1 device,pcsdec=0:4cs line,fdiv=1:mck/n,modfds=0:enalbe,pcs=1110:cs0 is active
    AT91C_BASE_SPI->SPI_CSR[0]=0x0f0f9041;

    // enable spi0
    *AT91C_SPI_CR=0x1;

    while(1){
    control_byte=0x97;
    while ((AT91C_BASE_SPI->SPI_SR&AT91C_SPI_TXEMPTY)==0);
    AT91C_BASE_SPI->SPI_TDR=control_byte;
    while ((AT91C_BASE_SPI->SPI_SR&AT91C_SPI_TDRE)==0);
    }
    }

    دیدگاه


      #3
      پاسخ : مشکل با spi

      سلام
      شما بیت شماره 7 رجیستر SPI_MR را فعال کردید.(یک کردید) و با یک کردن این بیت حلقه فیدبک داخلی فعال شده است و از داخل MISO به MOSI وصل است به نظرم به خاطر همین مد تست بر روی پایه های مورد نظر هیچ کلاکی مشاهده نمی شود بهتر است این بین را صفر تنظیم کنید و تست کنید و به احتمال زیاد مشکل حل می شود.

      دیدگاه


        #4
        پاسخ : مشکل با spi

        ممنون از پاسختون
        من هم با صفر و هم با یک امتحان کردم جواب نمیده
        تو خروجی هیچی نداریم.
        من بین master و slave هیچ ارتباطی برقرار نکردم و الان دارم تو شبیه ساز keil سیگنال پایه های miso و mosi رو می بینم که صفره آیا حتما باید ارتباط master و slave برقرار باشه تا من سیگنال ببینم؟؟؟؟
        وقتی تو شبیه ساز keil رجیستر وضعیت رو هم میبینم بیت SPIENS صفره در صورتی که من SPI_CR رو یک کردم.SPI_CR=0x1

        دیدگاه


          #5
          پاسخ : مشکل با spi

          سلام دوستان
          من تازه دارم با spi کار میکنم .میخوام یه برنامه بنویسم که دوتا میکرو باهم ارتباط داشته باشن.برنامه شو تا حدودی بلدم/ ولی توی تنظیمات اولیه توی codewizard مشکل دارم .سوالم اینه که باید دوبار برنامه بنویسم و دوبار تنظیمات رو انجام بدم.یه بار برای slave یه بارهم برای master ؟
          برای هر میکرو یه بار فایلامو ذخیره کنم؟
          ممنون میشم اگه راهنماییم کنید.

          دیدگاه


            #6
            پاسخ : مشکل با spi

            سلام خدمت دوستان
            فعال کردن کلاک spi به نضرم اشباه شده
            اینطوری نوشتی :eek:
            AT91C_PMC_PCER|=AT91C_ID_SPI;
            در حالی که باید اینطور بنویسی :agree:
            *AT91C_PMC_PCER=(1<<AT91C_ID_SPI);
            موفق باشی :nice:
            برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

            دیدگاه


              #7
              پاسخ : مشکل با spi

              به منم کمک کنید که 2 تا وسیله رو با این پروتکل راه بندازم :cry:
              :angry: :angry:
              برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

              دیدگاه


                #8
                پاسخ : مشکل با spi

                نمیدونم چرا هرچی سوال میکنم هیچکس جواب نمیده :cry2:

                من میخوام یه برنامه بنویسم که ازطریق spi دوتا میکرو باهم ارتباط داشته باشن.میخوام وقتی کلید میکروی اول رو میزنیم یه led روی میکروی دومی روشن بشه البته برنامشو نوشتم ولی جواب نمیده :sad:
                میخوام بدونم از بین دوستان کسی هست که همچین برنامه ای رو نوشته باشه یا حداقل تا حدودی بلد باشه .من تازه دارم میکرو میخونم لطفا کمک کنید.
                به زبان c اگه باشه ممنون میشم

                دیدگاه


                  #9
                  پاسخ : مشکل با spi

                  نوشته اصلی توسط r-a
                  سلام دوستان
                  من تازه دارم با spi کار میکنم .میخوام یه برنامه بنویسم که دوتا میکرو باهم ارتباط داشته باشن.برنامه شو تا حدودی بلدم/ ولی توی تنظیمات اولیه توی codewizard مشکل دارم .سوالم اینه که باید دوبار برنامه بنویسم و دوبار تنظیمات رو انجام بدم.یه بار برای slave یه بارهم برای master ؟
                  برای هر میکرو یه بار فایلامو ذخیره کنم؟
                  ممنون میشم اگه راهنماییم کنید.
                  دوست عزیز چرا تو قسمت avr مطرح نمیکنی؟
                  اونجا سریع جواب میدن
                  البته بایستی که 2 تا برنامه بنویسی همون طور که گفتی یکی برای master و یکی هم برای slave
                  برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

                  دیدگاه

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