Arm Keil MDK v6 Essential and Professional editions are now available to buy as monthly or annual subscriptions from our Developer Tools store. Visit the store to get access to the tools suite today!

  1. Packs
  2. SAMD09_DFP

Overview

The Microchip SAMD09 Series Device Family Pack (DFP) is a CMSIS-Pack that:

Related packs

    - pack: ARM::CMSIS

Devices

ATSAMD09C13A

The low-power, high-performance Microchip's ATSAMD09C13 ARM® Cortex®-M0+ based flash microcontroller is ideal for a wide range of home automation, consumer, metering and industrial applications. It features:8KB of flash memory and 4KB of SRAMUp to 48MHz operating frequencyTwo serial communication modules (SERCOM) configurable as UART/USART, SPI or I2C, two 16-bit timer/counters, 32-bit Real-Time Clock and calendar, one 5-channel 12-bit ADC2.4V to 3.63V power supplyEasy pin migration to SAMD10C devicesSupported by Atmel Studio, ASFSupported by MPLAB X IDE and MPLAB Harmony.

Documentation:

Application Notes:

Additional Documents:

ATSAMD09D14A

The low-power Microchip's ATSAMD09D14 ARM® Cortex®-M0+ based Flash microcontroller is ideal for a wide range of home automation, consumer, metering and industrial applications. It features:16KB of Flash memory and 4KB of SRAMUp to 48MHz operating frequencyTwo serial communication modules (SERCOM) configurable as UART/USART, SPI or I2C, two 16-bit timer/counters, 32-bit Real-Time Clock and calendar, and one 10-channel 12-bit ADC2.4V to 3.63V power supplyEasy pin migration to Microchip's SAMD10D devicesSupport from Atmel Studio, ASFSupported by MPLAB X IDE and MPLAB Harmony.

Documentation:

Application Notes:

Additional Documents:

MISRA-C:2023 Compliance Deviations List

Deviation ID: MFWCG-40

  • Rule 5.5: Identifiers shall be distinct from macro names.
  • Use case: Identifiers corresponding to register names.

Example:

```C typedef union { struct { uint32_t GPIO:29; uint32_t :3; } vec; uint32_t reg; } ECIA_SRC8_Type;

#define GPIO (0x40081000) ```

  • Reason: Access to hardware.

The macros expand into the same identifiers, which allow users to detect for the presence of specific registers during preprocessing.

  • Scope: Device headers for the DEC15xx and MEC15xx family (<device-name>.h).

Deviation ID: MFWCG-42

  • Rule 20.9: All identifiers used in the controlling expression of #if or #elif preprocessing directives shall be #define'd before evaluation.
  • Use case: Use of compiler builtin macros.

Example:

C #ifdef (__ARM_FP == 14) || (__ARM_FP == 4) fpu_enable(); #endif

  • Reason: Access to hardware.

Headers may rely on builtin macros from the compiler and are written under the assumption that if the macro is not defined, its value is zero.

  • Scope: All device headers (<device-name>.h).

Deviation ID: MFWCG-43

  • Rule 21.1: #define and #undef shall not be used on a reserved identifier or reserved macro name.
  • Use case: Reserved names, beginning with _ followed by a capital letter or __ followed by a lower-case are within the compiler's namespace.

Example:

C #define __IO volatile

  • Reason: Access to hardware; Code Quality (Usability: Accessibility).

Within these headers originate many reserved names that are within the compiler's namespace.

  • Scope: All device headers (<device-name>.h).

Deviation ID: MFWCG-44

  • Rule 21.2: A reserved identifier or reserved macro name shall not be declared.
  • Use case: Reserved names, beginning with _ followed by a capital letter or __ followed by a lower-case are within the compiler's namespace.

Example:

C extern const VECTOR_TABLE_Type __VECTOR_TABLE;

  • Reason: Access to hardware; Code Quality (Usability: Accessibility).

Within these headers originate many reserved names that are within the compiler's namespace.

  • Scope: All device headers (<device-name>.h).

Support

For support questions, contact Microchip Support through https://www.microchip.com/en-us/support.