spi_example.c File Reference


Detailed Description

SPI example application for AVR32 USART driver.

Author:
Atmel Corporation: http://www.atmel.com
Support and FAQ: http://support.atmel.no/

Definition in file spi_example.c.

#include <avr32/io.h>
#include "compiler.h"
#include "board.h"
#include "pm.h"
#include "gpio.h"
#include "usart.h"

Go to the source code of this file.

Defines

USART Settings
#define EXAMPLE_USART   (&AVR32_USART1)
#define EXAMPLE_USART_RX_FUNCTION   AVR32_USART1_RXD_0_0_FUNCTION
#define EXAMPLE_USART_RX_PIN   AVR32_USART1_RXD_0_0_PIN
#define EXAMPLE_USART_SPI   (&AVR32_USART2)
#define EXAMPLE_USART_SPI_MISO_FUNCTION   AVR32_USART2_RXD_0_0_FUNCTION
#define EXAMPLE_USART_SPI_MISO_PIN   AVR32_USART2_RXD_0_0_PIN
#define EXAMPLE_USART_SPI_MOSI_FUNCTION   AVR32_USART2_TXD_0_0_FUNCTION
#define EXAMPLE_USART_SPI_MOSI_PIN   AVR32_USART2_TXD_0_0_PIN
#define EXAMPLE_USART_SPI_NSS_FUNCTION   AVR32_USART2_RTS_0_FUNCTION
#define EXAMPLE_USART_SPI_NSS_PIN   AVR32_USART2_RTS_0_PIN
#define EXAMPLE_USART_SPI_SCK_FUNCTION   AVR32_USART2_CLK_0_FUNCTION
#define EXAMPLE_USART_SPI_SCK_PIN   AVR32_USART2_CLK_0_PIN
#define EXAMPLE_USART_TX_FUNCTION   AVR32_USART1_TXD_0_0_FUNCTION
#define EXAMPLE_USART_TX_PIN   AVR32_USART1_TXD_0_0_PIN

Functions

int main (void)
 This is an example demonstrating the SPI mode of USART IP functionalities using the USART driver.


Define Documentation

#define EXAMPLE_USART   (&AVR32_USART1)

Definition at line 115 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_RX_FUNCTION   AVR32_USART1_RXD_0_0_FUNCTION

Definition at line 117 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_RX_PIN   AVR32_USART1_RXD_0_0_PIN

Definition at line 116 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI   (&AVR32_USART2)

Definition at line 120 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_MISO_FUNCTION   AVR32_USART2_RXD_0_0_FUNCTION

Definition at line 124 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_MISO_PIN   AVR32_USART2_RXD_0_0_PIN

Definition at line 123 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_MOSI_FUNCTION   AVR32_USART2_TXD_0_0_FUNCTION

Definition at line 126 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_MOSI_PIN   AVR32_USART2_TXD_0_0_PIN

Definition at line 125 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_NSS_FUNCTION   AVR32_USART2_RTS_0_FUNCTION

Definition at line 128 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_NSS_PIN   AVR32_USART2_RTS_0_PIN

Definition at line 127 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_SCK_FUNCTION   AVR32_USART2_CLK_0_FUNCTION

Definition at line 122 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_SPI_SCK_PIN   AVR32_USART2_CLK_0_PIN

Definition at line 121 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_TX_FUNCTION   AVR32_USART1_TXD_0_0_FUNCTION

Definition at line 119 of file spi_example.c.

Referenced by main().

#define EXAMPLE_USART_TX_PIN   AVR32_USART1_TXD_0_0_PIN

Definition at line 118 of file spi_example.c.

Referenced by main().


Function Documentation

int main ( void   ) 

This is an example demonstrating the SPI mode of USART IP functionalities using the USART driver.

Definition at line 136 of file spi_example.c.

References EXAMPLE_USART, EXAMPLE_USART_RX_FUNCTION, EXAMPLE_USART_RX_PIN, EXAMPLE_USART_SPI, EXAMPLE_USART_SPI_MISO_FUNCTION, EXAMPLE_USART_SPI_MISO_PIN, EXAMPLE_USART_SPI_MOSI_FUNCTION, EXAMPLE_USART_SPI_MOSI_PIN, EXAMPLE_USART_SPI_NSS_FUNCTION, EXAMPLE_USART_SPI_NSS_PIN, EXAMPLE_USART_SPI_SCK_FUNCTION, EXAMPLE_USART_SPI_SCK_PIN, EXAMPLE_USART_TX_FUNCTION, EXAMPLE_USART_TX_PIN, USART_1_STOPBIT, USART_FAILURE, usart_get_echo_line(), usart_init_rs232(), USART_NO_PARITY, USART_NORMAL_CHMODE, usart_putchar(), and usart_write_line().

00137 {
00138   static const gpio_map_t USART_GPIO_MAP =
00139   {
00140     {EXAMPLE_USART_RX_PIN, EXAMPLE_USART_RX_FUNCTION},
00141     {EXAMPLE_USART_TX_PIN, EXAMPLE_USART_TX_FUNCTION}
00142   };
00143 
00144   static const gpio_map_t USART_SPI_GPIO_MAP =
00145   {
00146     {EXAMPLE_USART_SPI_SCK_PIN,  EXAMPLE_USART_SPI_SCK_FUNCTION },
00147     {EXAMPLE_USART_SPI_MISO_PIN, EXAMPLE_USART_SPI_MISO_FUNCTION},
00148     {EXAMPLE_USART_SPI_MOSI_PIN, EXAMPLE_USART_SPI_MOSI_FUNCTION},
00149     {EXAMPLE_USART_SPI_NSS_PIN,  EXAMPLE_USART_SPI_NSS_FUNCTION }
00150   };
00151 
00152   // USART options.
00153   static const usart_options_t USART_OPTIONS =
00154   {
00155     .baudrate     = 57600,
00156     .charlength   = 8,
00157     .paritytype   = USART_NO_PARITY,
00158     .stopbits     = USART_1_STOPBIT,
00159     .channelmode  = USART_NORMAL_CHMODE
00160   };
00161 
00162   // USART SPI options.
00163   static const usart_spi_options_t USART_SPI_OPTIONS =
00164   {
00165     .baudrate     = 60000,
00166     .charlength   = 8,
00167     .spimode      = 0,
00168     .channelmode  = USART_NORMAL_CHMODE
00169   };
00170 
00171   // Switch main clock to external oscillator 0 (crystal).
00172   pm_switch_to_osc0(&AVR32_PM, FOSC0, OSC0_STARTUP);
00173 
00174   // Assign GPIO to USART.
00175   gpio_enable_module(USART_GPIO_MAP,
00176                      sizeof(USART_GPIO_MAP) / sizeof(USART_GPIO_MAP[0]));
00177 
00178   // Assign GPIO to SPI.
00179   gpio_enable_module(USART_SPI_GPIO_MAP,
00180                      sizeof(USART_SPI_GPIO_MAP) / sizeof(USART_SPI_GPIO_MAP[0]));
00181 
00182   // Initialize USART in RS232 mode.
00183   usart_init_rs232(EXAMPLE_USART, &USART_OPTIONS, FOSC0);
00184 
00185   // Initialize USART in SPI mode.
00186   usart_init_spi_master(EXAMPLE_USART_SPI, &USART_SPI_OPTIONS, FOSC0);
00187 
00188   // Launch SPI write pattern!
00189   usart_write_line(EXAMPLE_USART, "Basic write in USART SPI Mode (press enter)\n");
00190 
00191   // Press enter to continue.
00192   while (usart_get_echo_line(EXAMPLE_USART) == USART_FAILURE);  // Get and echo characters until end of line.
00193 
00194   while (TRUE)
00195   {
00196     usart_spi_selectChip(EXAMPLE_USART_SPI);
00197     usart_putchar(EXAMPLE_USART_SPI, 0x55);
00198     usart_putchar(EXAMPLE_USART_SPI, 0xAA);
00199     usart_spi_unselectChip(EXAMPLE_USART_SPI);
00200   }
00201 }


Generated on Fri Feb 19 02:27:13 2010 for AVR32 - USART Driver - SPI Example by  doxygen 1.5.5