I would like to have my program running after RESET or PowerON. At the moment it seems that every RESET or REPOWER gives me the bits from EEPROM. How is it possible to write my bits into the EEPROM so that those rum my programm after startup.
Is this possible? What do I have to do? What problems are with this? (BootLoader…)
Thanx for help, Harald.
There is no EEPROM in the TinyFPGA BX, just two different bitstreams in the flash memory, the bootloader at address 0xa0, and the user image at address 0x28000.
There are 5 32-byte multiboot entries in the first 160 (0xa0) bytes of the flash memory. The first says which bitstream to use at power-on and reset, and is set to the bootloader at address 0xa0. The next 4 entries specify what to do on warm boots, and all but the second are set to use the bitstream at 0xa0 (the bootloader). The second warm boot entry is set to boot to the user image at 0x28000.
When you press reset, the first entry is used and you enter the bootloader.
The bootloader checks to see if it connected to a computer, and if so stays in the bootloader waiting for commands.
If it is not connected to a computer it does a warm boot to the user image.So if you power your BX from a USB charger, not a computer, it will boot to the user image and run your program.
Some people who use VMs find that the computer check does not work and it always runs the user image, until they press reset.
If you want different behaviour, you need to change the multiboot configuration and/or the bootloader, but that is not easy. If you want to do that you need an SPI programmer, which you need to connect to the correct inner pads on the under-side of the BX, and you need to know what you are doing as you can easily destroy the bootloader and then your BX will not be programmable over USB.
I have described how I changed the multiboot configuration in:
Thanks. A lot of info. I try to figure out.
Thanks once again. Works fine. I connected 5V to J2 pin 1 and everythings works as expected.