Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

Preserving sectors in an EPCS

Hello,

I need to update the configuration device (EPCS4N) of a Cyclone II FPGA (EP2CF4848N). Sector number 7 was used to store information that is programmed during production. I would like to maintain the information stored in this sector, but saw that when I download the new configuration using a JIC file that the complete contents of the EPCS4 device is erased before the new configuration data is programmed.

Are there any tools available that will allow me to only update the lower sectors, or to read out the top sector and then program it again after the update?

Thanks,

Richard.

14 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Right now, I am only writing 8 bytes of data... calibration parameters that let me tune gain and offset of an analog signal after it has been sampled. This only needs to be done when the board is manufactured. If I produce new firmware, it should be loaded in the field without having to recalibrate, a procedure that can only be done in the manufacturing facility.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Well the reason I asked was to propose some alternatives. Seems like a lots of hassle for 8 bytes of data. You could ...

    1 - Remove the ASMI megafunction and let the NIOS write those values to the flash for you through the EPCS controller. You'd have to send a signal to the NIOS to let it know when you wanted it to write the data. And of course you'd have to write the little bit of C-code involved. This allows you to keep the NIOS in your permanent FPGA image. Also, I highly suspect you'd find other uses for the NIOS along the way. Once I started putting embedded processors in my FPGA designs, I became addicted. You'll never get as much use out of so few logic gates as with an embedded processor.

    2 - Add an EEPROM to the board for your parameter storage.

    Anyway, you know what you're doing. I'm just giving some ideas.

    Jake
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi,

    I'm trying to operate the asmi_parallel megafunction to control an EPCS1 serial flash, through a Cyclone device. Now I can't even read the EPCS1 Silicon_ID through the asmi_parallel megafunction. I wrote a small state machine that only asserts the read_sid signal and reads the epcs_id field, but the busy signal is always at '1' , as if the machine never finishes working. EPCS_ID field is always 8'h00. I only raise the read_sid signal once and lowers it after one one clock or at another case after two clock cycles, but the busy is always at '1'. What could be the problem?

    I don't have a NIOS core in my system.

    Thanks,

    Eldad
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    efargon,

    Are you using QuartusII 9.0 sp2 or QII 9.1 sp1 ?

    Did you set the "Dual-purpose pins" to "User defined I/O"

    ASMI works fine here.