ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2016/01/14
    1
    0

    نشناختن SD card با lpc1768

    سلام
    من مموری رو با lpc 1788 در مد native با استفاده از کتابخانه RL کیل راه انداختم و بدون هیچ مشکلی کار کرد.
    حالا میخوام مموری رو با lpc 1768 راه بندازم، من فایل config.c رو مطابق با سخت افزار خودم تنظیم میکنم برنامه بدون هیچ اروری کامپایل میشه ولی زمانی که برنامه رو اجرا میکنم مموری نمیشناسه(یعنی تابع finit یک رو بر میگردونه ). سخت افزار رو هم چک کردم اتصالات هم درست وصل شدن.
    من مموری هم به این شکل به میکرو وصل کردم
    p1.20(sck0)------->clk
    p1.23(miso)------>data0(do) i
    p1.24(mosi)------>cmd(di) i
    p1.21(ssel)------>data3(cs)

    این فایل config.c :

    کد:
    /*----------------------------------------------------------------------------
     *      RL-ARM - FlashFS
     *----------------------------------------------------------------------------
     *      Name:    SPI_LPC17xx.c
     *      Purpose: Serial Peripheral Interface Driver for NXP LPC17xx
     *      Rev.:    V4.20
     *----------------------------------------------------------------------------
     *      This code is part of the RealView Run-Time Library.
     *      Copyright (c) 2004-2011 KEIL - An ARM Company. All rights reserved.
    <div style="text-align: center"></div> *---------------------------------------------------------------------------*/

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <File_Config.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <LPC17xx.H> /* LPC17xx Definitions */ /*---------------------------------------------------------------------------- SPI Driver instance definition spi0_drv: First SPI driver spi1_drv: Second SPI driver *---------------------------------------------------------------------------*/

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    __DRV_ID spi0_drv

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    __PCLK 100000000 /* SPI Driver Interface functions */ static BOOL Init (void); static BOOL UnInit (void); static U8 Send (U8 outb); static BOOL SendBuf (U8 *buf, U32 sz); static BOOL RecBuf (U8 *buf, U32 sz); static BOOL BusSpeed (U32 kbaud); static BOOL SetSS (U32 ss); static U32 CheckMedia (void); /* Optional function for SD card check */ /* SPI Device Driver Control Block */ SPI_DRV __DRV_ID = { Init, UnInit, Send, SendBuf, RecBuf, BusSpeed, SetSS, CheckMedia /* Can be NULL if not existing */ }; /* SSPxSR - bit definitions. */

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    TFE 0x01

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    TNF 0x02

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    RNE 0x04

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    RFF 0x08

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    BSY 0x10 /*--------------------------- Init ------------------------------------------*/ static BOOL Init (void) { /* Initialize and enable the SSP Interface module. */ LPC_SC->PCONP |= (1 << 21); /* Enable power to SSPI0 block */ /* SSEL is GPIO, output set to high. */ LPC_GPIO1->FIODIR |= (1<<21); /* P0.16 is output */ LPC_GPIO1->FIOPIN |= (1<<21); /* set P0.16 high (SSEL inact.)*/ LPC_PINCON->PINSEL3 &= ~(0<<10); /* P0.16 SSEL (used as GPIO) */ /* SCK, MISO, MOSI are SSP pins. */ LPC_PINCON->PINSEL3 &= ~(3UL<<8); /* P0.15 cleared */ LPC_PINCON->PINSEL3 |= (3UL<<8); /* P0.15 SCK0 */ LPC_PINCON->PINSEL3 &= ~((3<<14) | (3<<16)); /* P0.17, P0.18 cleared */ LPC_PINCON->PINSEL3 |= ((3<<14) | (3<<16)); /* P0.17 MISO0, P0.18 MOSI0 */ LPC_SC->PCLKSEL1 &= ~(3<<10); /* PCLKSP0 = CCLK/4 ( 25MHz) */ LPC_SC->PCLKSEL1 |= (1<<10); /* PCLKSP0 = CCLK (100MHz) */ LPC_SSP0->CPSR = 250; /* 100MHz / 250 = 400kBit */ /* maximum of 18MHz is possible*/ LPC_SSP0->CR0 = 0x0007; /* 8Bit, CPOL=0, CPHA=0 */ LPC_SSP0->CR1 = 0x0002; /* SSP0 enable, master */ return (__TRUE); } /*--------------------------- UnInit ----------------------------------------*/ static BOOL UnInit (void) { /* Return SSP interface to default state. */ LPC_GPIO0->FIODIR &= ~(1<<16); /* P0.16 is input */ LPC_PINCON->PINSEL1 &= ~(3<<0); /* P0.16 SSEL (used as GPIO) */ LPC_PINCON->PINSEL0 &= ~(3UL<<30); /* P0.15 GPIO port 0.15 */ LPC_PINCON->PINSEL1 &= ~((3<<2) | (3<<4)); /* P0.17 and P0.18 GPIO */ LPC_SC->PCLKSEL1 &= ~(3<<10); /* PCLKSP0 = CCLK/4 ( 25MHz) */ LPC_SSP0->CPSR &= ~0xFF; LPC_SSP0->CR0 &= ~0xFFFF; LPC_SSP0->CR1 &= ~0x0F; return (__TRUE); } /*--------------------------- Send ------------------------------------------*/ static U8 Send (U8 outb) { /* Write and Read a byte on SPI interface. */ LPC_SSP0->DR = outb; while (LPC_SSP0->SR & BSY); /* Wait for transfer to finish */ return (LPC_SSP0->DR); /* Return received value */ } /*--------------------------- SendBuf ---------------------------------------*/ static BOOL SendBuf (U8 *buf, U32 sz) { /* Send buffer to SPI interface. */ U32 i; for (i = 0; i < sz; i++) { LPC_SSP0->DR = buf[i]; /* Wait if Tx FIFO is full. */ while (!(LPC_SSP0->SR & TNF)); LPC_SSP0->DR; } /* Wait until Tx finished, drain Rx FIFO. */ while (LPC_SSP0->SR & (BSY | RNE)) { LPC_SSP0->DR; } return (__TRUE); } /*--------------------------- RecBuf ----------------------------------------*/ static BOOL RecBuf (U8 *buf, U32 sz) { /* Receive SPI data to buffer. */ U32 i; for (i = 0; i < sz; i++) { LPC_SSP0->DR = 0xFF; /* Wait while Rx FIFO is empty. */ while (!(LPC_SSP0->SR & RNE)); buf[i] = LPC_SSP0->DR; } return (__TRUE); } /*--------------------------- BusSpeed --------------------------------------*/ static BOOL BusSpeed (U32 kbaud) { /* Set an SPI clock to required baud rate. */ U32 div; div = (__PCLK/1000 + kbaud - 1) / kbaud; if (div == 0) div = 0x02; if (div & 1) div++; if (div > 0xFE) div = 0xFE; LPC_SSP0->CPSR = div; return (__TRUE); } /*--------------------------- SetSS -----------------------------------------*/ static BOOL SetSS (U32 ss) { /* Enable/Disable SPI Chip Select (drive it high or low). */ if (ss) { /* SSEL is GPIO, output set to high. */ LPC_GPIO1->FIOSET = 1<<21; } else { /* SSEL is GPIO, output set to low. */ LPC_GPIO1->FIOCLR = 1<<21; } return (__TRUE); } /*--------------------------- CheckMedia ------------------------------------*/ static U32 CheckMedia (void) { /* Read CardDetect and WriteProtect SD card socket pins. */ U32 stat = 0; if (!(LPC_GPIO4->FIOPIN & (1 << 29))) { /* Card is inserted (CD=0). */ stat |= M_INSERTED; }

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    0 if ((LPC_GPIO4->FIOPIN & (1 << 29))) { /* Write Protect switch is active (WP=1). */ stat |= M_PROTECTED; }

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    return (stat); } /*---------------------------------------------------------------------------- * end of file *---------------------------------------------------------------------------*/
    اینم فایل main :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    "LPC17xx.h"

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    "RTL.h" int main(void) { unsigned int r; LPC_GPIO0->FIODIR = 0xFF; LPC_GPIO0->FIOSET = 0xFF; while(1) { r = finit(NULL); if(r == 0) LPC_GPIO0->FIOCLR = 0xFF; } }

    دوستان اگه ممکنه یه راهنمایی کنید که اشتباه من کجاست که برنامه کار نمی کنه

    ویرایش توسط اشکان غفارزاده : 2017/06/21 در ساعت 17:21
  2. #2
    2016/06/21
    298
    85

    پاسخ : نشناختن SD card با lpc1768

    سلام دوست عزیز
    من هم با این مشکل مواجه شدم در فایل
    File_Config قسمتی هست زمانی که مموری توی سوکت می گذارید به میکرو می فهمونه که کارت وارد شده شما احتمالا باپه مربوط به این کار تعریف نکردید .شما می تونید با دستکار هدر مربوطه اونه غیر فعال کنید یا پایه برای این براش معرفی کنید

    برای غیر فعال کردنش می تونید تابع مربوطه تغییر بدید
    کد:
    /*--------------------------- CheckMedia ------------------------------------*/
    
    static U32 CheckMedia (void) {
     
     
      /* Card is inserted (CD=0). */
        stat |= M_INSERTED;
      
      return (stat);
    }
    
    /*----------------------------------------------------------------------------

نمایش نتایج: از 1 به 2 از 2

موضوعات مشابه

  1. دلیل نشناختن FLASH USB در LPC1768
    توسط aliadel20 در انجمن NXP
    پاسخ: 0
    آخرين نوشته: 2017/01/18, 14:50
  2. دیاگرام مداری slot sd card & slot micro sd card
    توسط kemiagartavana در انجمن مدارهای مجتمع خطی
    پاسخ: 0
    آخرين نوشته: 2016/05/11, 14:01
  3. نشناختن برد mega2560
    توسط jafar2000 در انجمن خانواده Arduino
    پاسخ: 0
    آخرين نوشته: 2015/09/10, 00:47
  4. نشناختن atmega8L
    توسط 603 در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2013/12/20, 12:42
  5. مشکل نشناختن mp3 player
    توسط 81137037 در انجمن سخت افزار کامپیوتر
    پاسخ: 1
    آخرين نوشته: 2006/09/12, 12:59

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •