Skip to content

[MKC-1815] CAN Learn Article Revision #2147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Sep 5, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 1 addition & 31 deletions content/learn/05.communication/10.can/can.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,28 +19,6 @@ Controller Area Network (CAN), is a robust and versatile communication protocol

Communication via CAN is enabled through different CAN libraries and is dependent on the hardware used for the setup. This article will mainly focus on the [Arduino_CAN](https://github.com/arduino/ArduinoCore-renesas/tree/main/libraries/Arduino_CAN) library and its available methods with references to different hardware and respective libraries.

If you want to jump straight to the examples click [here](#examples) or go to the end of this article.

## Overview

- [CAN Class](#can-class)
- [Arduino CAN Pins](#arduino-can-pins)
- [How CAN Works](#how-can-works)
- [Shared Bus and Absence of a Central Master Node](#shared-bus-and-absence-of-a-central-master-node)
- [Differential Signaling](#differential-signaling)
- [Practical Example: CAN in Automotive Systems](#practical-example-can-in-automotive-systems)
- [CAN Frame Structure](#can-frame-structure)
- [Standard and Extended CAN IDs](#standard-and-extended-can-ids)
- [Timing and Synchronization](#timing-and-synchronization)
- [Termination Resistors](#termination-resistors)
- [History of CAN](#history-of-can)
- [Development and Standards](#development-and-standards)
- [Origin and Purpose](#origin-and-purpose)
- [Timeline of Standards](#timeline-of-standards)
- [Examples](#examples)
- [Arduino UNO R4 WiFi CAN Bus](#arduino-uno-r4-wifi-can-bus)
- [Sending Data Between Two MKR CAN Shields](#sending-data-between-two-mkr-can-shields)

## CAN Class

With the CAN class, you can send and receive data over a Controller Area Network (CAN) bus, enabling communication between an Arduino board and other devices in a networked environment.
Expand All @@ -61,15 +39,7 @@ These methods provide the core functionality for sending and receiving messages

## Arduino CAN Pins

The default pins on an Arduino board are CAN High and CAN Low. See table below for more information:

***Depending on which Arduino board you are using, you will need a transceiver/receiver to read the differential signal properly. Check the product page of the board you are using for more information.***

| Board / Shield | CAN0_RX | CAN0_TX | CAN1_RX | CAN1_TX |
| -------------- | --------- | --------- | ------- | ------- |
| UNO R4 | D13 | D10 | | |
| DUE | D68 | D69 | D66 | D53 |
| MKR CAN Shield | dedicated | dedicated | | |
***Depending on which Arduino board you are using, you will need a transceiver/receiver to read the differential signal properly. Check the product page or cheat sheet of the board you are using for more information.***

## Technical Specifications

Expand Down