mirror of https://github.com/ARMmbed/mbed-os.git
MUX corrections, Arduino Analog signals
- added new MUX options to all drivers - removal of LED which are not there - analog arduino R3 signals were switchedpull/82/head
parent
2ca3195b17
commit
b83fd7fb3b
|
|
@ -193,13 +193,10 @@ typedef enum {
|
|||
|
||||
LED_RED = PTE29,
|
||||
LED_GREEN = PTD5,
|
||||
LED_BLUE = PTD5,
|
||||
|
||||
// mbed original LED naming
|
||||
LED1 = LED_GREEN,
|
||||
LED2 = LED_RED,
|
||||
LED3 = LED_GREEN,
|
||||
LED4 = LED_RED,
|
||||
|
||||
// USB Pins
|
||||
USBTX = PTA2,
|
||||
|
|
@ -223,18 +220,18 @@ typedef enum {
|
|||
D14 = PTE0,
|
||||
D15 = PTE1,
|
||||
|
||||
A0 = PTC1,
|
||||
A1 = PTC2,
|
||||
A2 = PTB3,
|
||||
A3 = PTB2,
|
||||
A4 = PTB1,
|
||||
A5 = PTB0,
|
||||
A0 = PTB0,
|
||||
A1 = PTB1,
|
||||
A2 = PTB2,
|
||||
A3 = PTB3,
|
||||
A4 = PTC2,
|
||||
A5 = PTC1,
|
||||
|
||||
// Not connected
|
||||
NC = (int)0xFFFFFFFF
|
||||
} PinName;
|
||||
|
||||
/* PullDown not available for KL25 */
|
||||
/* PullDown not available for KL46 */
|
||||
typedef enum {
|
||||
PullNone = 0,
|
||||
PullUp = 2,
|
||||
|
|
|
|||
|
|
@ -20,29 +20,29 @@
|
|||
#include "error.h"
|
||||
|
||||
static const PinMap PinMap_PWM[] = {
|
||||
// LEDs
|
||||
{LED_RED , PWM_9 , 3}, // PTB18, TPM2 CH0
|
||||
{LED_GREEN, PWM_10, 3}, // PTB19, TPM2 CH1
|
||||
{LED_BLUE , PWM_2 , 4}, // PTD1 , TPM0 CH1
|
||||
// LEDs - only RED pin is PWM capable
|
||||
{LED_RED, PWM_3, 3}, // PTE29, TPM0 CH2
|
||||
|
||||
// Arduino digital pinout
|
||||
{D0, PWM_9 , 3}, // PTA1 , TPM2 CH0
|
||||
{D1, PWM_10, 3}, // PTA2 , TPM2 CH1
|
||||
{D2, PWM_5 , 4}, // PTD4 , TPM0 CH4
|
||||
{D2, PWM_4 , 4}, // PTD3 , TPM0 CH3
|
||||
{D3, PWM_7 , 3}, // PTA12, TPM1 CH0
|
||||
{D4, PWM_2 , 3}, // PTA4 , TPM0 CH1
|
||||
{D5, PWM_3 , 3}, // PTA5 , TPM0 CH2
|
||||
{D6, PWM_5 , 3}, // PTC8 , TPM0 CH4
|
||||
{D7, PWM_6 , 3}, // PTC9 , TPM0 CH5
|
||||
{D8, PWM_8 , 3}, // PTA13, TPM1 CH1
|
||||
{D9, PWM_6 , 4}, // PTD5 , TPM0 CH5
|
||||
{D10, PWM_1 , 4}, // PTD0 , TPM0 CH0
|
||||
{D11, PWM_3 , 4}, // PTD2 , TPM0 CH2
|
||||
{D12, PWM_4 , 4}, // PTD3 , TPM0 CH3
|
||||
{D13, PWM_2 , 4}, // PTD1 , TPM0 CH1,
|
||||
{D9, PWM_3 , 4}, // PTD2 , TPM0 CH2
|
||||
{D10, PWM_5 , 4}, // PTD4 , TPM0 CH4
|
||||
//PWM on D11 not available
|
||||
//PWM on D12 not available
|
||||
{D13, PWM_2 , 4}, // PTD5 , TPM0 CH1,
|
||||
|
||||
{PTA0, PWM_6, 3},
|
||||
{PTA3, PWM_1, 3},
|
||||
{PTA6, PWM_4, 3},
|
||||
{PTA7, PWM_5, 3},
|
||||
{PTB0, PWM_7, 3},
|
||||
{PTB1, PWM_8, 3},
|
||||
{PTB2, PWM_9, 3},
|
||||
|
|
@ -57,6 +57,7 @@ static const PinMap PinMap_PWM[] = {
|
|||
{PTE23, PWM_10, 3},
|
||||
{PTE24, PWM_1, 3},
|
||||
{PTE25, PWM_2, 3},
|
||||
{PTE26, PWM_6, 3},
|
||||
{PTE29, PWM_3, 3},
|
||||
{PTE30, PWM_4, 3},
|
||||
{PTE31, PWM_5, 3},
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ static void init(void) {
|
|||
|
||||
/*
|
||||
* configure PTC1 with alternate function 1: RTC_CLKIN
|
||||
* As the kl25z board does not have a 32kHz osc,
|
||||
* As the KL46Z board does not have a 32kHz osc,
|
||||
* we use an external clock generated by the
|
||||
* interface chip
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -28,26 +28,30 @@
|
|||
* INITIALIZATION
|
||||
******************************************************************************/
|
||||
static const PinMap PinMap_UART_TX[] = {
|
||||
{PTC4, UART_1, 3},
|
||||
{PTA2, UART_0, 2},
|
||||
{PTD5, UART_2, 3},
|
||||
{PTA14, UART_0, 3}
|
||||
{PTC4, UART_1, 3},
|
||||
{PTD3, UART_2, 3},
|
||||
{PTD5, UART_2, 3},
|
||||
{PTD7, UART_0, 3},
|
||||
{PTE0, UART_1, 3},
|
||||
{PTE16, UART_2, 3},
|
||||
{PTE20, UART_0, 4},
|
||||
{PTE22, UART_2, 4},
|
||||
{PTE0, UART_1, 3},
|
||||
{NC , NC , 0}
|
||||
};
|
||||
|
||||
static const PinMap PinMap_UART_RX[] = {
|
||||
{PTC3, UART_1, 3},
|
||||
{PTA1, UART_0, 2},
|
||||
{PTD4, UART_2, 3},
|
||||
{PTA15, UART_0, 3},
|
||||
{PTC3, UART_1, 3},
|
||||
{PTD2, UART_2, 3},
|
||||
{PTD4, UART_2, 3},
|
||||
{PTD6, UART_0, 3},
|
||||
{PTE23, UART_2, 4},
|
||||
{PTE21, UART_0, 4},
|
||||
{PTE1, UART_1, 3},
|
||||
{PTE17, UART_2, 3},
|
||||
{PTE21, UART_0, 4},
|
||||
{PTE23, UART_2, 4},
|
||||
{NC , NC , 0}
|
||||
};
|
||||
|
||||
|
|
@ -77,7 +81,7 @@ void serial_init(serial_t *obj, PinName tx, PinName rx) {
|
|||
}
|
||||
// Disable UART before changing registers
|
||||
obj->uart->C2 &= ~(UART_C2_RE_MASK | UART_C2_TE_MASK);
|
||||
|
||||
|
||||
switch (uart) {
|
||||
case UART_0: obj->index = 0; break;
|
||||
case UART_1: obj->index = 1; break;
|
||||
|
|
@ -122,13 +126,13 @@ void serial_free(serial_t *obj) {
|
|||
// DivAddVal < MulVal
|
||||
//
|
||||
void serial_baud(serial_t *obj, int baudrate) {
|
||||
|
||||
|
||||
// save C2 state
|
||||
uint8_t c2_state = (obj->uart->C2 & (UART_C2_RE_MASK | UART_C2_TE_MASK));
|
||||
|
||||
|
||||
// Disable UART before changing registers
|
||||
obj->uart->C2 &= ~(UART_C2_RE_MASK | UART_C2_TE_MASK);
|
||||
|
||||
|
||||
// [TODO] not hardcode this value
|
||||
uint32_t PCLK = (obj->uart == UART0) ? 48000000u : 24000000u;
|
||||
|
||||
|
|
@ -143,20 +147,20 @@ void serial_baud(serial_t *obj, int baudrate) {
|
|||
// set BDH and BDL
|
||||
obj->uart->BDH = (obj->uart->BDH & ~(0x1f)) | ((DL >> 8) & 0x1f);
|
||||
obj->uart->BDL = (obj->uart->BDL & ~(0xff)) | ((DL >> 0) & 0xff);
|
||||
|
||||
|
||||
// restore C2 state
|
||||
obj->uart->C2 |= c2_state;
|
||||
}
|
||||
|
||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
|
||||
uint8_t m10 = 0;
|
||||
|
||||
|
||||
// save C2 state
|
||||
uint8_t c2_state = (obj->uart->C2 & (UART_C2_RE_MASK | UART_C2_TE_MASK));
|
||||
|
||||
|
||||
// Disable UART before changing registers
|
||||
obj->uart->C2 &= ~(UART_C2_RE_MASK | UART_C2_TE_MASK);
|
||||
|
||||
|
||||
// 8 data bits = 0 ... 9 data bits = 1
|
||||
if ((data_bits < 8) || (data_bits > 9)) {
|
||||
error("Invalid number of bits (%d) in serial format, should be 8..9\r\n", data_bits);
|
||||
|
|
@ -178,7 +182,7 @@ void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_b
|
|||
error("Invalid stop bits specified\r\n");
|
||||
}
|
||||
stop_bits -= 1;
|
||||
|
||||
|
||||
// 9 data bits + parity
|
||||
if (data_bits == 2) {
|
||||
// only uart0 supports 10 bit communication
|
||||
|
|
@ -193,17 +197,17 @@ void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_b
|
|||
obj->uart->C1 = ((data_bits << 4)
|
||||
| (parity_enable << 1)
|
||||
| (parity_select << 0));
|
||||
|
||||
|
||||
// enable 10bit mode if needed
|
||||
if (obj->index == 0) {
|
||||
obj->uart->C4 &= ~UARTLP_C4_M10_MASK;
|
||||
obj->uart->C4 |= (m10 << UARTLP_C4_M10_SHIFT);
|
||||
}
|
||||
|
||||
|
||||
// stop bits
|
||||
obj->uart->BDH &= ~UART_BDH_SBNS_MASK;
|
||||
obj->uart->BDH |= (stop_bits << UART_BDH_SBNS_SHIFT);
|
||||
|
||||
|
||||
// restore C2 state
|
||||
obj->uart->C2 |= c2_state;
|
||||
}
|
||||
|
|
@ -304,7 +308,7 @@ void serial_pinout_tx(PinName tx) {
|
|||
}
|
||||
|
||||
void serial_break_set(serial_t *obj) {
|
||||
obj->uart->C2 |= UART_C2_SBK_MASK;
|
||||
obj->uart->C2 |= UART_C2_SBK_MASK;
|
||||
}
|
||||
|
||||
void serial_break_clear(serial_t *obj) {
|
||||
|
|
|
|||
|
|
@ -23,11 +23,13 @@
|
|||
|
||||
static const PinMap PinMap_SPI_SCLK[] = {
|
||||
{PTA15, SPI_0, 2},
|
||||
{PTB9, SPI_1, 2},
|
||||
{PTB11, SPI_1, 2},
|
||||
{PTC5, SPI_0, 2},
|
||||
{PTD1, SPI_0, 2},
|
||||
{PTD5, SPI_1, 2},
|
||||
{PTE2, SPI_1, 2},
|
||||
{PTE17, SPI_0, 2},
|
||||
{NC , NC , 0}
|
||||
};
|
||||
|
||||
|
|
@ -44,6 +46,8 @@ static const PinMap PinMap_SPI_MOSI[] = {
|
|||
{PTD7, SPI_1, 5},
|
||||
{PTE1, SPI_1, 2},
|
||||
{PTE3, SPI_1, 5},
|
||||
{PTE18, SPI_0, 2},
|
||||
{PTE19, SPI_0, 5},
|
||||
{NC , NC , 0}
|
||||
};
|
||||
|
||||
|
|
@ -60,6 +64,8 @@ static const PinMap PinMap_SPI_MISO[] = {
|
|||
{PTD7, SPI_1, 2},
|
||||
{PTE1, SPI_1, 5},
|
||||
{PTE3, SPI_1, 2},
|
||||
{PTE18, SPI_0, 5},
|
||||
{PTE19, SPI_0, 2},
|
||||
{NC , NC , 0}
|
||||
};
|
||||
|
||||
|
|
@ -70,6 +76,7 @@ static const PinMap PinMap_SPI_SSEL[] = {
|
|||
{PTD0, SPI_0, 2},
|
||||
{PTD4, SPI_1, 2},
|
||||
{PTE4, SPI_1, 2},
|
||||
{PTE16, SPI_0, 2},
|
||||
{NC , NC , 0}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue