اطلاعیه

Collapse
No announcement yet.

کسی هست که تا به حال با compact flash برای اتصال به cpld یا fpga کار کرده باشه ؟

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

    کسی هست که تا به حال با compact flash برای اتصال به cpld یا fpga کار کرده باشه ؟

    سلام
    کسی هست که تا به حال با compact flash برای اتصال به cpld یا fpga کار کرده باشه ؟
    تا اونجایی که من دیدم از سرعت 6 مگابایت بر ثانیه شروع میشه وتا 1000x که تقریبا 140 مگا بایت بر ثانیه است تولید میکنن -
    که تو خیلی از مدارات fpga که سرعت بالایی برای ذخیره وخوندن اطلاعات نیازه گزینه مناسبیه


    حالا به غیر از مساله compact flash میخواستم دو تا از cpld هایی که استفاده کردم و قیمت مناسبی داشتن همچنین ظرفیت گیت بالایی دارن رو معرفی کنم
    شاید بدردتون بخوره --
    EPM570T100C5
    570 ماکروسل - maxII
    EPM1270T144C5
    1270ماکروسل - maxII

    #2
    پاسخ : کسی هست که تا به حال با compact flash برای اتصال به cpld یا fpga کار کرده باشه ؟

    cf اگه برا کانفیگ fpga به جا پروم میخوای که من دیدم xilinx یه چیپ واسط براش داره

    ولی برا ذخیره دیتا اگه نخوای fat روش پیاده کنی به نظر کار سختی نمیاد ... من یه همچین پروژه ای دستمه (البته تقریبا خوابیده ! ) ولی دیتاشیت cf کارتا رو ببینی میفمی کار سختی نیس ، تعداد دستورات تو مد مموری خیلی کمه . البته اگه core برا IDE هم داشته باشی که فک کنم خیلی راحت تو این مد پیاده بشه
    پشت به کنکور ، رو به سربازی...

    دیدگاه


      #3
      پاسخ : کسی هست که تا به حال با compact flash برای اتصال به cpld یا fpga کار کرده باشه ؟

      سلام
      ممنون از راهنماییت فقط یه سوال دارم این رو مثل sram میشه راه اندازی کرد - چون چند تا پایه اضافه دیگه ای داره که دقیقا نمیدونم چطوری از اون ها استفاده کنم
      :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

      دیدگاه


        #4
        پاسخ : کسی هست که تا به حال با compact flash برای اتصال به cpld یا fpga کار کرده باشه ؟

        نمیدونم منظورت دییقا چیه ولی cfو (تا اونجا که من فمیدم) تو 3 تا مد بیشه راهندازی کرد یکیش مد مموریه یکیشم ide بود ... تو مد مموری میتونی سکتور سکتور بخونی یا بنویسی کلا هم 8 تا رجیستر بیشتر نداره (غیر از دیتا ها) که به کمک اینا میتونی کل حافظه رو آدرس دهی کنی و بخونی یا بنویسی ...
        اینا رو بخون
        کد:
        Note that the disk structure form of usage requires data be stored in...
        discrete chunks -- 512 bytes per sector in this case.
        There is also a "Memory Mapped" mode available, wherein one can
        address the card as a large linear memory. This mode is much simpler to use
        than the ATA disk mode. It has the same limitation on sector sizes, however. You
        must read or write 512 byte chunks at a time.
        The CF communicates with the host via a set of memory-mapped
        registers. The memory-mapped mode register set consists of 8 sequential
        registers:
        
        \CE2 \CE1 \REG A3 A2 A1 A0 READ WRITE
        1 0 1 0 0 0 0 DATA DATA
        1 0 1 0 0 0 1 ERROR FEATURE
        1 0 1 0 0 1 0 SECTOR CNT SECTOR CNT
        1 0 1 0 0 1 1 SECTOR NUM SECTOR NUM
        1 0 1 0 1 0 0 CYLINDER LO CYLINDER LO
        1 0 1 0 1 0 1 CYLINDER HI CYLINDER HI
        1 0 1 0 1 1 0 DRIVE HEAD DRIVE HEAD
        1 0 1 0 1 1 1 STATUS COMMAND
        
        
        These registers are 'addressed' by a combination of address lines (A3-0) and
        special input signals (\CE1, \CE2, and \REG). The proper combination of these
        lines will permit reading or writing any of these registers.
        Data is read and written through the DATA register -- 512 bytes at at time.
        Once started, the correct number of bytes must be read or written. The location
        on the CF of the data is set by the Sector number and the Cylinder (HI-MID-LO)
        value. One can setup a linear addressing mode (Logical Block Addressing, or
        LBA) that uses the last 4 bits of the DRIVE HEAD register, the two bytes of the
        CYLINDER registers, and the SECTOR NUMber as a 28-bit address (LBA27-0).
        Writing $Ex to DRIVE HEAD register enables the LBA addressing mode, sets the
        DRIVE # to 0, and sets the addresses LBA27-24 to x.
        The SECTOR CouNT tells the CF card how many sectors you plan to read
        or write. The simplest choice is 1 but some (all?) CF cards have a buffer size that
        is most efficient for writing data.
        One can read/write data as 16-bit words or as 8-bit bytes. Since the
        68HC912 SBC has an 8-bit data bus, I have elected to use the 8-bit mode. The
        FEATURE register (write-only) is used to enable 8-bit transfers by writing it with
        $01.
        The COMMAND register is used to cause the internal CF processor to
        execute commands. For example, one would write $EF to COMMAND after
        setting the FEATURES register.
        The COMMAND register is also used to tell the CF internal processor that
        you are about to read or write a sector of data. The last thing before reading or
        writing is to send $20 (read) or $30 (write) to the COMMAND register.
        STATUS is used to determine if the CF is busy (bit 7 set) or if an error has
        occurred (bit 0 set). This register should be read after every command; wait in a
        loop until bit 7 is cleared.
        Writing a $0C and then a $08 to DEVice ConTRoL register causes a soft
        reset of the CF card. This may not be necessary every time, but it is a sure way
        to start with the card in a known condition.
        تو هر مد بخوای کار کنی یه سری از پایه ها عملا بدون استفاده میمونن چون مربوط به اون مد نیستن و با توجه به دیتا شیت NC یا low میشن ...

        من بیسیک نمینویسم ولی دیدم تو basecom هم کتابخونه براش هس هم اینکه شماتیکشو کشیده (برای مد مموری فک کنم) برا شرو چیز خوبیه !
        پشت به کنکور ، رو به سربازی...

        دیدگاه


          #5
          پاسخ : کسی هست که تا به حال با compact flash برای اتصال به cpld یا fpga کار کرده باشه ؟

          از XilFatfs استفاده کنید.

          دیدگاه

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