gatecat
02/07/2023, 2:34 PMNguyenDao
02/07/2023, 2:40 PMproppy
02/07/2023, 5:44 PMproppy
02/07/2023, 5:45 PM0-10 34-37
but that was with the old firmwareproppy
02/07/2023, 5:45 PMgatecat
02/07/2023, 5:54 PMgpio_convert.py
script so you'll need to come up with a config pattern for your chip and then paste it into the firmware (or try and see if the config-stream approach works)
the https://github.com/gatecat/fabulous-mpw2-bringup/blob/main/sim/build_test_design.sh script will build a bitstream for the fabric given latest yosys and nextpnr; and FABulous checked out somewhere
https://github.com/gatecat/fabulous-mpw2-bringup/blob/main/caravel/caravel_spi.py is the micropython that loads the bitstream and runs it, printing the output (it's somewhat badly named because I was originally trying to interact with the hkspi). https://github.com/gatecat/fabulous-mpw2-bringup/blob/main/caravel/run.sh copies that script to the nucleo along with the bitstream from above
once all this is set up I put the LEDs on pins [20..23]gatecat
02/07/2023, 5:55 PMTim Edwards
02/08/2023, 1:17 AMgatecat
02/08/2023, 7:11 AMMatt Venn
02/08/2023, 9:45 AMgatecat
02/08/2023, 9:45 AMMatt Venn
02/08/2023, 9:45 AMMatt Venn
02/08/2023, 9:45 AMgatecat
02/08/2023, 9:46 AMMatt Venn
02/08/2023, 9:46 AMMatt Venn
02/08/2023, 9:46 AMgatecat
02/08/2023, 10:34 AMNguyenDao
02/08/2023, 11:59 AMgatecat
02/08/2023, 12:00 PMTim Edwards
02/08/2023, 6:16 PMgatecat
02/08/2023, 6:17 PMTim Edwards
02/08/2023, 6:18 PMgatecat
02/08/2023, 6:19 PMgatecat
02/08/2023, 6:20 PMTim Edwards
02/08/2023, 6:35 PMgpio_config_builder.py
defines nine common/useful types which, assuming that you followed the instructions, you're using in your C code, like C_USER_OUT
. At lines 118 and 142 it defines the configuration word for this type, which is (from line 118) 0110000000010
. The first three bits are the output mode; 011
is the weak-pulldown mode. The mode was chosen because the high bit is zero---the high bit that will bleed into the next channel if there's an independent hold violation between that channel and the next. If a 1
bit bleeds into the next channel, then it automatically becomes management controlled (that sets the management enable bit). That won't be a problem under the following conditions: (1) there is a dependent hold violation between that channel and the next (1
bits won't slip across); (2) the next channel is an input (the user project can see input on channels set for management control), (3) the next channel is supposed to be management-controlled, or (4) the next channel is not being used.
The quick fix would be to use C_USER_BIDIR
. The configuration bit sequence for this is 1100000000000
which has the mode for a high-drive output (it also enables the input buffer, which you will simply ignore). You just need to make sure there isn't an incompatible definition in the channel next to it in the configuration serial chain (that is, the next channel meets the constraints I outlined above).proppy
02/16/2023, 5:56 AMproppy
02/16/2023, 5:56 AM0-9
35-37
but I'm curious if that's enoughproppy
04/03/2023, 6:42 AMgatecat
04/03/2023, 9:54 AMgatecat
04/03/2023, 9:54 AM