mirror of
https://github.com/drasko/open-ameba.git
synced 2024-12-28 00:55:19 +00:00
215 lines
4.6 KiB
C
215 lines
4.6 KiB
C
|
|
#ifndef _PINNAMES_H_
|
|
#define _PINNAMES_H_
|
|
|
|
#include "cmsis.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
PORT_A = 0,
|
|
PORT_B = 1,
|
|
PORT_C = 2,
|
|
PORT_D = 3,
|
|
PORT_E = 4,
|
|
PORT_F = 5,
|
|
PORT_G = 6,
|
|
PORT_H = 7,
|
|
PORT_I = 8,
|
|
PORT_J = 9,
|
|
PORT_K = 10,
|
|
|
|
PORT_V = 11,
|
|
PORT_U = 12,
|
|
PORT_MAX
|
|
} GPIO_PORT;
|
|
|
|
#define RTL_PIN_PERI(FUN, IDX, SEL) ((int)(((FUN) << 8) | ((IDX)<<4) | (SEL)))
|
|
#define RTL_PIN_FUNC(FUN, SEL) ((int)(((FUN) << 7) | (SEL)))
|
|
#define RTL_GET_PERI_SEL(peri) ((int)((peri)&0x0F))
|
|
#define RTL_GET_PERI_IDX(peri) ((int)(((peri) >> 4)&0x0F))
|
|
|
|
typedef enum {
|
|
PIN_INPUT=0,
|
|
PIN_OUTPUT
|
|
} PinDirection;
|
|
|
|
typedef enum {
|
|
PA_0 = (PORT_A<<4|0),
|
|
PA_1 = (PORT_A<<4|1),
|
|
PA_2 = (PORT_A<<4|2),
|
|
PA_3 = (PORT_A<<4|3),
|
|
PA_4 = (PORT_A<<4|4),
|
|
PA_5 = (PORT_A<<4|5),
|
|
PA_6 = (PORT_A<<4|6),
|
|
PA_7 = (PORT_A<<4|7),
|
|
|
|
PB_0 = (PORT_B<<4|0),
|
|
PB_1 = (PORT_B<<4|1),
|
|
PB_2 = (PORT_B<<4|2),
|
|
PB_3 = (PORT_B<<4|3),
|
|
PB_4 = (PORT_B<<4|4),
|
|
PB_5 = (PORT_B<<4|5),
|
|
PB_6 = (PORT_B<<4|6),
|
|
PB_7 = (PORT_B<<4|7),
|
|
|
|
PC_0 = (PORT_C<<4|0),
|
|
PC_1 = (PORT_C<<4|1),
|
|
PC_2 = (PORT_C<<4|2),
|
|
PC_3 = (PORT_C<<4|3),
|
|
PC_4 = (PORT_C<<4|4),
|
|
PC_5 = (PORT_C<<4|5),
|
|
PC_6 = (PORT_C<<4|6),
|
|
PC_7 = (PORT_C<<4|7),
|
|
PC_8 = (PORT_C<<4|8),
|
|
PC_9 = (PORT_C<<4|9),
|
|
|
|
PD_0 = (PORT_D<<4|0),
|
|
PD_1 = (PORT_D<<4|1),
|
|
PD_2 = (PORT_D<<4|2),
|
|
PD_3 = (PORT_D<<4|3),
|
|
PD_4 = (PORT_D<<4|4),
|
|
PD_5 = (PORT_D<<4|5),
|
|
PD_6 = (PORT_D<<4|6),
|
|
PD_7 = (PORT_D<<4|7),
|
|
PD_8 = (PORT_D<<4|8),
|
|
PD_9 = (PORT_D<<4|9),
|
|
|
|
PE_0 = (PORT_E<<4|0),
|
|
PE_1 = (PORT_E<<4|1),
|
|
PE_2 = (PORT_E<<4|2),
|
|
PE_3 = (PORT_E<<4|3),
|
|
PE_4 = (PORT_E<<4|4),
|
|
PE_5 = (PORT_E<<4|5),
|
|
PE_6 = (PORT_E<<4|6),
|
|
PE_7 = (PORT_E<<4|7),
|
|
PE_8 = (PORT_E<<4|8),
|
|
PE_9 = (PORT_E<<4|9),
|
|
PE_A = (PORT_E<<4|10),
|
|
|
|
PF_0 = (PORT_F<<4|0),
|
|
PF_1 = (PORT_F<<4|1),
|
|
PF_2 = (PORT_F<<4|2),
|
|
PF_3 = (PORT_F<<4|3),
|
|
PF_4 = (PORT_F<<4|4),
|
|
PF_5 = (PORT_F<<4|5),
|
|
// PF_6 = (PORT_F<<4|6),
|
|
// PF_7 = (PORT_F<<4|7),
|
|
|
|
PG_0 = (PORT_G<<4|0),
|
|
PG_1 = (PORT_G<<4|1),
|
|
PG_2 = (PORT_G<<4|2),
|
|
PG_3 = (PORT_G<<4|3),
|
|
PG_4 = (PORT_G<<4|4),
|
|
PG_5 = (PORT_G<<4|5),
|
|
PG_6 = (PORT_G<<4|6),
|
|
PG_7 = (PORT_G<<4|7),
|
|
|
|
PH_0 = (PORT_H<<4|0),
|
|
PH_1 = (PORT_H<<4|1),
|
|
PH_2 = (PORT_H<<4|2),
|
|
PH_3 = (PORT_H<<4|3),
|
|
PH_4 = (PORT_H<<4|4),
|
|
PH_5 = (PORT_H<<4|5),
|
|
PH_6 = (PORT_H<<4|6),
|
|
PH_7 = (PORT_H<<4|7),
|
|
|
|
PI_0 = (PORT_I<<4|0),
|
|
PI_1 = (PORT_I<<4|1),
|
|
PI_2 = (PORT_I<<4|2),
|
|
PI_3 = (PORT_I<<4|3),
|
|
PI_4 = (PORT_I<<4|4),
|
|
PI_5 = (PORT_I<<4|5),
|
|
PI_6 = (PORT_I<<4|6),
|
|
PI_7 = (PORT_I<<4|7),
|
|
|
|
PJ_0 = (PORT_J<<4|0),
|
|
PJ_1 = (PORT_J<<4|1),
|
|
PJ_2 = (PORT_J<<4|2),
|
|
PJ_3 = (PORT_J<<4|3),
|
|
PJ_4 = (PORT_J<<4|4),
|
|
PJ_5 = (PORT_J<<4|5),
|
|
PJ_6 = (PORT_J<<4|6),
|
|
// PJ_7 = (PORT_J<<4|7),
|
|
|
|
PK_0 = (PORT_K<<4|0),
|
|
PK_1 = (PORT_K<<4|1),
|
|
PK_2 = (PORT_K<<4|2),
|
|
PK_3 = (PORT_K<<4|3),
|
|
PK_4 = (PORT_K<<4|4),
|
|
PK_5 = (PORT_K<<4|5),
|
|
PK_6 = (PORT_K<<4|6),
|
|
// PK_7 = (PORT_K<<4|7),
|
|
|
|
AD_1 = (PORT_V<<4|1),
|
|
AD_2 = (PORT_V<<4|2),
|
|
AD_3 = (PORT_V<<4|3),
|
|
|
|
DA_0 = (PORT_U<<4|0),
|
|
DA_1 = (PORT_U<<4|1),
|
|
// Arduino connector namings
|
|
/*
|
|
A0 = PA_0,
|
|
A1 = PA_1,
|
|
A2 = PA_4,
|
|
A3 = PB_0,
|
|
A4 = PC_1,
|
|
A5 = PC_0,
|
|
D0 = PA_3,
|
|
D1 = PA_2,
|
|
D2 = PA_10,
|
|
D3 = PB_3,
|
|
D4 = PB_5,
|
|
D5 = PB_4,
|
|
D6 = PB_10,
|
|
D7 = PA_8,
|
|
D8 = PA_9,
|
|
D9 = PC_7,
|
|
D10 = PB_6,
|
|
D11 = PA_7,
|
|
D12 = PA_6,
|
|
D13 = PA_5,
|
|
D14 = PB_9,
|
|
D15 = PB_8,
|
|
*/
|
|
|
|
// Generic signals namings
|
|
LED1 = PB_4,
|
|
LED2 = PB_5,
|
|
LED3 = PB_6,
|
|
LED4 = PB_7,
|
|
USER_BUTTON = PA_3,
|
|
SERIAL_TX = PA_7,
|
|
SERIAL_RX = PA_6,
|
|
USBTX = PA_7,
|
|
USBRX = PA_6,
|
|
I2C_SCL = PC_5,
|
|
I2C_SDA = PC_4,
|
|
SPI_MOSI = PC_2,
|
|
SPI_MISO = PC_3,
|
|
SPI_SCK = PC_1,
|
|
SPI_CS = PC_0,
|
|
PWM_OUT = PD_4,
|
|
|
|
// Not connected
|
|
NC = (uint32_t)0xFFFFFFFF
|
|
} PinName;
|
|
|
|
typedef enum {
|
|
PullNone = 0,
|
|
PullUp = 1,
|
|
PullDown = 2,
|
|
OpenDrain = 3,
|
|
PullDefault = PullNone
|
|
} PinMode;
|
|
|
|
#define PORT_NUM(pin) (((uint32_t)(pin) >> 4) & 0xF)
|
|
#define PIN_NUM(pin) ((uint32_t)(pin) & 0xF)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|