Forum Discussion

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

Alt_asmi

Hi,

I have a CyCIII connectet to a serial configuration device.

I´m able to configure the CYC III with active serial.

Now I want to access the Flash with the ALT_ASMI_Parallel_Interface.

I pulled the signal read_sid to HIgh... and about 40 clock cycs later the busy signal (ouptput) goes to low. The problem is that the epcs_id (8 bit output) is allways 0xFF.

What could there be wrong?

clk_in frequency of alt_asmi is 12.5Mhz from a PLL.

Thanks

Chris

16 Replies

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

    They had me modify the file epcs_asmi.v lines as follows:

    original code:

    initial

    ncs_reg = 0;

    // synopsys translate_on

    always @ ( negedge clkin_wire or posedge end_ophdly)

    if (end_ophdly == 1'b1) ncs_reg <= 1'b0;

    else if (wire_ncs_reg_ena == 1'b1) ncs_reg <= 1'b1;

    modify it to:

    initial

    ncs_reg =1;

    // synopsys translate_on

    always @ ( negedge clkin_wire or posedge end_ophdly)

    if (end_ophdly == 1'b1) ncs_reg <= 1'b1;

    else if (wire_ncs_reg_ena == 1'b1) ncs_reg <= 1'b0;

    Of course YMMV. But I'd be really surprised if CycII had the same issue, that's a relatively mature product. But then things get broken with every new release so I guess it may not be that hard to beleive.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I use:

    1. Quartus 8 + SP1

    2. Cyclone III

    3. EPCS64

    4. Verilog

    If using the mega wizard as is, and it have major bug, the CSn line to the EPCS64 is active hi and should be active low.

    I found manual correction in altera forum

    http://www.alteraforum.com/forum/archive/index.php?t-1141.html (http://www.alteraforum.com/forum/archive/index.php?t-1141.html)

    johns

    April 9th, 2008, 10:50 AM

    They had me modify the file epcs_asmi.v lines as follows:

    original code:

    initial

    ncs_reg = 0;

    // synopsys translate_on

    always @ ( negedge clkin_wire or posedge end_ophdly)

    if (end_ophdly == 1'b1) ncs_reg <= 1'b0;

    else if (wire_ncs_reg_ena == 1'b1) ncs_reg <= 1'b1;

    modify it to:

    initial

    ncs_reg =1;

    // synopsys translate_on

    always @ ( negedge clkin_wire or posedge end_ophdly)

    if (end_ophdly == 1'b1) ncs_reg <= 1'b1;

    else if (wire_ncs_reg_ena == 1'b1) ncs_reg <= 1'b0;

    Manually change the verilog file This fix the issue, but still one major issue:

    The pin DCLK to EPCS64 is always active; this core should turn ON the clock only after try to access to the EPCS64 and not all the time (power issue, EMI/RFI issues)

    Please send me quick correction to this issue as well

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

    This issue has been fixed in QII 9.0.

    But the manual does not document that "Device and Pin Options" -> "Dual-Purpose pins" must all be set to "Use as regular I/O" otherwise the communication to the EPCS is not established. That is omission in the manual is IMHO a bug.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    When I look at the "Device and Pin Options" dialog under "Dual-Purpose pins" the only possibility allowed in the drop down box for the ADS0, nCS0 pins is "As input tri-stated" there is no other choice. For the pin nCEO there are two choices listed "Use as programming pin" and "Use as regular I/O". I will try to see if it works with this setting for ADS0 and nCS0. This is for an EP2C8 with an EPCS4 under Quartus II v9.0.

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

    --- Quote Start ---

    the only possibility allowed in the drop down box for the ADS0, nCS0 pins is "As input tri-stated"

    --- Quote End ---

    Yes, this seems to be a Quartus "special" with Cyclone II. The Altera SFL MegaFunction is however working correctly with exactly this setting, obviously using ASDO, NCSO and DCLK as output in user mode. So I would expect altasmi to work as well, despite of this setting.

    Another option is to set PS configuration in Quartus, but actually configure AS with MSEL. Then you get free choose of dual-purpose pin configuration again. I didn't try with Cyclone II, but I needed this workaround with Cyclone III due to some oddities of previous Quartus versions.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I can confirm that the Cyclone II can read the EPSC4 using altasmi_parallel with ADS0 and nCS0 set to "As input tri-stated" and nCE0 set to "use as regular I/O".