mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-17 13:48:32 +03:00
78 lines
2.1 KiB
C
78 lines
2.1 KiB
C
#include "board.h"
|
|
#include "spi.h"
|
|
#include "pio.h"
|
|
#include "pmc.h"
|
|
#include "usart.h"
|
|
|
|
#define BUFFER_SIZE 20
|
|
|
|
/** Pins to configure for the application.*/
|
|
const Pin pins[] = { BOARD_PIN_USART_RXD,
|
|
BOARD_PIN_USART_TXD
|
|
// PIN_USART1_SCK,
|
|
// BOARD_PIN_USART_RTS,
|
|
// BOARD_PIN_USART_CTS,
|
|
// PINS_SPI,
|
|
// PIN_SPI_NPCS0_PA11
|
|
};
|
|
|
|
char Buffer[BUFFER_SIZE] = "Hello World";
|
|
/**
|
|
* \brief Configures USART in synchronous mode,8N1
|
|
* * \param mode 1 for master, 0 for slave
|
|
* */
|
|
static void _ConfigureUsart(uint32_t freq )
|
|
{
|
|
uint32_t mode;
|
|
/* MASTER; mode = US_MR_USART_MODE_NORMAL
|
|
| US_MR_USCLKS_MCK
|
|
| US_MR_CHMODE_NORMAL
|
|
| US_MR_CLKO
|
|
| US_MR_SYNC // FIXME: sync or not sync?
|
|
| US_MR_MSBF
|
|
| US_MR_CHRL_8_BIT
|
|
| US_MR_NBSTOP_1_BIT
|
|
| US_MR_PAR_NO ;
|
|
*/
|
|
|
|
|
|
// Slave mode:
|
|
mode = US_MR_USART_MODE_NORMAL
|
|
// | US_MR_USCLKS_SCK // we don't have serial clock, do we?
|
|
| US_MR_CHMODE_NORMAL
|
|
// | US_MR_SYNC
|
|
| US_MR_MSBF
|
|
| US_MR_CHRL_8_BIT
|
|
| US_MR_NBSTOP_1_BIT
|
|
| US_MR_PAR_NO;
|
|
|
|
/* Enable the peripheral clock in the PMC */
|
|
PMC_EnablePeripheral( BOARD_ID_USART ) ;
|
|
|
|
/* Configure the USART in the desired mode @USART_SPI_CLK bauds*/
|
|
USART_Configure( BOARD_USART_BASE, mode, freq, BOARD_MCK ) ;
|
|
|
|
/* enable USART1 interrupt */
|
|
// NVIC_EnableIRQ( USART1_IRQn ) ;
|
|
|
|
/* Enable receiver & transmitter */
|
|
USART_SetTransmitterEnabled( BOARD_USART_BASE, 1 ) ;
|
|
USART_SetReceiverEnabled( BOARD_USART_BASE, 1 ) ;
|
|
}
|
|
|
|
int main() {
|
|
/* Configure pins */
|
|
PIO_Configure( pins, PIO_LISTSIZE( pins ) ) ;
|
|
|
|
_ConfigureUsart( 1000000UL);
|
|
|
|
USART_WriteBuffer(BOARD_USART_BASE, Buffer, BUFFER_SIZE);
|
|
|
|
// FIXME: do we need to call USARTEnable?
|
|
|
|
|
|
// FIXME: do we need to call USARTDisable?
|
|
|
|
return 0;
|
|
}
|