New platform: TI cc2530 Development Kit
This commits adds support for TI's SmartRF05 Eval. Board with cc2530 EMs Some initial support for cc2531 USB dongles
This commit is contained in:
parent
b7674c3636
commit
ad256e5014
68 changed files with 6824 additions and 0 deletions
75
cpu/cc253x/dev/uart0.c
Normal file
75
cpu/cc253x/dev/uart0.c
Normal file
|
@ -0,0 +1,75 @@
|
|||
/**
|
||||
* \file
|
||||
*
|
||||
* uart0 write routines
|
||||
*
|
||||
* \author
|
||||
*
|
||||
* Anthony "Asterisk" Ambuehl
|
||||
*
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cc253x.h"
|
||||
#include "sfr-bits.h"
|
||||
#include "dev/uart0.h"
|
||||
|
||||
#if UART0_ENABLE
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
uart0_init()
|
||||
{
|
||||
#if UART0_CONF_HIGH_SPEED
|
||||
UART_SET_SPEED(0, UART_460_M, UART_460_E);
|
||||
#else
|
||||
UART_SET_SPEED(0, UART_115_M, UART_115_E);
|
||||
#endif
|
||||
|
||||
#ifdef UART0_ALTERNATIVE_2
|
||||
PERCFG |= PERCFG_U0CFG; / *alternative port 2 = P1.5-2 */
|
||||
#ifdef UART0_RTSCTS
|
||||
P1SEL |= 0x3C; /* peripheral select for TX and RX, RTS, CTS */
|
||||
#else
|
||||
P1SEL |= 0x30; /* peripheral select for TX and RX */
|
||||
P1 &= ~0x08; /* RTS down */
|
||||
#endif
|
||||
P1DIR |= 0x28; /* RTS, TX out */
|
||||
P1DIR &= ~0x14; /* CTS & RX in */
|
||||
#else
|
||||
PERCFG &= ~PERCFG_U0CFG; /* alternative port 1 = P0.5-2 */
|
||||
#ifdef UART0_RTSCTS
|
||||
P0SEL |= 0x20 | 0x10; /* peripheral select for TX and RX */
|
||||
#else
|
||||
P0SEL |= 0x0C; /* peripheral select for TX and RX */
|
||||
P0 &= ~0x20; /* RTS down */
|
||||
#endif
|
||||
P0DIR |= 0x28; /* RTS, TX out */
|
||||
P0DIR &= ~0x14; /* CTS, RX in */
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef UART0_RTSCTS
|
||||
U0UCR = 0x42; /*defaults: 8N1, RTS/CTS, high stop bit*/
|
||||
#else
|
||||
U0UCR = 0x02; /*defaults: 8N1, no flow control, high stop bit*/
|
||||
#endif
|
||||
|
||||
U0CSR = UCSR_MODE; /* UART mode */
|
||||
U0UCR = 0x80; /* Flush */
|
||||
UART0_RX_EN();
|
||||
|
||||
UART0_RX_INT(1);
|
||||
U0DBUF = 0;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Write one byte over the UART. */
|
||||
void
|
||||
uart0_writeb(uint8_t byte)
|
||||
{
|
||||
UTX0IF = 0;
|
||||
U0DBUF = byte;
|
||||
while(!UTX0IF); /* Wait until byte has been transmitted. */
|
||||
UTX0IF = 0;
|
||||
}
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue