#define HAS_USB 1
#define HAS_BEEP 0
#define HAS_SERIAL_1 1
+ #define HAS_SERIAL_1_ALT_1 1
+ #define HAS_SERIAL_1_ALT_2 0
+ #define HAS_SERIAL_1_HW_FLOW 1
#define USE_SERIAL_STDIN 1
#define HAS_ADC 0
#define HAS_DBG 1
void
ao_serial_init(void)
{
+#if HAS_SERIAL_1_ALT_1
+ /* Set up the USART pin assignment */
+ PERCFG = (PERCFG & ~PERCFG_U1CFG_ALT_MASK) | PERCFG_U1CFG_ALT_1;
+
+ P2DIR = (P2DIR & ~P2DIR_PRIP0_MASK) | P2DIR_PRIP0_USART1_USART0;
+
+ /* Make the USART pins be controlled by the USART */
+ P0SEL |= (1 << 5) | (1 << 4);
+#if HAS_SERIAL_1_HW_FLOW
+ P0SEL |= (1 << 3) | (1 << 2);
+#endif
+#else
/* Set up the USART pin assignment */
PERCFG = (PERCFG & ~PERCFG_U1CFG_ALT_MASK) | PERCFG_U1CFG_ALT_2;
/* Make the USART pins be controlled by the USART */
P1SEL |= (1 << 6) | (1 << 7);
+ P1SEL |= (1 << 5) | (1 << 4);
+#endif
/* UART mode with receiver enabled */
U1CSR = (UxCSR_MODE_UART | UxCSR_RE);
/* Reasonable serial parameters */
U1UCR = (UxUCR_FLUSH |
+#if HAS_SERIAL_1_HW_FLOW
+ UxUCR_FLOW_ENABLE |
+#else
UxUCR_FLOW_DISABLE |
+#endif
UxUCR_D9_EVEN_PARITY |
UxUCR_BIT9_8_BITS |
UxUCR_PARITY_DISABLE |
sfr at 0xFE P1DIR;
sfr at 0xFF P2DIR;
+#define P2DIR_PRIP0_USART0_USART1 (0 << 6)
+#define P2DIR_PRIP0_USART1_USART0 (1 << 6)
+#define P2DIR_PRIP0_TIMER1_01_USART1 (2 << 6)
+#define P2DIR_PRIP0_TIMER1_2_USART0 (3 << 6)
+#define P2DIR_PRIP0_MASK (3 << 6)
+
sfr at 0x8F P0INP;
/* Select between tri-state and pull up/down