Vladimir Vesely
05/28/2024, 9:23 PMMitch Bailey
05/28/2024, 10:17 PMcaravel_openframe
which allows greater access to 44 gpio. You’ll need to be careful because you have to completely configure each gpio individually - it’s more complicated than the normal `caravan`/`caravel` version.
I believe <https://github.com/efabless/openframe_timer_example>
is the recommended starting repo.Vladimir Vesely
05/28/2024, 10:44 PMMitch Bailey
05/29/2024, 12:06 AMcaravan
(the analog version of caravel
), right? The analog connections to the gpio are limited to VDDIO
because of the connections to the output drivers. If you connect 5V signals to the gpio when VDDIO
is 3.3v, the disabled output driver pfet drain-bulk diode will be forward biased.Mitch Bailey
05/29/2024, 12:09 AMVladimir Vesely
05/29/2024, 12:28 AMVDDIO
= 3.3V, to have pads that can handle 5V it is necessary to use caravan
(I don't see this on the efabless Github. I was under the impression that it was replaced with caravel_analog
?) No pedantry detected.
Ah, so I could use the housekeeping SPI on startup (e.g. get the device ID), then reprogram pins 1-4 to be the user SPI. The pins would reset to default when power is lost. Is this summary correct?Mitch Bailey
05/29/2024, 12:35 AMcaravan
(final chip name), clone `caravel_project_wrapper_analog`(repo name). The top user area is user_analog_project_wrapper
. precheck and tapeout should pick up the gds file name (either user_project_wrapper.gds
or user_analog_project_wrapper
) and automatically determine the appropriate final chip type.
Ah, so I could use the housekeeping SPI on startup (e.g. get the device ID), then reprogram pins 1-4 to be the user SPI. The pins would reset to default when power is lost. Is this summary correct?That is my understanding (I’ve never actually done it myself, though).
Mitch Bailey
05/29/2024, 12:38 AMVDDIO
, VDDA*
can be anywhere from 1.8V to 5V. https://caravel-harness.readthedocs.io/en/latest/maximum-ratings.htmlVladimir Vesely
05/29/2024, 12:51 AMVDDIO
has a wide range, but the 3.3V maximum is requirement for interface. We don't want to level shift when interfacing with the chip, but still need some signals that go above 3.3V...thus preventing open_padframe
.