Jorge Marin
01/20/2022, 3:38 AMTim Edwards
01/20/2022, 2:22 PMio_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.Jorge Marin
01/20/2022, 3:04 PM