<@U016EM8L91B> <@U016HSAA3RQ> <@U0172QZ342D> I ha...
# caravel-board
y
@Tim Edwards @jeffdi @Matt Venn I have a few MPW1 Chips with me and to test them I am trying out something different as I could not get hold of an FT232H IC for USB to SPI. Following the caravel_pcb_v4_FTDI board I have connected the required 3.3v and 1.8v LDO and 10 Mhz clock along with the reset button. Further I have connected an W25Q32 SPI flash to the QSPI Flash interface and am writing to the external flash memory using an Arduino. If my understanding is correct, on boot the Caravel will start reading from the flash memory and execute it in the management RISCV core. Currently my goal is to just get the management GPIO to blink an led and hence, I have used the /caravel_board/firmware/blink2/blink2.hex file. I just want to confirm : 1. If the steps that I have carried out make sense and is a feasible solution? 2. I have attached a screenshot of how the memory map looks like for the above mentioned hex file and if I have written it at the correct starting address( starting from the 4th byte ) and followed the right endianness. I apologise if I haven't explained it properly and thanks for the help.
t
The purpose of the FTDI is to communicate with the on-chip housekeeping SPI, whose primary function is to connect directly to the SPI flash for programming. To replace that function, you need to keep the caravel chip in reset while programming the flash from an external source like your Arduino. I need to check if it is possible on the MPW-one version of Caravel to hold the flash SPI pins in high-impedence when the chip is in reset.
Otherwise, the only issue I see is that it looks like you are storing the startup commands
ff
and
ab
that the chip is supposed to pass to the SPI flash as part of the SPI flash program itself; also, the
03
command to the SPI initiates a read and needs to be followed by three bytes of address. The processor itself will generate these values; they should not be part of the program saved to the SPI flash. The SPI flash program at address 0 should be exactly as found in the hex file, which is
37 09 00 21 23 22 09 00. . .
.
y
Thanks alot for the insight, Regarding holding the flash pins in High Impedance, In my setup I can remove and re-plug the caravel breakout board. So I write to the SPI flash with the caravel unplugged. After the SPI Flash is written I re-plug the Caravel. This should also result in the GPIO to blink?
t
You will need to review all of the issues with MPW-one; see the #mpw-one-silicon channel.