Tim Edwards
07/25/2023, 12:33 PMGabriel Gallardo
07/25/2023, 2:14 PM❯ make flash
python3 ../util/caravel_hkflash.py blink.hex
Success: Found one matching FTDI device at <ftdi://ftdi:232>h:14:c/1
Caravel data:
mfg = ffff
product = ff
project ID = ffffffff
make: *** [flash] Error 2
We can monitor the MEM SPI bus on a logic analyser and see that there are memory read requests, and the program being read is quite similar to the one we flashed. On the USB SPI bus, we see that the USB_SI line is always high, which is interpreted as 0xff.
We tried running the flashing program with the reset button held down with no effect.
We tried measuring the voltages. 3V3 is as expected. 1v8 reads 1.59V, and the voltage regulator on the evaluation board is a 1V6 one. Is that expected? Would that have an effect on things?
Another observation: when we plug in the evaluation board to power, we see that the GPIO line is almost always high. It is pulled low for nanoseconds at a time sporadically. The LED is always on. Activity on the memory bus comes in bursts, and it is only during these bursts that the GPIO line is goes low. The memory it asks for are at
0x000000
0x0000a0
0x000900
0x0000e0
0x000904
0x000100
0x000740
0x0003c0
0x000340
0x0003a0
0x000360
0x000220
# delay
0x0002a0
0x000360
0x000220
# delay
subr:
0x0002a0
0x000380
0x000360
0x000220
# delay
0x0002a0
0x0002a0
0x000360
0x000220
# jmp: subr
After about 0.8s, we see a change in behaviour. There is constant activity on the memory bus and the GPIO line oscillates between 1 and 0 with frequency 598 Hz and the LED is always on. The memory locations being streamed are from 0x2a0, then [0x860, 0x220, 0x880, 0x220, 0x8a0] repeatedly.
Could you give us some pointers as to where something might be wrong? Or some next steps in debugging? We attach also the blink.hex
and blink.lst
that we are using. Thanks for your help.Tim Edwards
07/25/2023, 2:21 PMGabriel Gallardo
07/25/2023, 3:19 PMTim Edwards
07/25/2023, 6:37 PMblink.c
starts with a GPIO programming stage which takes rather long because it is bit-banging the whole serial programming chain. That's followed by a message output at the leisurely rate of 9600 baud until it settles into the blink mode. But the blink mode is supposed to be several Hz, not several hundred Hz. At several hundred Hz you get an LED that blinks faster than your eye can track, so you just see that the LED is on.
FYI: After testing a number of chips, we decided that the best yield of working parts occurred at an internal digital power supply voltage of about 1.6V, so we dropped the LDO output on the boards slightly, which is why you don't see 1.8V.Gabriel Gallardo
07/26/2023, 2:17 PMGabriel Gallardo
07/26/2023, 2:18 PMTim Edwards
07/26/2023, 2:29 PMGabriel Gallardo
08/17/2023, 10:26 AM0x4
or 0x3
). Do I understand correctly that pins 1-4 are used for the HKSPI? What would happen if I tried to configure them for our output? and how could I go about doing that?