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

پسوردتو فراموش کردی؟
Avatar

پروژه راه اندازی 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. Avatar

    مهمان

    ابوالفضل

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

    1397/04/19
    02:34
    • مهدی دمیرچیلو

      مدیر سایت

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

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

      1397/04/26
      08:51
  2. Avatar

    مهمان

    نسترن

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

    1396/12/25
    11:58
    • Avatar

      مهمان

      آرش

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

      1397/01/30
      11:22
  3. Avatar

    مهمان

    موسوی

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

    1396/12/21
    12:48
    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

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

      1396/12/21
      01:09
  4. Avatar

    مهمان

    میلاد

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

    مهمان

    پری

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

    1396/07/05
    09:28
  6. Avatar

    مهمان

    کاظم قربانی

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

    1396/04/27
    11:21
  7. Avatar

    مهمان

    امیر

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

    1396/02/23
    09:48
    • Avatar

      مهمان

      آرش

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

      1396/02/28
      02:08
  8. Avatar

    مهمان

    aliakbar

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

    1396/02/22
    09:59
    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

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

      1396/02/22
      11:23