نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
آرش کلوند

پروژه راه اندازی spi میکروکنترلر lpc1768

368

به نام خدا : با سلام؛ در این مطلب از سری مطالب آموزش پروژه محور lpc1768 میخوام پروژه راه اندازی spi میکروکنترلر lpc1768 رو قرار بدم.

یـــا حــــســـیـــن

پروژه راه اندازی spi میکروکنترلر lpc1768


توضیح مختصر پروژه : در این پروژه در یک حلقه for اعداد از طریق spi از میکرو master به میکرو slave ارسال می گردد و میکرو slave آن را در lcd نمایش می دهد؛ شما با توجه به نیاز خود می توانید کاربری برنامه را تغییر دهید؛ نکته مهم در استفاده از رابط spi توجه به پایه SS می باشد یعنی اینکه در چه زمانی آن را low و در چه زمانی High کنید که به راحتی در برنامه قابل فهم هستش؛ ضمن اینکه یک روش استفاده از spi این است که به تعداد slave ها تعداد پایه SS اختصاص داده و آن ها را low و یا High کنید.

 

ارتباط میکرو avr با lpc1768 از طریق spi : در همین فایل یک برنامه میکرو avr در حالت master نیز ارایه شده است که می توان آن را به عنوان میکرو master به یک میکرو ARM به عنوان slave متصل کنید که در واقع یک ارتباط هم بین میکرو avr و ARM هم برقرار کرده باشید؛ طبق شماتیک درمیکرو mega16 پایه 5 به عنوان SS، پایه 6 به عنوان MOSI، پایه 7 به عنوان MISO و پایه 8 به عنوان sck قرار دارند؛ در برنامه avr به configure برنامه توجه کنید.

 

عکسی از پروژه در عمل :

پروژه راه اندازی spi میکروکنترلر lpc1768

 

شماتیک پروژه lpc1768 : کلیک کنید رو عکس و در اندازه اصلی ببینیدش…

پروژه lpc1768

 

کد پروژه ( lpc1768 در نقش master ) : 

 

کد پروژه ( lpc1768 در نقش slave ) : 

 

کد پروژه ( avr در نقش master ) : 

 

فیلم پروژه 1 :

2MB پروژه راه اندازی spi میکروکنترلر lpc1768 - پروژه 1
0%
00:00  /  00:12

 

فیلم پروژه 2 :

4.2MB پروژه راه اندازی spi میکروکنترلر lpc1768 - پروژه 2
0%
00:00  /  00:24

 

درباره : 
تعداد مطالب : 1 تا
بقیه جلسات :
این مطلب هیچ طبقه بندی یی ندارد!
ارسال دیدگاه
14
نظرات این مطلب بسته شده است.
  1. امیر

    مهمان

    امیر

    مدارتون رو با دو تا lpc1768 تست کردم و نتیجه داد.ممنون از اشتراک گذاری تون.

  2. ابوالفضل

    مهمان

    ابوالفضل

    سلام آقای دمرچیلو
    ضمن تشکر فراوان بابت مطالب عالیتون
    خواستم بپرسم چطوری میشه فرکانس ارتباطی ماژول + NRF24L01 را مشخص کرد؟ مثلا چنتا از این ماژول ها برای کارهای مختلف داریم و می خواهیم تداخل فرکانسی پیدا نکنن.ممنون می شوم راهنمایی بفرمایین

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      مدیر سایت

      مهدی دمیرچیلو

      سلام – قبلا فک کنم جوابتونو دادم – باید به کتابخونه ای که دارید ازش استفاده میکنید مراجعه کنید – احتمالا تابعی برای این کار داره.

  3. نسترن

    مهمان

    نسترن

    سلام و تشکر بابت برنامه
    میشه بگید کلاک میکرو avr و arm روی چه مقدار تنظیم کرد؟ اصلا میشه دو تا میکرو که کلاکشون متفاوت برا این برنامه استفاده کرد؟

    مشاهده پاسخ ها (1)
    • آرش

      مهمان

      آرش

      سلام ببخشید دیر جواب دادم.
      در مورد سوال اول تابع ( spi_init(voidرو بررسی کنید کامل گفته شده.
      سوال دوم:مشخصا نمیشه.این برنامه ضمن کارایی و قابلیت بسطی که داره جهت آموزش هستش.خودتون میتونید کلی بالا پایینش کنید.
      smile

  4. موسوی

    مهمان

    موسوی

    با تشکر از مطلب خوبتون. کد رو با Keil نوشتید؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      فک کنم نوسندش با کیل نوشته.چون شکل رجیستراش شبیه کیل هستش

  5. میلاد

    مهمان

    میلاد

    سلام ممنون از آموزشات من یک کتابخونه نوشتم براش که lpc1768 مستر و AVR اسلیو دیتا از اسلیو منتقل میشه ولی متسفانه عددی نمایش داده نمیشه ینی بافر خالی ارسال میشه
    void spi_init(unsigned char DATA_Length ,
    unsigned char MS/*0 –> Slave , 1–> Master*/ ,
    uint32_t SCK_freq/*2n >= 8*/ ,
    unsigned char SPI_Interrupt/*0–>disable 1–>enable*/,
    unsigned char LSB_first /*0–>MSB , 1–>LSB*/ )
    {
    LPC_SC->PCONP |= (1 <SPCCR = SCK_freq;
    LPC_SPI->SPCR |=(MS << _MSTR) |(0<<_BitEnable) |(0<<_CPHA) |(0<<_CPOL) |(LSB_first << _LSBF) |(SPI_Interrupt << _SPIE) | (DATA_Length <PINSEL0|=0xC0000000;//pin p0.15=sck
    LPC_PINCON->PINSEL1|=0x0000003F;//pin p0.16,p0.17,p0.18==SS,miso,mosi
    }
    unsigned char spi(unsigned char data)
    {
    char read;
    LPC_SPI->SPDR = data;
    while((LPC_SPI->SPCR & (1<SPSR &((1 << _MODF) |(1 << _ROVR) | (1 <SPDR;
    else read =0;
    return read;
    }

  6. پری

    مهمان

    پری

    شما کلا همه چی کار کردید!
    هرسوالی سرچ میکنم یه جواب اینجا داره
    البته خیلی هم مفید
    مچکر

  7. کاظم قربانی

    مهمان

    کاظم قربانی

    سلام دوستان خوبم
    سعی کنید از رابط spi
    برای راه اندازی سون سگمنت استفاده کنید و ای سی ۷۴۵۹۵
    بسیار سود خواهید کرد

  8. امیر

    مهمان

    امیر

    خسته نباشی رفیق ولی در این برنامه هیچکدام از اسلیوها انتخاب (select) نمیشن
    برای انتقال دیتا در یک سیستم مولتی اسلیو مثل این اول باید اسلیو مورد نظر انتخاب بشه بعد انتقال صورت بگیره … buba

    مشاهده پاسخ ها (1)
    • آرش

      مهمان

      آرش

      سلام
      این پروژه تک slaveهستش ضمن اینکه در خط زیر نحوه روش کار مشخصه…
      “ضمن اینکه یک روش استفاده از spi این است که به تعداد slave ها تعداد پایه SS اختصاص داده و آن ها را low و یا High کنید.”

  9. aliakbar

    مهمان

    aliakbar

    سلام با عرض خسته نباشید، می خواستم بدونم شما درباره راه اندازی کنترل کننده pid با زبان سی اطلاعاتی دارید؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      سلام – نه متاسفانه