summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2020-08-20 11:08:00 -0500
committerJeff Epler <jepler@gmail.com>2020-09-21 16:44:26 -0500
commita2e1867f69ec2d703a9651e5c36a02b0e14dfd9c (patch)
treed114916bc977fce546d3b6a5aaca3f925971bf86 /py
parente7a213a11420ed362dfb672cd0fa6e77c032fa07 (diff)
_canio: Minimal implementation for SAM E5x MCUs
Tested & working: * Send standard packets * Receive standard packets (1 FIFO, no filter) Interoperation between SAM E54 Xplained running this tree and MicroPython running on STM32F405 Feather with an external transceiver was also tested. Many other aspects of a full implementation are not yet present, such as error detection and recovery.
Diffstat (limited to 'py')
-rw-r--r--py/circuitpy_defns.mk9
-rw-r--r--py/circuitpy_mpconfig.h8
-rw-r--r--py/circuitpy_mpconfig.mk3
3 files changed, 20 insertions, 0 deletions
diff --git a/py/circuitpy_defns.mk b/py/circuitpy_defns.mk
index 6e98af868..2614dc011 100644
--- a/py/circuitpy_defns.mk
+++ b/py/circuitpy_defns.mk
@@ -142,6 +142,9 @@ endif
ifeq ($(CIRCUITPY_CAMERA),1)
SRC_PATTERNS += camera/%
endif
+ifeq ($(CIRCUITPY_CANIO),1)
+SRC_PATTERNS += _canio/%
+endif
ifeq ($(CIRCUITPY_COUNTIO),1)
SRC_PATTERNS += countio/%
endif
@@ -315,6 +318,9 @@ SRC_COMMON_HAL_ALL = \
busio/__init__.c \
camera/__init__.c \
camera/Camera.c \
+ _canio/CAN.c \
+ _canio/Listener.c \
+ _canio/__init__.c \
countio/Counter.c \
countio/__init__.c \
digitalio/DigitalInOut.c \
@@ -384,6 +390,7 @@ $(filter $(SRC_PATTERNS), \
_bleio/Address.c \
_bleio/Attribute.c \
_bleio/ScanEntry.c \
+ _canio/Match.c \
_eve/__init__.c \
camera/ImageFormat.c \
digitalio/Direction.c \
@@ -402,6 +409,8 @@ SRC_SHARED_MODULE_ALL = \
_bleio/Attribute.c \
_bleio/ScanEntry.c \
_bleio/ScanResults.c \
+ _canio/Match.c \
+ _canio/Message.c \
_eve/__init__.c \
_pixelbuf/PixelBuf.c \
_pixelbuf/__init__.c \
diff --git a/py/circuitpy_mpconfig.h b/py/circuitpy_mpconfig.h
index 4272de2ec..d1b12f354 100644
--- a/py/circuitpy_mpconfig.h
+++ b/py/circuitpy_mpconfig.h
@@ -336,6 +336,13 @@ extern const struct _mp_obj_module_t camera_module;
#define CAMERA_MODULE
#endif
+#if CIRCUITPY_CANIO
+extern const struct _mp_obj_module_t canio_module;
+#define CANIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR__canio), (mp_obj_t)&canio_module },
+#else
+#define CANIO_MODULE
+#endif
+
#if CIRCUITPY_COUNTIO
extern const struct _mp_obj_module_t countio_module;
#define COUNTIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_countio), (mp_obj_t)&countio_module },
@@ -766,6 +773,7 @@ extern const struct _mp_obj_module_t wifi_module;
BOARD_MODULE \
BUSIO_MODULE \
CAMERA_MODULE \
+ CANIO_MODULE \
COUNTIO_MODULE \
DIGITALIO_MODULE \
DISPLAYIO_MODULE \
diff --git a/py/circuitpy_mpconfig.mk b/py/circuitpy_mpconfig.mk
index 54bdefc6d..9b9bd83b4 100644
--- a/py/circuitpy_mpconfig.mk
+++ b/py/circuitpy_mpconfig.mk
@@ -93,6 +93,9 @@ CFLAGS += -DCIRCUITPY_BUSIO=$(CIRCUITPY_BUSIO)
CIRCUITPY_CAMERA ?= 0
CFLAGS += -DCIRCUITPY_CAMERA=$(CIRCUITPY_CAMERA)
+CIRCUITPY_CANIO ?= 0
+CFLAGS += -DCIRCUITPY_CANIO=$(CIRCUITPY_CANIO)
+
CIRCUITPY_DIGITALIO ?= 1
CFLAGS += -DCIRCUITPY_DIGITALIO=$(CIRCUITPY_DIGITALIO)