All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: linux-iio <linux-iio@vger.kernel.org>,
	Peter Rosin <peda@axentia.se>,
	Michael Hennerich <michael.hennerich@analog.com>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Vincent Whitchurch <vincent.whitchurch@axis.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>
Subject: Re: [PATCH v2 11/17] iio: core: Introduce _inputoffset for differential channels
Date: Mon, 20 Jun 2022 19:13:07 +0100	[thread overview]
Message-ID: <20220620191307.7f8fefa7@jic23-huawei> (raw)
In-Reply-To: <CAHp75Vdf3aWaeT17cxsm=a7LUSpc1LnoMGkRQS8O_3ftufprLg@mail.gmail.com>

On Mon, 20 Jun 2022 01:20:08 +0200
Andy Shevchenko <andy.shevchenko@gmail.com> wrote:

> On Sun, Jun 19, 2022 at 8:59 PM Jonathan Cameron <jic23@kernel.org> wrote:
> >
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > Address an ABI gap for device where the offset of both lines in a
> > differential pair may be controlled so as to allow a wider range of
> > inputs, but without having any direct effect of the differential
> > measurement.
> >
> > _offset cannot be used as to remain in line with existing usage,
> > userspace would be expected to apply it as (_raw + _offset) * scale
> > whereas _inputoffset is not.
> > Similarly calibbias is expected to tweak the measurement seen, not
> > the adjust the two lines of the differential pair.
> >
> > Needed for in_capacitanceX-capacitanceY_inputoffset for the
> > AD7746 CDC driver.
> >
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > ---
> > I''m not entirely happy with the naming on this one, so if anyone
> > has a better idea I'm definitely open to it!  
> 
> I'm not sure I got the idea behind this, but would be "tare" /
> "tarepoint" / alike suitable here?
>

Hmm I don't think tare maps well as I've never seen it applied to a
differential channel like this.  Not really seen it much used outside
of checkweighing (the mention brought back some horrible memories
of debugging software for high speed check weighers :)

So to try and explain what this is doing in more depth.

This is basically applying a negative offset X to both the P(ostitive) and
N(egative) lines. Hence

measured capacitance = (P - X) - (N - X)
                     = P - N

the aim of X being to keep the signal hitting some internal point on
the device within a range that is measurable.

The relevant text on the datasheet is:

"The CAPDAC can be understood as a negative capacitance
connected internally to the CIN pin."

"Each of the two input capacitances CX and CY between the EXC
and CIN pins must be less than 4 pF (without using the
CAPDACs) or must be less than 21 pF and balanced by the
CAPDACs. Balancing by the CAPDACs means that both
CX–CAPDAC(+) and CY–CAPDAC(–) are less than 4 pF."

So basically if you have both sides of the differential pair
that are too large (>4 pF) then you can drag them together
down to that range by adding negative capacitance.

Ouch that's confusing :)

Jonathan





  reply	other threads:[~2022-06-20 18:13 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-19 18:58 [PATCH v2 00/17] staging/iio: Clean up AD7746 CDC driver and move from staging Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 01/17] iio: core: Increase precision of IIO_VAL_FRACTIONAL_LOG2 when possible Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 02/17] iio: ABI: Fix wrong format of differential capacitance channel ABI Jonathan Cameron
2022-06-19 22:58   ` Andy Shevchenko
2022-06-20 17:50     ` Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 03/17] staging: iio: cdc: ad7746: Use explicit be24 handling Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 04/17] staging: iio: cdc: ad7746: Push handling of supply voltage scale to userspace Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 05/17] staging: iio: cdc: ad7746: Use local buffer for multi byte reads Jonathan Cameron
2022-06-19 23:00   ` Andy Shevchenko
2022-06-20 16:42     ` Jonathan Cameron
2022-06-20 18:23       ` Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 06/17] staging: iio: cdc: ad7746: Factor out ad7746_read_channel() Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 07/17] staging: iio: cdc: ad7764: Push locking down into case statements in read/write_raw Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 08/17] staging: iio: cdc: ad7746: Break up use of chan->address and use FIELD_PREP etc Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 09/17] staging: iio: cdc: ad7746: Drop usused i2c_set_clientdata() Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 10/17] staging: iio: cdc: ad7746: Use _raw and _scale for temperature channels Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 11/17] iio: core: Introduce _inputoffset for differential channels Jonathan Cameron
2022-06-19 23:20   ` Andy Shevchenko
2022-06-20 18:13     ` Jonathan Cameron [this message]
2022-06-20 18:35       ` Andy Shevchenko
2022-06-20 20:01         ` Jonathan Cameron
2022-06-20 19:57   ` Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 12/17] staging: iio: cdc: ad7746: Switch from _offset to " Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 13/17] staging: iio: cdc: ad7746: Use read_avail() rather than opencoding Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 14/17] staging: iio: ad7746: White space cleanup Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 15/17] iio: cdc: ad7746: Add device specific ABI documentation Jonathan Cameron
2022-06-19 18:58 ` [PATCH v2 16/17] iio: cdc: ad7746: Move driver out of staging Jonathan Cameron
2022-06-19 23:11   ` Andy Shevchenko
2022-06-20 16:40     ` Jonathan Cameron
2022-06-20 18:30       ` Jonathan Cameron
2022-06-20 18:40       ` Andy Shevchenko
2022-06-20 19:53         ` Jonathan Cameron
2022-06-20 20:01           ` Andy Shevchenko
2022-06-19 18:58 ` [PATCH v2 17/17] RFC: iio: cdc: ad7746: Add roadtest Jonathan Cameron
2022-06-19 23:23 ` [PATCH v2 00/17] staging/iio: Clean up AD7746 CDC driver and move from staging Andy Shevchenko
2022-06-20 18:07   ` Jonathan Cameron
2022-06-21 14:34   ` Joe Simmons-Talbott
2022-06-22 13:07 ` Vincent Whitchurch
2022-06-26 11:07   ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220620191307.7f8fefa7@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=michael.hennerich@analog.com \
    --cc=peda@axentia.se \
    --cc=vincent.whitchurch@axis.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.