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
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
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
00172 pm_switch_to_osc0(&AVR32_PM, FOSC0, OSC0_STARTUP);
00173
00174
00175 gpio_enable_module(USART_GPIO_MAP,
00176 sizeof(USART_GPIO_MAP) / sizeof(USART_GPIO_MAP[0]));
00177
00178
00179 gpio_enable_module(USART_SPI_GPIO_MAP,
00180 sizeof(USART_SPI_GPIO_MAP) / sizeof(USART_SPI_GPIO_MAP[0]));
00181
00182
00183 usart_init_rs232(EXAMPLE_USART, &USART_OPTIONS, FOSC0);
00184
00185
00186 usart_init_spi_master(EXAMPLE_USART_SPI, &USART_SPI_OPTIONS, FOSC0);
00187
00188
00189 usart_write_line(EXAMPLE_USART, "Basic write in USART SPI Mode (press enter)\n");
00190
00191
00192 while (usart_get_echo_line(EXAMPLE_USART) == USART_FAILURE);
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 }