All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Kleine-Budde <mkl@pengutronix.de>
To: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
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 11:54:10 +0200	[thread overview]
Message-ID: <20210616095410.lsvqnismp4uydrmh@pengutronix.de> (raw)
In-Reply-To: <20210224002008.4158-2-mailhol.vincent@wanadoo.fr>

[-- Attachment #1: Type: text/plain, Size: 3491 bytes --]

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

> + *	  for each transmited CAN FD frame.

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  parent reply	other threads:[~2021-06-16  9:54 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 [this message]
2021-06-16 12:44     ` Vincent MAILHOL
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=20210616095410.lsvqnismp4uydrmh@pengutronix.de \
    --to=mkl@pengutronix.de \
    --cc=linux-can@vger.kernel.org \
    --cc=mailhol.vincent@wanadoo.fr \
    --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 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.