LPCOpen Platform  v1.03
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
LPC17xx/40xx I2S example

Detailed Description

Example description
The I2S example shows how to configure I2S and UDA1380 to receive audio signal and play back with three modes: polling, interrupt, and DMA.

To use the example, connect a serial cable to the board's RS232/UART port and start a terminal program to monitor the port. The terminal program on the host PC should be setup for 115K8N1.
Connect the computer line out to board line-in (using 3.5mm male-to-male cable), plug the headphone/speaker into board line-out. Change modes by selecting the option from the terminal. Play audio on computer and listen from target board!

Special connection requirements
There are no special connection requirements for this example.

Build procedures:
LPC17xx/40xx example quickstart for Keil uVision4
LPC17xx/40xx example quickstart for IAR EWARM
LPC17xx/40xx example quickstart for Code Red Xpresso

Supported boards and board setup:
Embedded Artists' LPC1788 Developer's Kit
Embedded Artists' LPC4088 Developer's Kit

Submitting LPCOpen issues:
Community support for LPCOpen

Data Structures

struct  Ring_Buffer_t
 

Macros

#define BUFFER_FULL   0
 
#define BUFFER_EMPTY   1
 
#define BUFFER_AVAILABLE   2
 

Functions

static void mute_toggle ()
 
static uint8_t ring_buff_get_status (Ring_Buffer_t *ring_buff)
 
static void App_Interrupt_Test (void)
 
static void App_Polling_Test (void)
 
static void App_DMA_Test (void)
 
void DMA_IRQHandler (void)
 DMA interrupt handler sub-routine.
 
void I2S_IRQHandler (void)
 I2S interrupt handler sub-routine.
 
int main (void)
 Main routine for I2S example.
 

Variables

static char WelcomeMenu []
 
static Ring_Buffer_t ring_buffer
 
static uint8_t send_flag
 
static uint8_t channelTC
 
static uint8_t dmaChannelNum_I2S_Tx
 
static uint8_t dmaChannelNum_I2S_Rx
 
static uint8_t dma_send_receive
 
uint8_t mute_status = 0
 

Macro Definition Documentation

#define BUFFER_AVAILABLE   2

Definition at line 71 of file i2s.c.

#define BUFFER_EMPTY   1

Definition at line 70 of file i2s.c.

#define BUFFER_FULL   0

Definition at line 69 of file i2s.c.

Function Documentation

static void App_DMA_Test ( void  )
static

Definition at line 193 of file i2s.c.

static void App_Interrupt_Test ( void  )
static

Definition at line 129 of file i2s.c.

static void App_Polling_Test ( void  )
static

Definition at line 159 of file i2s.c.

void DMA_IRQHandler ( void  )

DMA interrupt handler sub-routine.

Returns
Nothing

Definition at line 249 of file i2s.c.

void I2S_IRQHandler ( void  )

I2S interrupt handler sub-routine.

Returns
Nothing

Definition at line 273 of file i2s.c.

int main ( void  )

Main routine for I2S example.

Main program body.

Returns
Nothing

Definition at line 287 of file i2s.c.

static void mute_toggle ( )
static

Definition at line 104 of file i2s.c.

static uint8_t ring_buff_get_status ( Ring_Buffer_t ring_buff)
static

Definition at line 117 of file i2s.c.

Variable Documentation

uint8_t channelTC
static

Definition at line 90 of file i2s.c.

uint8_t dma_send_receive
static

Definition at line 92 of file i2s.c.

uint8_t dmaChannelNum_I2S_Rx
static

Definition at line 91 of file i2s.c.

uint8_t dmaChannelNum_I2S_Tx
static

Definition at line 91 of file i2s.c.

uint8_t mute_status = 0

Definition at line 102 of file i2s.c.

Ring_Buffer_t ring_buffer
static

Definition at line 87 of file i2s.c.

uint8_t send_flag
static

Definition at line 89 of file i2s.c.

char WelcomeMenu[]
static
Initial value:
= "\n\rHello NXP Semiconductors \n\r"
"I2S DEMO : Connect audio headphone out from computer to line-in on tested board to get audio signal\n\r"
"Please press \'1\' to test Polling mode\n\r"
"Please press \'2\' to test Interrupt mode\n\r"
"Please press \'3\' to test DMA mode\n\r"
"Please press \'x\' to exit test mode\n\r"
"Please press \'m\' to DISABLE/ENABLE mute\n\r"

Definition at line 79 of file i2s.c.