Skip to main content
edited tags
Link
deleted 252 characters in body
Source Link

I'm using ICE40-16-WLCSP-Eval-Kit as a reference design for the Lattice ICE40-LP1K 84-QFN which I'm going to use in the motherboard I'm designing.

I did a little experiment with ICE40-16-WLCSP where I externally programmed the SPI Flash and saw that the FPGA is doing what I asked it to do (to blink the green led at a frequency of 2Hz).

The external programming was done using a Dediprog Flash Programmer.

In order to see the effect of blinking the LED, I had to force a hardware reset pulse onto CRESET_B using a jumper on J11. I guess this is the last phase configuring the FPGA, according to this diagram:

enter image description here

enter image description here

Assuming ICE40-LP1K 84-QFN works at the same principle as ICE40-16-WLCSP, how can I perform this SPI programming without making a hardware reset?

The goal is to have as few manual operations as possible in the ATP process, for mass production.

I thought of connecting CDONE to a gate of a MOSFET transistor with its drain connected to CRSTb and the source to GND, but in this case I don't know how CDONE will behave. I would prefer that it gets asserted for short time only to perform the reset, but in this case it will be ON the whole time the FPGA is running after completing power up. How do I know this won't harm the FPGA operation?

I'm also open to other ideas to save up this hardware reset.

Note: CRSTb and CRESET_B are the same signal.

Update: The problem had been fixed. Turns out turning OFF and ON the Power does actually update the image and perform the code. Apparently I didn't give enough delay time between the ON and OFF (maybe the capacitors didn't fully charge\discharge).

I'm using ICE40-16-WLCSP-Eval-Kit as a reference design for the Lattice ICE40-LP1K 84-QFN which I'm going to use in the motherboard I'm designing.

I did a little experiment with ICE40-16-WLCSP where I externally programmed the SPI Flash and saw that the FPGA is doing what I asked it to do (to blink the green led at a frequency of 2Hz).

The external programming was done using a Dediprog Flash Programmer.

In order to see the effect of blinking the LED, I had to force a hardware reset pulse onto CRESET_B using a jumper on J11. I guess this is the last phase configuring the FPGA, according to this diagram:

enter image description here

enter image description here

Assuming ICE40-LP1K 84-QFN works at the same principle as ICE40-16-WLCSP, how can I perform this SPI programming without making a hardware reset?

The goal is to have as few manual operations as possible in the ATP process, for mass production.

I thought of connecting CDONE to a gate of a MOSFET transistor with its drain connected to CRSTb and the source to GND, but in this case I don't know how CDONE will behave. I would prefer that it gets asserted for short time only to perform the reset, but in this case it will be ON the whole time the FPGA is running after completing power up. How do I know this won't harm the FPGA operation?

I'm also open to other ideas to save up this hardware reset.

Note: CRSTb and CRESET_B are the same signal.

Update: The problem had been fixed. Turns out turning OFF and ON the Power does actually update the image and perform the code. Apparently I didn't give enough delay time between the ON and OFF (maybe the capacitors didn't fully charge\discharge).

I'm using ICE40-16-WLCSP-Eval-Kit as a reference design for the Lattice ICE40-LP1K 84-QFN which I'm going to use in the motherboard I'm designing.

I did a little experiment with ICE40-16-WLCSP where I externally programmed the SPI Flash and saw that the FPGA is doing what I asked it to do (to blink the green led at a frequency of 2Hz).

The external programming was done using a Dediprog Flash Programmer.

In order to see the effect of blinking the LED, I had to force a hardware reset pulse onto CRESET_B using a jumper on J11. I guess this is the last phase configuring the FPGA, according to this diagram:

enter image description here

enter image description here

Assuming ICE40-LP1K 84-QFN works at the same principle as ICE40-16-WLCSP, how can I perform this SPI programming without making a hardware reset?

The goal is to have as few manual operations as possible in the ATP process, for mass production.

I thought of connecting CDONE to a gate of a MOSFET transistor with its drain connected to CRSTb and the source to GND, but in this case I don't know how CDONE will behave. I would prefer that it gets asserted for short time only to perform the reset, but in this case it will be ON the whole time the FPGA is running after completing power up. How do I know this won't harm the FPGA operation?

I'm also open to other ideas to save up this hardware reset.

Note: CRSTb and CRESET_B are the same signal.

added 254 characters in body
Source Link

