نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه

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

به نام خدا : با سلام؛ در این مطلب از سری مطالب آموزش پروژه محور 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 پروژه : http://www.aparat.com/v/knuB9

 
فیلم 2 پروژه : http://www.aparat.com/v/OvXkl

پسورد فایل های سایت :
www.dmf313.ir
ارسال دیدگاه
13

1) تعداد حروف فارسی از حروف غیر فارسی بیشتر باشه دیدگاه جفنگ/اسپم محسوب میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    ابوالفضل

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

    1397/04/19
    02:34
    • مدیر سایت

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

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

      1397/04/26
      08:51
  2. مهمان

    نسترن

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

    1396/12/25
    11:58
    • مهمان

      آرش

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

      1397/01/30
      11:22
  3. مهمان

    موسوی

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

    1396/12/21
    12:48
    • مدیر سایت

      مهدی دمرچیلو

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

      1396/12/21
      01:09
  4. مهمان

    میلاد

    سلام ممنون از آموزشات من یک کتابخونه نوشتم براش که 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;
    }

    1396/09/15
    04:57
  5. مهمان

    پری

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

    1396/07/05
    09:28
  6. مهمان

    کاظم قربانی

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

    1396/04/27
    11:21
  7. مهمان

    امیر

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

    1396/02/23
    09:48
    • مهمان

      آرش

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

      1396/02/28
      02:08
  8. مهمان

    aliakbar

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

    1396/02/22
    09:59
    • مدیر سایت

      مهدی دمرچیلو

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

      1396/02/22
      11:23