Hello All, I'm trying to figure out how to connec...
# analog-design
j
Hello All, I'm trying to figure out how to connect the analog top cell of my capacitive sensor interface to the Caravan analog wrapper (user_analog_project_wrapper.sch). I have two analog inputs where the capacitive sensor and a calibrating capacitor connects, and thus the main requirement is to have low capacitive and resistive parasitics. For the output, I have a single-bit time-domain digital signal that I need to average to obtain the sensor value. I'm currently using pins io_analog[0] and io_analog[1] for the inputs, and io_analog[2] for the output. From what I understand (from @User' presentation here from minute ~33:

https://www.youtube.com/watch?v=jBrBqhVNgDo

), these pins are the ones which don't have any ESD at all. I don't have my own ESD designed and don't know how to do it yet, so I'm thinking it may be not a good idea to follow this strategy. From a previous question (https://skywater-pdk.slack.com/archives/C016HUV935L/p1640971292177000), I could see that for GPIO there are analog pins called gpio_analog and gpio_noesd, which differ by the fact that gpio_analog has ESD included and thus a 150ohm resistance needs to be considered. My first question is: what is the difference between gpio_noesd and io_analog? Are they the same, i.e. just a metal pad that goes out without any protection? The second question is: where do you recommend me to connect the time-domain digital output signal to, to avoid lack of ESD but still having good performance for the ~23MHz speed I'm working with? Is it better to change it to the gpio_analog, or to put it straight to a digital pin (and which ones can I use in this case)? Finally, I was thinking that the time-domain digital output can also be sent to the internal digital probes and maybe be stored and/or processed by the risc-v processor, which pins are these and do I need to consider anything in particular to connect there?
🌍 1
t
Answer to question 1:
io_analog
are the straight-through connections without ESD or any other protection.
gpio_noesd
and
gpio_analog
are the two analog connections to the GPIO pads.
gpio_noesd
goes straight through to the pad, while
gpio_analog
connects to the pad through a 150 ohm resistor.
gpio_noesd
is not, strictly speaking, completely without ESD protection because there are still ESD diodes on the pad. But without the resistor, any voltage spike on the pads is seen at the circuit mostly unattenuated. A good rule of thumb would be: use
gpio_noesd
for outputs only, since outputs will have diffusion which provides additional ESD protection at the circuit.
gpio_analog
is good for inputs that don't draw any current, since the resistor won't affect the circuit. A diffusion diode close to the input would still be a good idea, though. In either case, if you connect an analog signal to the digital GPIO pads, you need to shut off the digital input and output buffers in software. Answer to question 2: The GPIO pads are rated up to 60MHz, so you won't have any performance issues at 23MHz. Answer to last question: If the time-domain output is running at 23MHz, then the RISC-V processor, which has a core clock of no more than 40MHz, won't be able to keep up with it. Without a bunch of coding tricks in the software, the effective rate of the RISC-V processor will be far lower than that.
j
great, very clear! thanks @User
@Alfonso Cortés