I'm using ICE40-16-WLCSP-Eval-Kit as a reference design for the Lattice ICE40-LP1K 84-QFN which I'm going to use in the motherboard I'm designing.

I did a little experiment with ICE40-16-WLCSP where I externally programmed the SPI Flash and saw that the FPGA is doing what I asked it to do (to blink the green led at a frequency of 2Hz).

The external programming was done using a Dediprog Flash Programmer.

In order to see the effect of blinking the LED, I had to force a hardware reset pulse onto CRESET_B using a jumper on J11. I guess this is the last phase configuring the FPGA, according to this diagram:

enter image description here

enter image description here

Assuming ICE40-LP1K 84-QFN works at the same principle as ICE40-16-WLCSP, how can I perform this SPI programming without making a hardware reset?

The goal is to have as few manual operations as possible in the ATP process, for mass production.

I thought of connecting CDONE to a gate of a MOSFET transistor with its drain connected to CRSTb and the source to GND, but in this case I don't know how CDONE will behave. I would prefer that it gets asserted for short time only to perform the reset, but in this case it will be ON the whole time the FPGA is running after completing power up. How do I know this won't harm the FPGA operation?

I'm also open to other ideas to save up this hardware reset.

Note: CRSTb and CRESET_B are the same signal.

Update: The problem had been fixed. Turns out turning OFF and ON the Power does actually update the image and perform the code. Apparently I didn't give enough delay time between the ON and OFF (maybe the capacitors didn't fully charge\discharge).

I'm using ICE40-16-WLCSP-Eval-Kit as a reference design for the Lattice ICE40-LP1K 84-QFN which I'm going to use in the motherboard I'm designing.

I did a little experiment with ICE40-16-WLCSP where I externally programmed the SPI Flash and saw that the FPGA is doing what I asked it to do (to blink the green led at a frequency of 2Hz).

The external programming was done using a Dediprog Flash Programmer.

In order to see the effect of blinking the LED, I had to force a hardware reset pulse onto CRESET_B using a jumper on J11. I guess this is the last phase configuring the FPGA, according to this diagram:

enter image description here

enter image description here

Assuming ICE40-LP1K 84-QFN works at the same principle as ICE40-16-WLCSP, how can I perform this SPI programming without making a hardware reset?

The goal is to have as few manual operations as possible in the ATP process, for mass production.

I thought of connecting CDONE to a gate of a MOSFET transistor with its drain connected to CRSTb and the source to GND, but in this case I don't know how CDONE will behave. I would prefer that it gets asserted for short time only to perform the reset, but in this case it will be ON the whole time the FPGA is running after completing power up. How do I know this won't harm the FPGA operation?

I'm also open to other ideas to save up this hardware reset.

Note: CRSTb and CRESET_B are the same signal.

I'm using ICE40-16-WLCSP-Eval-Kit as a reference design for the Lattice ICE40-LP1K 84-QFN which I'm going to use in the motherboard I'm designing.

I did a little experiment with ICE40-16-WLCSP where I externally programmed the SPI Flash and saw that the FPGA is doing what I asked it to do (to blink the green led at a frequency of 2Hz).

The external programming was done using a Dediprog Flash Programmer.

In order to see the effect of blinking the LED, I had to force a hardware reset pulse onto CRESET_B using a jumper on J11. I guess this is the last phase configuring the FPGA, according to this diagram:

enter image description here

enter image description here

Assuming ICE40-LP1K 84-QFN works at the same principle as ICE40-16-WLCSP, how can I perform this SPI programming without making a hardware reset?

The goal is to have as few manual operations as possible in the ATP process, for mass production.

I thought of connecting CDONE to a gate of a MOSFET transistor with its drain connected to CRSTb and the source to GND, but in this case I don't know how CDONE will behave. I would prefer that it gets asserted for short time only to perform the reset, but in this case it will be ON the whole time the FPGA is running after completing power up. How do I know this won't harm the FPGA operation?

I'm also open to other ideas to save up this hardware reset.

Note: CRSTb and CRESET_B are the same signal.

Update: The problem had been fixed. Turns out turning OFF and ON the Power does actually update the image and perform the code. Apparently I didn't give enough delay time between the ON and OFF (maybe the capacitors didn't fully charge\discharge).

added 12 characters in body
Source Link
Loading
Spelling and grammar.
Source Link
TonyM
  • 23.8k
  • 4
  • 40
  • 65
Loading
Source Link
Loading