CPU specific definitions for internal peripheral handling. More...
CPU specific definitions for internal peripheral handling.
Definition in file periph_cpu.h.
#include <stdint.h>#include <stdbool.h>#include "cpu.h"
 Include dependency graph for periph_cpu.h:Go to the source code of this file.
Data Structures | |
| struct | adc_conf_t | 
| ADC device configuration.  More... | |
| struct | pit_conf_t | 
| CPU specific timer PIT module configuration.  More... | |
| struct | i2c_conf_t | 
| I2C configuration structure.  More... | |
| struct | spi_conf_t | 
| SPI device configuration.  More... | |
| struct | uart_conf_t | 
| UART device configuration.  More... | |
Macros | |
| #define | GPIO_UNDEF (0xffff) | 
| Definition of a fitting UNDEF value.  | |
| #define | GPIO_PIN(x, y) (((x + 1) << 12) | (x << 6) | y) | 
| Define a CPU specific GPIO pin generator macro.  | |
| #define | CPUID_ADDR (&SIM->UIDMH) | 
| Starting offset of CPU_ID.  | |
| #define | CPUID_LEN (12U) | 
| Length of the CPU_ID in octets.  | |
| #define | GPIO_MODE(pu, pe, od, out) (pu | (pe << 1) | (od << 5) | (out << 7)) | 
| Generate GPIO mode bitfields.  More... | |
| #define | SPI_HWCS(x) (x) | 
| Define a CPU specific SPI hardware chip select line macro.  More... | |
| #define | SPI_HWCS_NUMOF (5) | 
| Kinetis CPUs have a maximum number of 5 hardware chip select lines.  | |
| #define | SPI_CS_UNDEF (GPIO_UNDEF) | 
| Define value for unused CS line.  | |
| #define | PERIPH_TIMER_PROVIDES_SET | 
| Prevent shared timer functions from being used.  | |
| #define | TIMER_CHANNEL_NUMOF 1 | 
| Only a single channel supported by the driver/hardware.  | |
| #define | ADC_AVG_NONE (0) | 
| Disable hardware averaging.  | |
| #define | ADC_AVG_MAX (ADC_SC3_AVGE_MASK | ADC_SC3_AVGS(3)) | 
| Maximum hardware averaging (32 samples)  | |
| #define | KINETIS_HAVE_PLL 1 | 
| Defined to 1 if the MCG in this Kinetis CPU has a PLL.  | |
Enumerations | |
| enum | {  PORT_A = 0 , PORT_B = 1 , PORT_C = 2 , PORT_D = 3 , PORT_E = 4 , PORT_F = 5 , PORT_G = 6 , GPIO_PORTS_NUMOF }  | 
| Available ports on the Kinetis family.  More... | |
| enum | uart_mode_t { UART_MODE_8N1 = 0 , UART_MODE_8E1 = (UART_C1_M_MASK | UART_C1_PE_MASK) , UART_MODE_8O1 = (UART_C1_M_MASK | UART_C1_PE_MASK | UART_C1_PT_MASK) } | 
| UART transmission modes.  More... | |
| enum | { TIMER_PIT } | 
| Possible timer module types.  More... | |
| enum | uart_type_t { KINETIS_UART , KINETIS_LPUART , STM32_USART , STM32_LPUART } | 
| UART hardware module types.  More... | |
Functions | |
| void | gpio_init_port (gpio_t pin, uint32_t pcr) | 
| CPU internal function for initializing PORTs.  More... | |
CPU specific gpio_t type definition | |
| #define | HAVE_GPIO_T | 
| typedef uint16_t | gpio_t | 
This CPU makes use of the following shared SPI functions | |
| #define | PERIPH_SPI_NEEDS_TRANSFER_BYTE 1 | 
| #define | PERIPH_SPI_NEEDS_TRANSFER_REG 1 | 
| #define | PERIPH_SPI_NEEDS_TRANSFER_REGS 1 | 
Kinetis power mode configuration | |
| #define | PM_NUM_MODES (4U) | 
| #define | PM_BLOCK(x) | 
| #define | PM_UNBLOCK(x) | 
| enum | { KINETIS_PM_LLS = 0 , KINETIS_PM_VLPS = 1 , KINETIS_PM_STOP = 2 , KINETIS_PM_WAIT = 3 } | 
Hardware timer type-specific device macros | |
| #define | TIMER_PIT_DEV(x) (TIMER_DEV(0 + (x))) | 
| Timers using PIT backend.  | |
RTT configuration | |
| #define | RTT_DEV (TIMER_LPTMR_DEV(0)) | 
| #define | RTT_MAX_VALUE (0x0000ffff) | 
| #define | RTT_CLOCK_FREQUENCY (32768U) /* in Hz */ | 
| #define | RTT_MAX_FREQUENCY (32768U) /* in Hz */ | 
| #define | RTT_MIN_FREQUENCY (1U) /* in Hz */ | 
| #define | RTT_FREQUENCY RTT_MAX_FREQUENCY | 
| #define GPIO_MODE | ( | pu, | |
| pe, | |||
| od, | |||
| out | |||
| ) | (pu | (pe << 1) | (od << 5) | (out << 7)) | 
Generate GPIO mode bitfields.
We use the following bits to encode the pin mode:
Definition at line 99 of file periph_cpu.h.
| #define SPI_HWCS | ( | x | ) | (x) | 
Define a CPU specific SPI hardware chip select line macro.
We simply map the 5 hardware channels to the numbers [0-4], this still allows us to differentiate between GPIP_PINs and SPI_HWSC lines.
Definition at line 107 of file periph_cpu.h.
| anonymous enum | 
Available ports on the Kinetis family.
Not all CPUs have the full number of ports, see your CPU data sheet for pinout.
| Enumerator | |
|---|---|
| PORT_A | port A  | 
| PORT_B | port B  | 
| PORT_C | port C  | 
| PORT_D | port D  | 
| PORT_E | port E  | 
| PORT_F | port F  | 
| PORT_G | port G  | 
| GPIO_PORTS_NUMOF | overall number of available ports  | 
Definition at line 237 of file periph_cpu.h.
| anonymous enum | 
| enum uart_mode_t | 
UART transmission modes.
| Enumerator | |
|---|---|
| UART_MODE_8N1 | 8 data bits, no parity, 1 stop bit  | 
| UART_MODE_8E1 | 8 data bits, even parity, 1 stop bit  | 
| UART_MODE_8O1 | 8 data bits, odd parity, 1 stop bit  | 
Definition at line 288 of file periph_cpu.h.
| enum uart_type_t | 
UART hardware module types.
Definition at line 533 of file periph_cpu.h.
| void gpio_init_port | ( | gpio_t | pin, | 
| uint32_t | pcr | ||
| ) | 
CPU internal function for initializing PORTs.
| [in] | pin | pin to initialize | 
| [in] | pcr | value for the PORT's PCR register |