Illustration of MicroControl's modular protocol stack structure
Home > Products > Protocol Stacks > CANpie FD

CAN Driver Source Code - CANpie FD

The CAN driver CANpie FD (Controller Area Network Programming Interface Environment) offers a standardized programming interface for development of CAN-based applications.

The driver forms the basis for higher layer protocols (CANopen / J1939) and may be used for manufacturer-specific CAN communication between embedded systems. CANpie is avaliable for a wide range of microcontrollers (more than 150 at the moment). A variety of configuration options facilitates adjustment to individual target systems.

An outline of the CANpie FD project is available on GitHub.


  • Modular structure with versatile configuration options
  • Optimised to low resource requirements (ROM / RAM)
  • Wide range of supported CAN controllers
  • Support of standard frames (11-bit identifier) and extended frames (29-bit identifier)
  • Data exchange via interrupt or polling
  • Support of virtual mailboxes

Migration fromCANopen Classic to CANopen FD is possible at any time and only up to your entrepreneurial decision. Long-term efficiency of this new generation of protocol stacks is a standard feature and Industry 4.0 requirements are met at the same time.

Graphical representation of switching from CAN Classic to CAN FD

Ordering information

Order Number



50.10.079 Atmel AT90CAN32 / AT90CAN64 / AT90CAN128
50.10.011 Atmel AT89C51CC01 / AT89C51CC03
50.10.032 Atmel AT91SAM7X128 / AT91SAM7X256 / AT91SAM7X512
50.10.071 Atmel AT32UC3C family (AT32UC3Cx128C, AT32UC3Cx256C, AT32UC3Cx512C)
50.10.021 Freescale Coldfire (MCF523x / MCF528x)
50.10.023 Freescale XGATE (MC9S12XDP512)
50.10.016 Fujitsu 16LX family 340 (MB90F342 / MB90F347 / MB90F349)
50.10.017 Fujitsu 16LX family 385 (MB90F387)
50.10.024 Fujitsu 16LX family 495 (MB90F497 / MB90F498)
50.10.033 Fujitsu 16FX family 340 (MB96F347 / MB96F348)
50.10.002 Infineon C505
50.10.004 Infineon C16x family (C161 / C164 / C167)
50.10.030 Infineon XC16x family (XC161CS / XC164CS / XC167CI)
50.10.073 Infineon XMC4500 family (XMC4500 / XMC4502 / XMC4504)
50.10.074 Infineon TriCore AUDO MAX family (TC1791 / TC1793 / TC1798)
50.10.036 Linux Driver for Linux socketcan
50.10.083 Linux Driver for can4linux
50.10.012 Microchip PIC 18Fxx8x family (18F4680 / 18F6680 / 18F8680)
50.10.022 Microchip PIC 18Fx68x family (18F2682 / 18F2685 / 18F4682 / 18F4685)
50.10.034 Microchip dsPIC33F family (dsPIC33FJ64 / dsPIC33FJ128 / dsPIC33FJ256)
50.10.037 Microchip PIC 32MX family (PIC 32MX5xx / PIC32MX7xx)
50.10.008 NEC μPD70F32xx family (AFCAN)
50.10.059 NuMicro NUC140
50.10.072 NXP LPC176x family (LPC1764 / LPC1765 / LPC1766 / LPC1768 / LPC1769)
50.10.063 NXP LPC 177x / LPC178x family
50.10.062 NXP LPC 18xx family
50.10.015 NXP LPC21xx family (LPC2119 / LPC2129 / LPC2292)
50.10.005 NXP SJA1000
50.10.064 Renesas R8C/34W family
50.10.038 Silicon Labs C8051F04x family (C8051F040, C8051F041)
50.10.027 ST STR7 family (STR710 / STR712)
50.10.028 ST STR9 family (STR910 / STR911 / STR912)
50.10.065 ST STM32 family (STM32F103)
50.10.066 ST STM32 family (STM32F105/107)
50.10.067 ST STM32 family (STM32F2xx)
50.10.068 ST STM32 family (STM32F3xx)
50.10.069 ST STM32 family (STM32F4xx)
50.10.031 ST ST10 family (ST10F26x / ST10F27x)
50.10.025 TI TMS320LF24xx family
50.10.035 TI TMS320F28xx family
50.10.075 TI TMS320F2803x Piccolo family (F28030 / F28031 / F28032 / F28033 / F28034 / F28035)
50.10.058 TI Tiva TM4C123x family
50.10.076 TI Concerto F28M36x family
MicroControl auf Facebook MicroControl auf Twitter MicroControl Blog