I have a workflow where I need to preserve the state of the voltage rails while switching applets, in my particular case, to configure a part, and then use the configuration with another applet. There's not enough FPGA gate space to build a combination applet.
Digging into the source, it looks like the current behavior (disable Vio on applet load) is intentional for safety reasons, as referenced in #552 and #96, where outputs all go HIGH at the specified bus output, through a 33o resistor, for the duration of the ~1-2ms FPGA configuration process. With some sensitive parts, this could be an issue, but I have not yet found any hardware that dies fighting ie) 3.3v through 33o (or larger, depending upon external/attached hardware) for a millisecond or two.
Wondering if there's any willingness to entertain an "--unsafe-hold-Vio" flag which would functionally make the paths added in f050f51 conditional (duplicating the path & costing extra space? adding a parameter to fpga_reset?) and route the hold-vio path through a new req->bRequest == USB_REQ_FPGA_CFG_UNSAFE_HOLD_VIO
More docs @ https://gist.github.com/i-infra/ca4ae0ad7f9a0886412f32a06e0a0cba and modded .ihex @ https://gist.github.com/i-infra/44f7266bc714a92900299f067123ce48.
As always, thanks so much @whitequark @marcan etc!! <3
I have a workflow where I need to preserve the state of the voltage rails while switching applets, in my particular case, to configure a part, and then use the configuration with another applet. There's not enough FPGA gate space to build a combination applet.
Digging into the source, it looks like the current behavior (disable Vio on applet load) is intentional for safety reasons, as referenced in #552 and #96, where outputs all go HIGH at the specified bus output, through a 33o resistor, for the duration of the ~1-2ms FPGA configuration process. With some sensitive parts, this could be an issue, but I have not yet found any hardware that dies fighting ie) 3.3v through 33o (or larger, depending upon external/attached hardware) for a millisecond or two.
Wondering if there's any willingness to entertain an "--unsafe-hold-Vio" flag which would functionally make the paths added in f050f51 conditional (duplicating the path & costing extra space? adding a parameter to
fpga_reset?) and route thehold-viopath through a newreq->bRequest == USB_REQ_FPGA_CFG_UNSAFE_HOLD_VIOMore docs @ https://gist.github.com/i-infra/ca4ae0ad7f9a0886412f32a06e0a0cba and modded .ihex @ https://gist.github.com/i-infra/44f7266bc714a92900299f067123ce48.
As always, thanks so much @whitequark @marcan etc!! <3