Hi all,
I've recently switched config devices from an ST M25P40 to an ST M25P16 flash for a design using a Cyclone III EP3C10 (in active serial mode). I've wired up the flash as indicated in the Cyclone III datasheet. All was good with the M25P40, but a few of the boards using the larger device have problems configuring. Sometimes the FPGA takes a few seconds to configure, sometimes it won't configure at all. In all cases, if I touch a 'scope probe on the clock pin of the flash (pin 6) the FPGA configures successfully. Any ideas what's going wrong - has anyone seen anything like this before? Thanks in advance. Regards, Richard链接已复制
OK, fixed it - I needed to add a series termination resistor to the DCLK line. Ideally this would be close to the FPGA, but since that is inaccessible on my board I put it at the receiving end - the config flash clock pin - and the problem is fixed. I guess this larger flash has a lower pin capacitance than the devices I was using previously.
Sounds as though the M25P16 has a slightly higher drive strength than the M25P40 causing reflections with your current board layout. I'd check both devices' data sheets if I were you.
If the data sheet shows identical values, this also means that the boards that are being configured by the M25P40 may be marginal and may fail in the future. Best regards, Ben--- Quote Start --- Sounds as though the M25P16 has a slightly higher drive strength than the M25P40 --- Quote End --- DCLK is driven by the FPGA, not the serial flash. The initial poster didn't tell about the FPGA to flash distance. If it's large, clock signal integrity problems without a series termination aren't surprising.
The flash is about 10mm from the FPGA - the DCLK track length is no more than 25mm. In future, I'll always include a termination resistor. The short-term fix for the boards I have is to swap the flash for the smaller 4MBit device.
