Details

    • Type: Component
    • Status: Obsolete
    • Resolution: Done
    • netX Type:
      netX 52
    • Component Type:
      SQI Flash
    • 2ndStageLoader Version:
      1.4.18.0
    • rcX Version:
      V2.1.12.0 V2.3.0.0
    • Components Tests:
      Climate test done, Scope test done
    • Component Name:
      W25Q64CVZPAG
    • Parameter:
      Hide
      <SerialFlash name="W25Q64CV" size_bytes="8388608" address_bits="24">
      <Description>Winbond W25Q64CVZPAG</Description>
      <Speed fifo_clock_khz="33000" xip_clock_khz="80000">
      <Limit netx="500" fifo_clock_khz="25000" xip_clock_khz="0" />
      <Limit netx="50" fifo_clock_khz="25000" xip_clock_khz="0" />
      <Limit netx="51" fifo_clock_khz="25000" xip_clock_khz="80000" />
      </Speed>
      <Erase>
      <Block0 size_bytes="4096" command="0x20" typical_time_ms="45" />
      <Block1 size_bytes="32768" command="0x52" typical_time_ms="120" />
      <Block2 size_bytes="65536" command="0xd8" typical_time_ms="150" />
      <Block3 size_bytes="" command="" typical_time_ms="" />
      <Chip command="0xc7" typical_time_ms="10000" />
      </Erase>
      <Layout mode="linear">
      <Block size_bytes="8388608" has_erase_block0="true" has_erase_block1="true" has_erase_block2="true" has_erase_block3="false" />
      </Layout>
      <Read>
      <Read1Bit command="0x03" dummy_bytes="0" />
      <ReadFast command="0xeb" dummy_bytes="8" idle_cycles="4">
      <BusWidth command="1" address="4" dummy_idle="4" data="4"/>
      </ReadFast>
      </Read>
      <Write writeEnableCommand="0x06">
      <Write1Bit command="0x02" dummy_bytes="0" />
      <WriteFast command="0x32" dummy_bytes="0" idle_cycles="0">
      <BusWidth command="1" address="1" dummy_idle="1" data="4"/>
      </WriteFast>
      </Write>
      <Status readStatusCommand="0x05" statusReadyMask="0x01" statusReadyValue="0x00" />

      <Initialize># Send 2 dummy bytes.
      SMC_DUMMY, SMCS_NNN, 2

      # Send the command 0x9f.
      SMC_SEND, SMCS_SNN, 1, 0x9f
      # Receive 3 bytes.
      SMC_RECEIVE, SMCS_SDD, 3
      # Compare the JEDEC ID.
      SMC_CMP, 3, 0xef, 0x40, 0x17
      # Fail if it does not match.
      SMC_FAIL, SPI_MACRO_CONDITION_NotEqual

      # Read status register 2.
      SMC_SEND, SMCS_SNN, 1, 0x35
      SMC_RECEIVE, SMCS_SDD, 1
      # Keep only bit #2.
      SMC_MASK, 1, 0x02
      # Skip setting the QE bit if it is already 1.
      SMC_JUMP, SPI_MACRO_CONDITION_Zero, QeOK
      # Write enable.
      SMC_SEND, SMCS_SDD, 1, 0x06
      # Write the status register.
      SMC_SEND, SMCS_SDD, 3, 0x01, 0x02
      QeOK:</Initialize>



      <XipInitialize># Send 2 dummy bytes.
      SMC_DUMMY, SMCS_NNN, 2

      # Send the command 0xeb.
      SMC_SEND, SMCS_SNN, 1, 0xeb

      # Switch to 4 bit mode.
      SMC_MODE, SPI_BUS_WIDTH_4BIT

      # Send a 3 byte address and the continue bit.
      SMC_SEND, SMCS_SNN, 4, 0x00, 0x00, 0x00, 0xa5

      # Send 4 idle cycles.
      SMC_IDLE, SMCS_SNN, 4

      # Receive 4 bytes.
      SMC_RECEIVE, SMCS_SDD, 4

      # Change the transport to SQI ROM.
      # Use 4 dummy cycles, 24 address bits and 6 address nibbles.
      SMC_CHTR, SPI_MACRO_CHANGE_TRANSPORT_ROM, 4, 24, 6</XipInitialize>



      <XipLeave># Change the transport to FIFO.
      SMC_CHTR, SPI_MACRO_CHANGE_TRANSPORT_FIFO

      # Send a 3 byte address and no continue bit.
      SMC_SEND, SMCS_SNN, 4, 0x00, 0x00, 0x00, 0xff

      # Send 4 idle cycles.
      SMC_IDLE, SMCS_SNN, 4

      # Receive 4 bytes.
      SMC_RECEIVE, SMCS_SDD, 4

      # Go back to 1 bit mode.
      SMC_MODE, SPI_BUS_WIDTH_1BIT

      # Send 2 dummy bytes.
      SMC_DUMMY, SMCS_NNN, 2</XipLeave>
      </SerialFlash>
      Show
      <SerialFlash name="W25Q64CV" size_bytes="8388608" address_bits="24"> <Description>Winbond W25Q64CVZPAG</Description> <Speed fifo_clock_khz="33000" xip_clock_khz="80000"> <Limit netx="500" fifo_clock_khz="25000" xip_clock_khz="0" /> <Limit netx="50" fifo_clock_khz="25000" xip_clock_khz="0" /> <Limit netx="51" fifo_clock_khz="25000" xip_clock_khz="80000" /> </Speed> <Erase> <Block0 size_bytes="4096" command="0x20" typical_time_ms="45" /> <Block1 size_bytes="32768" command="0x52" typical_time_ms="120" /> <Block2 size_bytes="65536" command="0xd8" typical_time_ms="150" /> <Block3 size_bytes="" command="" typical_time_ms="" /> <Chip command="0xc7" typical_time_ms="10000" /> </Erase> <Layout mode="linear"> <Block size_bytes="8388608" has_erase_block0="true" has_erase_block1="true" has_erase_block2="true" has_erase_block3="false" /> </Layout> <Read> <Read1Bit command="0x03" dummy_bytes="0" /> <ReadFast command="0xeb" dummy_bytes="8" idle_cycles="4"> <BusWidth command="1" address="4" dummy_idle="4" data="4"/> </ReadFast> </Read> <Write writeEnableCommand="0x06"> <Write1Bit command="0x02" dummy_bytes="0" /> <WriteFast command="0x32" dummy_bytes="0" idle_cycles="0"> <BusWidth command="1" address="1" dummy_idle="1" data="4"/> </WriteFast> </Write> <Status readStatusCommand="0x05" statusReadyMask="0x01" statusReadyValue="0x00" /> <Initialize># Send 2 dummy bytes. SMC_DUMMY, SMCS_NNN, 2 # Send the command 0x9f. SMC_SEND, SMCS_SNN, 1, 0x9f # Receive 3 bytes. SMC_RECEIVE, SMCS_SDD, 3 # Compare the JEDEC ID. SMC_CMP, 3, 0xef, 0x40, 0x17 # Fail if it does not match. SMC_FAIL, SPI_MACRO_CONDITION_NotEqual # Read status register 2. SMC_SEND, SMCS_SNN, 1, 0x35 SMC_RECEIVE, SMCS_SDD, 1 # Keep only bit #2. SMC_MASK, 1, 0x02 # Skip setting the QE bit if it is already 1. SMC_JUMP, SPI_MACRO_CONDITION_Zero, QeOK # Write enable. SMC_SEND, SMCS_SDD, 1, 0x06 # Write the status register. SMC_SEND, SMCS_SDD, 3, 0x01, 0x02 QeOK:</Initialize> <XipInitialize># Send 2 dummy bytes. SMC_DUMMY, SMCS_NNN, 2 # Send the command 0xeb. SMC_SEND, SMCS_SNN, 1, 0xeb # Switch to 4 bit mode. SMC_MODE, SPI_BUS_WIDTH_4BIT # Send a 3 byte address and the continue bit. SMC_SEND, SMCS_SNN, 4, 0x00, 0x00, 0x00, 0xa5 # Send 4 idle cycles. SMC_IDLE, SMCS_SNN, 4 # Receive 4 bytes. SMC_RECEIVE, SMCS_SDD, 4 # Change the transport to SQI ROM. # Use 4 dummy cycles, 24 address bits and 6 address nibbles. SMC_CHTR, SPI_MACRO_CHANGE_TRANSPORT_ROM, 4, 24, 6</XipInitialize> <XipLeave># Change the transport to FIFO. SMC_CHTR, SPI_MACRO_CHANGE_TRANSPORT_FIFO # Send a 3 byte address and no continue bit. SMC_SEND, SMCS_SNN, 4, 0x00, 0x00, 0x00, 0xff # Send 4 idle cycles. SMC_IDLE, SMCS_SNN, 4 # Receive 4 bytes. SMC_RECEIVE, SMCS_SDD, 4 # Go back to 1 bit mode. SMC_MODE, SPI_BUS_WIDTH_1BIT # Send 2 dummy bytes. SMC_DUMMY, SMCS_NNN, 2</XipLeave> </SerialFlash>
    • Component Size:
      8 MByte
    • Component Recommended:
      verified & recommended

      Attachments

        Issue Links

          Expenses

            Activity

              Status Description

                People

                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: