Matthew Guthaus
02/01/2023, 5:14 PM*** flashing Caravel
Caravel data:
mfg = 0456
product = 11
project ID = 00000000
Resetting Flash...
status = 0x00
JEDEC = b'ef4016'
Erasing chip...
done
status = 0x0
Tim Edwards
02/01/2023, 9:10 PMMatthew Guthaus
02/01/2023, 9:23 PMTim Edwards
02/01/2023, 9:34 PMMatthew Guthaus
02/01/2023, 9:47 PM~/mpw2_test/caravel_board/firmware_vex/nucleo (main)$ make run PART=B3_2
mpremote connect /dev/ttyACM0 exec "import io_config; io_config.run('B3_2')"
===================================================================
== Beginning IO configuration test. Testing LOW IO chain... ==
===================================================================
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
*** flashing Caravel
Winbond SRAM not found
Tim Edwards
02/01/2023, 10:02 PMTim@khachaturian(nucleo)> sudo make run PART=D3_2
mpremote connect /dev/ttyACM0 exec "import io_config; io_config.run('D3_2')"
===================================================================
== Beginning IO configuration test. Testing HIGH IO chain... ==
===================================================================
*** flashing Caravel
gpio[36] >> Passed
gpio[35] >> Failed
*** flashing Caravel
gpio[36] >> Passed
gpio[35] >> Passed
gpio[34] >> Passed
gpio[33] >> Passed
gpio[32] >> Failed
*** flashing Caravel
gpio[36] >> Passed
gpio[35] >> Passed
gpio[34] >> Passed
gpio[33] >> Passed
gpio[32] >> Passed
gpio[31] >> Passed
gpio[30] >> Passed
gpio[29] >> Failed
*** flashing Caravel
gpio[36] >> Passed
gpio[35] >> Passed
gpio[34] >> Passed
gpio[33] >> Passed
gpio[32] >> Passed
gpio[31] >> Passed
gpio[30] >> Passed
gpio[29] >> Passed
gpio[28] >> Passed
gpio[27] >> Passed
gpio[26] >> Passed
gpio[25] >> Passed
gpio[24] >> Passed
gpio[23] >> Passed
gpio[22] >> Passed
gpio[21] >> Passed
gpio[20] >> Passed
gpio[19] >> Passed
**** IO Configuration Test for high Chain PASSED!!
===================================================================
== HIGH IO chain test complete. Testing LOW IO chain... ==
===================================================================
Matthew Guthaus
02/01/2023, 10:03 PMTim Edwards
02/01/2023, 10:10 PMrun()
calls choose_test()
which calls exec_data_flash()
which prints the "flashing Caravel" message. After that it calls run_test()
which prints the gpio[x] >> Passed/Failed
message. It is trying to read pulses config_io_o.hex
and is supposed to be generating pulses on that pin. Maybe there's a problem with config_io_o.hex
?Matthew Guthaus
02/01/2023, 10:18 PMTim Edwards
02/01/2023, 10:18 PMconfig_io_o.hex
on the Nucleo board is valid.config_io_o.hex
file, then that just brought RISC-V compiler toolchain issues into the mix. If you're using the one that was in the repository, then it cuts down on the possibilities.Matthew Guthaus
02/01/2023, 10:23 PMTim Edwards
02/01/2023, 10:27 PMMatthew Guthaus
02/01/2023, 10:27 PMTim Edwards
02/01/2023, 10:30 PMMatthew Guthaus
02/01/2023, 10:30 PMTim Edwards
02/01/2023, 10:31 PMxclk
at the bottom of the development board). The housekeeping SPI can operate without a clock running (which would allow the SPI flash to be programmed without a clock running), but the chip won't run a program without it.Matthew Guthaus
02/01/2023, 10:32 PMTim Edwards
02/01/2023, 10:37 PMMatthew Guthaus
02/01/2023, 10:37 PMTim Edwards
02/01/2023, 10:41 PMMatthew Guthaus
02/01/2023, 10:43 PMTim Edwards
02/01/2023, 10:50 PMblink.hex
file to the blink/
directory. Then, from the nucleo/
directory, run the following:
sudo make flash FILE=../blink/blink.hex
That much should get the red LED on the Caravel board blinking at a rate of about 1Hz (basic sanity check).Matthew Guthaus
02/01/2023, 10:53 PMTim Edwards
02/01/2023, 11:18 PMTim@khachaturian(nucleo)> sudo make flash FILE=../blink/blink.hex
cp ../blink/blink.hex /media/firmware.hex
sync
sleep 2
mpremote connect /dev/ttyACM0 exec "import io_config; io_config.run_flash_caravel()"
*** flashing Caravel
status Good
FYI, I don't have automount set, so I am manually mounting the Nucleo flash mount /dev/sdf1 /media
(or something like that depending on the exact device name). Note that I have found that my mount is not set for write-through, so I have added sync
to the Makefile target to make sure that the Nucleo board sees the same file that I think I wrote to its flash.SCK
at the bottom of the Caravel board (there are 5 vias in a row that are connected to the SPI flash pins) and should see it toggling when any program is running.Matthew Guthaus
02/02/2023, 1:13 AM