linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vincent MAILHOL <mailhol.vincent@wanadoo.fr>
To: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: linux-can <linux-can@vger.kernel.org>,
	Oliver Hartkopp <socketcan@hartkopp.net>,
	Wolfgang Grandegger <wg@grandegger.com>
Subject: Re: [PATCH v2 1/5] can: add new CAN FD bittiming parameters: Transmitter Delay Compensation (TDC)
Date: Wed, 16 Jun 2021 21:44:27 +0900	[thread overview]
Message-ID: <CAMZ6RqKs4D2P9LnnWDGj-ThT3GLPdfnfU7TH8vx9XfqKZVZJUw@mail.gmail.com> (raw)
In-Reply-To: <20210616095410.lsvqnismp4uydrmh@pengutronix.de>

On Wed. 16 Jun 2021 at 18:54, Marc Kleine-Budde <mkl@pengutronix.de> wrote:
> On 24.02.2021 09:20:04, Vincent Mailhol wrote:
> > At high bit rates, the propagation delay from the TX pin to the RX pin
> > of the transceiver causes measurement errors: the sample point on the
> > RX pin might occur on the previous bit.
> >
> > This issue is addressed in ISO 11898-1 section 11.3.3 "Transmitter
> > delay compensation" (TDC).
> >
> > This patch adds two new structures: can_tdc and can_tdc_const in order
> > to implement this TDC.
> >
> > The structures are then added to can_priv.
> >
> > A controller supports TDC if an only if can_priv::tdc_const is not
> > NULL.
> >
> > TDC is active if and only if:
> >   - fd flag is on
> >   - can_priv::tdc.tdco is not zero.
> > It is the driver responsibility to check those two conditions are met.
> >
> > No new controller modes are introduced (i.e. no CAN_CTRL_MODE_TDC) in
> > order not to be redundant with above logic.
> >
> > The names of the parameters are chosen to match existing CAN
> > controllers specification. References:
> >   - Bosch C_CAN FD8:
> > https://www.bosch-semiconductors.com/media/ip_modules/pdf_2/c_can_fd8/users_manual_c_can_fd8_r210_1.pdf
> >   - Microchip CAN FD Controller Module:
> > http://ww1.microchip.com/downloads/en/DeviceDoc/MCP251XXFD-CAN-FD-Controller-Module-Family-Reference-Manual-20005678B.pdf
> >   - SAM E701/S70/V70/V71 Family:
> > https://www.mouser.com/datasheet/2/268/60001527A-1284321.pdf
> >
> > Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
> > ---
> >  include/linux/can/bittiming.h | 65 +++++++++++++++++++++++++++++++++++
> >  include/linux/can/dev.h       |  3 ++
> >  2 files changed, 68 insertions(+)
> >
> > diff --git a/include/linux/can/bittiming.h b/include/linux/can/bittiming.h
> > index 707575c668f4..91bf9f8926a7 100644
> > --- a/include/linux/can/bittiming.h
> > +++ b/include/linux/can/bittiming.h
> > @@ -1,5 +1,6 @@
> >  /* SPDX-License-Identifier: GPL-2.0-only */
> >  /* Copyright (c) 2020 Pengutronix, Marc Kleine-Budde <kernel@pengutronix.de>
> > + * Copyright (c) 2021 Vincent Mailhol <mailhol.vincent@wanadoo.fr>
> >   */
> >
> >  #ifndef _CAN_BITTIMING_H
> > @@ -10,6 +11,70 @@
> >
> >  #define CAN_SYNC_SEG 1
> >
> > +/*
> > + * struct can_tdc - CAN FD Transmission Delay Compensation parameters
> > + *
> > + * At high bit rates, the propagation delay from the TX pin to the RX
> > + * pin of the transceiver causes measurement errors: the sample point
> > + * on the RX pin might occur on the previous bit.
> > + *
> > + * To solve this issue, ISO 11898-1 introduces in section 11.3.3
> > + * "Transmitter delay compensation" a SSP (Secondary Sample Point)
> > + * equal to the distance, in time quanta, from the start of the bit
> > + * time on the TX pin to the actual measurement on the RX pin.
> > + *
> > + * This structure contains the parameters to calculate that SSP.
> > + *
> > + * @tdcv: Transmitter Delay Compensation Value. Distance, in time
> > + *   quanta, from when the bit is sent on the TX pin to when it is
> > + *   received on the RX pin of the transmitter. Possible options:
> > + *
> > + *     O: automatic mode. The controller dynamically measure @tdcv
>           ^
>
> I think this is supposed to be a 0, not a O?
> I'll send a patch

Absolutely. I am not sure how I did such a mistake. I was
probably not fully awake as there are two other grammar issues
there. I sent another patch to fix those.

Yours sincerely,
Vincent

  reply	other threads:[~2021-06-16 12:44 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-24  0:20 [PATCH v2 0/5] Introducing new CAN FD bittiming parameters: Transmission Delay Compensation (TDC) Vincent Mailhol
2021-02-24  0:20 ` [PATCH v2 1/5] can: add new CAN FD bittiming parameters: Transmitter " Vincent Mailhol
2021-02-24  7:31   ` Marc Kleine-Budde
2021-03-09  8:30     ` Jimmy Assarsson
2021-03-09  8:34       ` Marc Kleine-Budde
2021-03-09  9:09         ` Jimmy Assarsson
2021-06-16  9:54   ` Marc Kleine-Budde
2021-06-16 12:44     ` Vincent MAILHOL [this message]
2021-02-24  0:20 ` [PATCH v2 2/5] can: dev: reorder struct can_priv members for better packing Vincent Mailhol
2021-02-24  0:20 ` [PATCH v2 3/5] can: netlink: move '=' operators back to previous line (checkpatch fix) Vincent Mailhol
2021-02-24  0:20 ` [PATCH v2 4/5] can: add netlink interface for CAN-FD Transmitter Delay Compensation (TDC) Vincent Mailhol
2021-03-09 13:16   ` Vincent MAILHOL
2021-03-09 13:19     ` Marc Kleine-Budde
2021-03-15 15:59   ` Marc Kleine-Budde
2021-03-16 15:16     ` Vincent MAILHOL
2021-03-16 15:29       ` Marc Kleine-Budde
2021-04-05  2:29         ` Vincent MAILHOL
2021-04-07  8:15           ` Marc Kleine-Budde
2021-02-24  0:20 ` [PATCH v2 5/5] can: bittiming: add calculation for CAN FD " Vincent Mailhol

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=CAMZ6RqKs4D2P9LnnWDGj-ThT3GLPdfnfU7TH8vx9XfqKZVZJUw@mail.gmail.com \
    --to=mailhol.vincent@wanadoo.fr \
    --cc=linux-can@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=socketcan@hartkopp.net \
    --cc=wg@grandegger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).