اطلاعیه

Collapse
No announcement yet.

تغییر پین های spi

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

    تغییر پین های spi

    سلام . کسی میدونه تغییر پین های default پروتکل spi امکان پذیر هست؟ از ای سی 18f4550 استفاده کردم. ولی چون تو برنامه از real clock (ds1307 استفاده شده پایه های SDO , SDI اشغال شدن . الانم واسه اتصال به رم SD بهشون احتیاج دارن . نرم افزار برنامه نویسی ام MIKCRO C .

    #2
    پاسخ : تغییر پین های spi

    فقط پایه ی چیپ سلکت برای هر اسلیو فرق میکنه باقیه پایه ها مشترک هستند در بین اسلیو ها

    دیدگاه


      #3
      پاسخ : تغییر پین های spi

      نوشته اصلی توسط zahra-meh
      سلام . کسی میدونه تغییر پین های default پروتکل spi امکان پذیر هست؟ از ای سی 18f4550 استفاده کردم. ولی چون تو برنامه از real clock (ds1307 استفاده شده پایه های SDO , SDI اشغال شدن . الانم واسه اتصال به رم SD بهشون احتیاج دارن . نرم افزار برنامه نویسی ام MIKCRO C .
      2 حالت ممکن هستش یکی اینکه می تونی از طریق spi با چند تا اسلیو ارتباط برقرار کنی اما زمانی که با یکی در حال ارتباطی با دیگری نمی تونی کار کنی باید واستی تا کارت با اون تموم شه حالت دوم استفاده از یک spi جدا هست که این هم 2 تا حالت داره یا میکرو یم spi داره یا 2 تا اگه سخت افزاری 2 تا داره که بعدی رو هم استفاده می کنی اگه نداره به راحتی می تونی هر پایه که خواستی انتخاب کنی و نرم افزاری spi بسازی بسیار هم سادست من به کررات این کار رو انجام دادم بعضا اصلا از spi استفاده نکردم حتی فقط نرم افزاری انجام دادم
      التماس دعا

      دیدگاه


        #4
        پاسخ : تغییر پین های spi

        ممنون ولی من یه نگاه به دیتا شیت انداختم چون پورت سریال هم استفاده کردم پایه RC7/RX/DT/SDO هم با SDO تداخل پیدا میکنه و از اونجایی که پروتکل هر دو شون زمین تا اسمون فرق داره میکرو میتونه به خوبی کار کنه؟

        دیدگاه


          #5
          پاسخ : تغییر پین های spi

          اگه spi نرم افزاری بخواید که پایه ها فرقی نداره اما در مورد سخت افزاری sck miso mosi مهم هستند ولی پایه select رو می تونید از پایه ها دیگه هم به جز استفاده گنید اما اگه ازون پایه دیگه استفاده درستی نمی شه کرد چون هر دفعه بخواید از spi استفاده کنید low و بعد از تموم شدن high می شه
          پس اگه می خواید از یک spi واسه 2 تا چیز به صورت مجزا استفاده کنید 2 تا پایه دیگه رو خودتون به هرکدوم وصل کنید پورت مربوط به هرکدوم رو 0 کنین به spi چیزی بفرستین اون دریافت می کنه
          التماس دعا

          دیدگاه


            #6
            پاسخ : تغییر پین های spi

            یه حقه زدم به کمپایلر فعلا که ارور نداد ولی بازم باید چک کنم ببینم واقعا کار میکنه :
            Mmc_Chip_Select as sbit at LATC0_bit; ' for writing to output pin always use latch (PIC18 family)
            Mmc_Chip_Select_Direction as sbit at TRISC0_bit ;
            mmc_clk as sbit at latc1_bit;
            mmc_clk_direction as sbit at trisc1_bit;
            mmc_sdi as sbit at latc2_bit;
            mmc_sdi_direction as sbit at trisc2_bit;
            mmc_sdo as sbit at latc3_bit;
            mmc_sdo_direction as sbit at trisc3_bit;
            ادرس پایه هایمربوط به رم میکرو رو تغییر دادم ایشالله ج میده

            دیدگاه


              #7
              پاسخ : تغییر پین های spi

              اینم نگرفت. چیکار کنم؟

              دیدگاه


                #8
                پاسخ : تغییر پین های spi

                از spi نرم افزاری استفاده کنید
                التماس دعا

                دیدگاه


                  #9
                  پاسخ : تغییر پین های spi

                  شما نمونه کد اش رو دارین؟ مثالی ازش پیدا نکردم. البته میشه یه کار دیگه هم انجام داد یعنی ارتباط max232 و ds1307 رو با بصورت نرم افزاری انجام بدم که بشه پین هاش رو تغییر داد. من ds1307 رو انجام دادم از کتابخانه soft_ii2c بجای i2c1_read or write استفاده کردم و لی تو ارتباط max232 کتابخانه نرم افزاری اش اطلاعات رو بصورت رشته ارسال نمیکنه بصورت بایتی ارسال میکنه این به درد من نمیخوره راهی واسه حلش نیست؟

                  دیدگاه


                    #10
                    پاسخ : تغییر پین های spi

                    کد avr اش رو دارم خودم نوشتم تابعش رو به زبان c فقط باید تعریف پورت هاش رو عوض کنید اگه تمایل دارید قرار بدم
                    متوجه نشدم دقیقا چیکار کردید من از مدار شما که کامل اطلاع ندارم اما i2c باس هستش و نمی شه به جای spi استفاده کرد
                    التماس دعا

                    دیدگاه


                      #11
                      پاسخ : تغییر پین های spi

                      ممنون میشم بزارین

                      دیدگاه


                        #12
                        پاسخ : تغییر پین های spi

                        #define select PORTC.2
                        #define SDA PORTC.4
                        #define SCL PORTC.5


                        void sendData(char Data){
                        char k;
                        select=1;
                        for(k=0;k<8;k++){
                        SDA=Data&0x80;
                        Data=Data<<1;
                        SCL=0;
                        SCL=1;
                        }
                        select =0;
                        }

                        اضافه شده در تاریخ :
                        توضیح نیاز دارید؟
                        التماس دعا

                        دیدگاه


                          #13
                          پاسخ : تغییر پین های spi

                          اره مثلا قبل از ارسال داده چه مقداری باید به رم ارسال بشه.( من فقط میخوام ذخیره کنم دنبال خواندن اطلاعات نیستم). داده به چه صورت به رم ارسال میشه؟ رشته یا بایت یا ورد؟ البته خیلی زحمت میشه واستون

                          دیدگاه


                            #14
                            پاسخ : تغییر پین های spi

                            این تابعی که من نوشتم ورودیش کاراکتر هست
                            فقط به دیفاین های اون بالا توجه کنید و برای میکرو خودتون مناسب تعریف کنید
                            اگه با ساختار spi اشنا باشید خیلی پروتکل ساده ایی هستش
                            در ضمن این تابع فقط برای ارسال هست من این رو برای جای دیگه نوشته بودم
                            التماس دعا

                            دیدگاه


                              #15
                              پاسخ : تغییر پین های spi

                              میشه یه بار توضیح بدین این کدها رو؟

                              دیدگاه

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