Olimex Support Forum

Others => FPGA => Topic started by: rreignier on August 20, 2016, 03:20:46 PM

Title: iCE40HX1K-EVB programmation with Arduino Leonardo
Post by: rreignier on August 20, 2016, 03:20:46 PM
Hello,

I am trying to program my brand new iCE40HX1K-EVB with an Arduino Leonardo (Pro Micro actually).
I have flashed the iceprog firmware without any issue (modified the pins used according to my wiring).
I use the iceprogduino software to program it and it is a success:


Serial: /dev/ttyACM0: Success

bulk erased.

programming..
prog 0x007D00 +0x0DC....
Bye.


I have even run the command "./iceprogduino -t" to do the test mode and I get this answer:


Test mode
Serial: /dev/ttyACM0: Success
Winbond Serial Flash - W25Q16BV
Bye.


So I assume that the communication between the PC and Arduino then between the Arduino and the FPGA board is ok.

But after programming the FPGA with the demo code from Github, the 2 LEDs are ON but do not blink at all even if I use one button, the other or both of them, if I RESET the board or even Power cycle it, it is always the same, the two LEDs are ON without any blinking.

The iCE40HX1K-EVB board is powered by the SY0605E power supply bought at the same time.

Do you have any idea of what could happen?

My Arduino is 5V, is that an issue?

Thanks
Title: Re: iCE40HX1K-EVB programmation with Arduino Leonardo
Post by: vtsvetkov on August 24, 2016, 10:03:19 AM
Hello, rreignier,

The 5V would definitely be an issue with the iCE40HX1K-EVB. You will need a level shifter, or a board that works with 3.3V levels.

Also, notice that the 10 pin programmer connector needs 3.3V, how do you connect that pin to the Arduino Pro Micro?

The iCE40HX1K-EVB might not be fried but still I would not trust any messages saying that programming was successful. The two leds would remain slightly dimmed when the FPGA is not configured, this is how the board behaves, so I would assume that the flash is not being programmed and later at the power cycle the FPGA can not find the configuration.

Good luck.
Title: Re: iCE40HX1K-EVB programmation with Arduino Leonardo
Post by: rreignier on August 24, 2016, 02:52:17 PM
Hello vtsvetkov,

Thanks a lot for your complete answer.

Quote from: vtsvetkov on August 24, 2016, 10:03:19 AM
The 5V would definitely be an issue with the iCE40HX1K-EVB. You will need a level shifter, or a board that works with 3.3V levels.

Ok, good to know. I have first tried to program the board with my OLIMEXINO-STM32 (3.3V) but even after making the SPIFlash library to build correctly, it was not working.
So, as it was said that the FPGA board could be programmed by either an OLIMEXINO-32U4 or Arduino Leonardo, I have assumed that the pins where 5V tolerant.
I have seen that a new paragraph has been added to the product description page recently. It is a good thing but maybe too late for my board :(

Quote from: vtsvetkov on August 24, 2016, 10:03:19 AM
Also, notice that the 10 pin programmer connector needs 3.3V, how do you connect that pin to the Arduino Pro Micro?

According to the schematic (https://github.com/OLIMEX/iCE40HX1K-EVB/blob/master/iCE40HX1K-EVB_Rev_B.pdf (https://github.com/OLIMEX/iCE40HX1K-EVB/blob/master/iCE40HX1K-EVB_Rev_B.pdf)), the 3,3V pin of the board is not connected because the 3.3V_E1 solder jumper is open. So I did not connect any 3.3V pin.



Quote from: vtsvetkov on August 24, 2016, 10:03:19 AM
The iCE40HX1K-EVB might not be fried

I hope so. Otherwise, I will wait for the availability of the myStorm board that will be easier and safer to program because the programmer is embedded on the board: https://folknologylabs.wordpress.com/2016/07/21/a-perfect-storm/ (https://folknologylabs.wordpress.com/2016/07/21/a-perfect-storm/)

Thanks
Title: Re: iCE40HX1K-EVB programmation with Arduino Leonardo
Post by: olimex on August 25, 2016, 08:24:27 AM
one more suggestion: re-compile the iceprogduino and do not use the binaries from the GitHub
Title: Re: iCE40HX1K-EVB programmation with Arduino Leonardo
Post by: rreignier on September 03, 2016, 02:04:51 PM
So have taken the time to try some solutions given here, re-compiling iceprogduino, wiring the UEXT 3.3V, using level-shifter on the Arduino Leonardo, using an Arduino DUE (3.3V). Nothing works :(
I is not even possible to get the SPI flash memory info with ./iceprogduino -t anymore.
So it seems that my FPGA adventure was very short :(

As a side note, a programmer using UEXT on Olimexino Lime2 or Micro would be nice I think.