58 lines
1.9 KiB
ReStructuredText
58 lines
1.9 KiB
ReStructuredText
|
.. _external_module_cannectivity:
|
||
|
|
||
|
CANnectivity USB to CAN adapter firmware
|
||
|
########################################
|
||
|
|
||
|
Introduction
|
||
|
************
|
||
|
|
||
|
`CANnectivity`_ is an open source firmware for Universal Serial Bus (USB) to Controller Area Network
|
||
|
(CAN) adapters.
|
||
|
|
||
|
The firmware implements the Geschwister Schneider USB/CAN device protocol (often referred to as
|
||
|
"gs_usb"). This protocol is supported by the Linux kernel SocketCAN `gs_usb driver`_, by
|
||
|
`python-can`_, and by many other software packages.
|
||
|
|
||
|
The firmware, which is based on Zephyr RTOS, allows turning your favorite microcontroller
|
||
|
development board into a full-fledged USB to CAN adapter.
|
||
|
|
||
|
CANnectivity is licensed under the Apache-2.0 license.
|
||
|
|
||
|
Usage with Zephyr
|
||
|
*****************
|
||
|
|
||
|
The CANnectivity firmware repository is a Zephyr :ref:`module <modules>` which allows for reuse of
|
||
|
its components (i.e. the "gs_usb" protocol implementation) outside of the CANnectivity firmware
|
||
|
application.
|
||
|
|
||
|
To pull in CANnectivity as a Zephyr module, either add it as a West project in the ``west.yaml``
|
||
|
file or pull it in by adding a submanifest (e.g. ``zephyr/submanifests/cannectivity.yaml``) file
|
||
|
with the following content and run ``west update``:
|
||
|
|
||
|
.. code-block:: yaml
|
||
|
|
||
|
manifest:
|
||
|
projects:
|
||
|
- name: cannectivity
|
||
|
url: https://github.com/CANnectivity/cannectivity.git
|
||
|
revision: main
|
||
|
path: custom/cannectivity # adjust the path as needed
|
||
|
|
||
|
Once CANnectivity is added as a Zephyr module, the "gs_usb" implementation can be reused outside of
|
||
|
the CANnectivity firmware application by including its header:
|
||
|
|
||
|
.. code-block:: c
|
||
|
|
||
|
#include <cannectivity/usb/class/gs_usb.h>
|
||
|
|
||
|
Please see the header file for the API details.
|
||
|
|
||
|
.. _CANnectivity:
|
||
|
https://github.com/CANnectivity/cannectivity
|
||
|
|
||
|
.. _gs_usb driver:
|
||
|
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/can/usb/gs_usb.c
|
||
|
|
||
|
.. _python-can:
|
||
|
https://python-can.readthedocs.io/en/stable/interfaces/gs_usb.html
|