LoPy ADC deadzone and isolation



  • Hi guys, our team are testing the ADC in the LoPy, but we notice there is a deadzone lower than 70mA when attenuation is 0dB and 100mA with 12dB.0_1488556512481_lopy_adc_results.png

    Also, there is a problem with Isolation, the input to the ADC is going to be a potentially dangerous signal, this kind connection will not have the isolation protection, it could probably break the PC or the LoPy pic. So in what way can we use isolation protection for the built-in ADC?

    Is there anyone, have this kind of problem and could shear their solution, we will be really appreciated.



  • Hello @Yunying. Your observation is correct and matches the statements of espressif and others. The ADC should be used with 0 or 6dB attenuation, the 0-reading is at 70 mV, and at high reading it gets very non-linear. You can cope with that in your firmware, and espressif announced a compensation in a later firmware. Even then, it is by no means a high precision ADC.
    When using the ADC, it is recommended to feed it, like any ADC, with a low impedance, low noise Op-Amp and an input stage which filters ESD and possible destructive signals. That reduces noise too. If you need an isolated input, you have to work with opto-couplers or/and isolation amplifiers.
    You can also run the whole unit on battery. If you need USB connectivity, there are so called USB-Isolators, which isolate the USB device from the PC. Just look for that e.g. on EBay or Aliexpress.
    If you need a good quality ADC, use an external one, like the ads1115. There are isolating I2C bridges and DC/DC converters which would allow to run the ADC and input stage in a separate power domain, solving the request for isolation.


Log in to reply
 

Pycom on Twitter