diff options
| author | Keith Packard <keithp@keithp.com> | 2011-05-06 20:33:58 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-05-06 20:35:03 -0700 | 
| commit | 19bfa3882a2d95fcade256c2d63ad24f794281e5 (patch) | |
| tree | 0bd2916b878c9be08056033950e8944ff88950fb | |
| parent | d9cc27641fe1778c098b065bf110be7823e6c9f4 (diff) | |
altos: Use USART configuration 1 with flow control for TBT
It's just wired that way.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | src/ao_pins.h | 3 | ||||
| -rw-r--r-- | src/ao_serial.c | 18 | ||||
| -rw-r--r-- | src/cc1111.h | 6 | 
3 files changed, 27 insertions, 0 deletions
| diff --git a/src/ao_pins.h b/src/ao_pins.h index bc9bdcb9..4c31f755 100644 --- a/src/ao_pins.h +++ b/src/ao_pins.h @@ -248,6 +248,9 @@  	#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 diff --git a/src/ao_serial.c b/src/ao_serial.c index 9c0b798d..2e7dad7b 100644 --- a/src/ao_serial.c +++ b/src/ao_serial.c @@ -127,6 +127,18 @@ ao_serial_set_speed(uint8_t speed)  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; @@ -135,6 +147,8 @@ ao_serial_init(void)  	/* 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); @@ -144,7 +158,11 @@ ao_serial_init(void)  	/* 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 | diff --git a/src/cc1111.h b/src/cc1111.h index a07490e5..5b018cb5 100644 --- a/src/cc1111.h +++ b/src/cc1111.h @@ -589,6 +589,12 @@ sfr at 0xFD P0DIR;  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 | 
