اطلاعیه

Collapse
No announcement yet.

کتابخانه Flash-FS برای LPC

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

    #61
    پاسخ : کتابخانه Flash-FS برای LPC

    مشکل حل شد باید 2 تا فایل دیگه هم Add می کردم
    I'm Very Question and I have more Question,Please Answer All of my Questions


    [img width=156 height=100]http://uploadtak.com/images/u3536_555_Timer_as_Astable.gif[/img]

    دیدگاه


      #62
      پاسخ : کتابخانه Flash-FS برای LPC

      سلام
      این کتابخانه هایی که پلود میکنم فکر کنم برای برد اموزشی جدید تطابق داده شده اند!
      اخه توی برد اموزشی پایه insert به میکرو و پایه ی کناریش به منفی وصل نشد است!
      این هدر هایم پایه ای برای check media ندارند!

      http://www.4shared.com/rar/UOoaDa-r/Flash-FS_new.html
      لطف کنید یه نگاهی بندازید!
      [glow=red,2,300]برنامه های آموزشی تست شده برای NXP LPC1768 با توابع CMSIS[/glow]
      http://www.eca.ir/forum2/index.php?topic=76623.0

      دیدگاه


        #63
        پاسخ : کتابخانه Flash-FS برای LPC

        من میخوام مموری رو به این پایه ها وصل کنم






        برنامه رو اینجوری تغییر دادم ولی کار نمیکنه
        دلیل چی هست ؟؟


        /*----------------------------------------------------------------------------
        * 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.
        *---------------------------------------------------------------------------*/

        #include <File_Config.h>
        #include <LPC17xx.H> /* LPC17xx Definitions */

        /*----------------------------------------------------------------------------
        SPI Driver instance definition
        spi0_drv: First SPI driver
        spi1_drv: Second SPI driver
        *---------------------------------------------------------------------------*/

        #define __DRV_ID spi0_drv
        #define __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. */
        #define TFE 0x01
        #define TNF 0x02
        #define RNE 0x04
        #define RFF 0x08
        #define 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); /* P1.21 is output */
        LPC_GPIO1->FIOPIN |= (1<<21); /* set P1.21 high (SSEL inact.)*/
        LPC_PINCON->PINSEL3 &= ~(0<<10); /* P1.21 SSEL (used as GPIO) */

        /* P3.26 is SD Card Power Supply Enable Pin */
        // LPC_GPIO3->FIODIR |= (1<<26); /* P3.26 is output */
        // LPC_GPIO3->FIOPIN &= ~(1<<26); /* set P3.26 low(enable power) */

        /* SCK, MISO, MOSI are SSP pins. */
        LPC_PINCON->PINSEL3 &= ~(3UL<<8); /* P1.20 cleared */
        LPC_PINCON->PINSEL3 |= (3UL<<8); /* P1.20 SCK0 */
        LPC_PINCON->PINSEL3 &= ~((3<<14) | (3<<16)); /* P1.23, P1.24 cleared */
        LPC_PINCON->PINSEL3 |= ((3<<14) | (3<<16)); /* P1.23 MISO0, P1.24 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_GPIO1->FIODIR &= ~(1<<21); /* P0.16 is input */
        LPC_PINCON->PINSEL3 &= ~(3<<0); /* P0.16 SSEL (used as GPIO) */

        LPC_PINCON->PINSEL3 &= ~(3UL<<30); /* P0.15 GPIO port 0.15 */
        LPC_PINCON->PINSEL3 &= ~((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<<2;
        }
        return (__TRUE);
        }


        /*--------------------------- CheckMedia ------------------------------------*/

        static U32 CheckMedia (void) {
        /* Read CardDetect and WriteProtect SD card socket pins. */
        U32 stat = 0;

        if (!(LPC_GPIO3->FIOPIN & (1 << 25))) {
        /* Card is inserted (CD=0). */
        stat |= M_INSERTED;

        }
        #if 0
        if ((LPC_GPIO3->FIOPIN & (1 << 25))) {
        /* Write Protect switch is active (WP=1). */
        stat |= M_PROTECTED;
        }
        #endif
        return (stat);
        }

        /*----------------------------------------------------------------------------
        * end of file
        *---------------------------------------------------------------------------*/

        دیدگاه


          #64
          پاسخ : کتابخانه Flash-FS برای LPC

          سلام
          من میخوام یه MP3 PLAYER بسازم.هرچی با مثال های USB ور میرم نمیتونم کاری کنم.یه هفته س که دارم روش کار میکنم.کسی میتونه کمکم کنه؟

          دیدگاه


            #65
            پاسخ : کتابخانه Flash-FS برای LPC


            با سلام به همه
            کسی با Nand flash , RL Flash کار کرده؟
            اگه کار کرین لطفا تجربیاتتون رو بگید.
            ممنون

            دیدگاه


              #66
              پاسخ : کتابخانه Flash-FS برای LPC

              سلام
              یک سوال درباره دستور fread داشتم
              من تونستم با استفاده از این دستور اطلاعات یک فایل رو بخونم ولی به صورت سکتور به سکتور یعنی فرض کنید میخوام سکتور پنجم از mmc رو بخونم . برای این کار پنج بار باید دستور (fread (buf, 1, 512, fin را اجرا کنم که باعث افت سرعت میشه . سوالم ایجا ست که به روشی میشه با یک بار اجرای دستور ، مثلا 512 بایت از یک فایل گرفت ؟ حالا این 512 بایت ممکن در آدرس مثلن 50000 ام فایلمون باشه

              دیدگاه


                #67
                پاسخ : کتابخانه Flash-FS برای LPC

                سلام.
                یعنی شما میخاهی از مثلا وسطای فایل بخونی؟

                اگه هدف اینه با دستور fseek میتونید پوینتر رو به مکان دلخواه منتقل کنید.
                و سپس با دستور fread از فایل بخونید.
                تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                دیدگاه


                  #68
                  پاسخ : کتابخانه Flash-FS برای LPC

                  یک سوال دیگه هم گوشه ذهن من رو درگیر کرده و اون اینه که مثلا برای همین 1768 اگر sd رو به SSP1 وصل کنیم چطور باید به این کتابخونه بفهمونیم که این به SSP1 وصله نه SSP0 ؟

                  دیدگاه


                    #69
                    پاسخ : کتابخانه Flash-FS برای LPC

                    نوشته اصلی توسط محمد جواد بابایی
                    یک سوال دیگه هم گوشه ذهن من رو درگیر کرده و اون اینه که مثلا برای همین 1768 اگر sd رو به SSP1 وصل کنیم چطور باید به این کتابخونه بفهمونیم که این به SSP1 وصله نه SSP0 ؟
                    سلام.
                    خب باید تغیراتی در SPI_LPC17xx.c بدید.
                    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                    دیدگاه


                      #70
                      پاسخ : کتابخانه Flash-FS برای LPC

                      سلام
                      ممنون از آموزش خوبتون :applause:
                      من باید مموری رو طبق عکس تغییر بدم
                      http://www.8pic.ir/images/42472100043307343408.jpg
                      طبق گفته آقا مهدی در فایل spi_lpc17x تغیر میدم اما جوابی نمیگیرم
                      درباره پایه p429 هم نگرفتم باید چیکارش کنم؟کدوم پایه مموری میشه

                      دیدگاه


                        #71
                        پاسخ : کتابخانه Flash-FS برای LPC

                        شما هنوز دارید از spi0 استفاده می کنید. بنابرین فقط باید رجیسترهای pinsel رو تغییر بدید
                        برای p4.29 هم که شما از p3.25 استفاده کردید باید تابع checkmedia رو تغییر بدید

                        دیدگاه


                          #72
                          پاسخ : کتابخانه Flash-FS برای LPC

                          اگر دوست دارید از checkmedia استفاده نکنید:

                          کد:
                          static U32 CheckMedia (void) {
                          /* Read CardDetect and WriteProtect card socket pins. */
                          return (M_INSERTED);
                          }
                          [glow=red,2,300]برنامه های آموزشی تست شده برای NXP LPC1768 با توابع CMSIS[/glow]
                          http://www.eca.ir/forum2/index.php?topic=76623.0

                          دیدگاه


                            #73
                            پاسخ : کتابخانه Flash-FS برای LPC

                            من درست نمی بینم یا LPC واقعا واحد FSMC و SDIO نداره!
                            مهدی جان،
                            می دونی ST من هم SDIO و هم FSMC داره که راحت میشه باهاش تقریبا همه حافظه ها رو متصل کرد؟! :twisted:

                            این از اون مواردیه که اگه خواستی می تونی بیای عشقش بشی! :biggrin:

                            دیدگاه


                              #74
                              پاسخ : کتابخانه Flash-FS برای LPC

                              نوشته اصلی توسط Rohalamin
                              من درست نمی بینم یا LPC واقعا واحد FSMC و SDIO نداره!
                              مهدی جان،
                              می دونی ST من هم SDIO و هم FSMC داره که راحت میشه باهاش تقریبا همه حافظه ها رو متصل کرد؟! :twisted:

                              این از اون مواردیه که اگه خواستی می تونی بیای عشقش بشی! :biggrin:
                              چرا داره.
                              از جمله ی رفتگان این راه دراز
                              باز آمده ای کو که به ما گوید راز
                              هان بر سر این دو راهه از روی نیاز
                              چیزی نگذاری که نمی آیی باز

                              دیدگاه


                                #75
                                پاسخ : کتابخانه Flash-FS برای LPC

                                نوشته اصلی توسط mori64
                                چرا داره.
                                ولی توی یوزر مانوال 17XX که نبود!
                                من فقط واسه LPC2368 دیدم اونم فقط SDIO !

                                دیدگاه

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