Robobo
ssc.c File Reference

Synchronous Serial Controller (SSC) driver for SAM. More...

#include <string.h>
#include "ssc.h"

Macros

#define SSC_WPKEY   SSC_WPMR_WPKEY(0x535343)
 

Functions

uint32_t ssc_set_clock_divider (Ssc *p_ssc, uint32_t ul_bitrate, uint32_t ul_mck)
 Set up clock. More...
 
void ssc_i2s_set_transmitter (Ssc *p_ssc, uint32_t ul_mode, uint32_t ul_cks, uint32_t ul_ch_mode, uint32_t ul_datlen)
 Setup for I2S transmitter. More...
 
void ssc_i2s_set_receiver (Ssc *p_ssc, uint32_t ul_mode, uint32_t ul_cks, uint32_t ul_ch_mode, uint32_t ul_datlen)
 Setup for I2S receiver. More...
 
void ssc_reset (Ssc *p_ssc)
 Reset SSC module. More...
 
void ssc_enable_rx (Ssc *p_ssc)
 Enable SSC receiver. More...
 
void ssc_disable_rx (Ssc *p_ssc)
 Disable SSC receiver. More...
 
void ssc_enable_tx (Ssc *p_ssc)
 Enable SSC Transmitter. More...
 
void ssc_disable_tx (Ssc *p_ssc)
 Disable SSC Transmitter. More...
 
void ssc_set_normal_mode (Ssc *p_ssc)
 Configure SSC to work in normal mode. More...
 
void ssc_set_loop_mode (Ssc *p_ssc)
 Configure SSC to work in loop mode. More...
 
void ssc_set_rx_stop_selection (Ssc *p_ssc, uint32_t ul_sel)
 Configure SSC receive stop selection. More...
 
void ssc_set_td_default_level (Ssc *p_ssc, uint32_t ul_level)
 Configure SSC default level driven on the TD pin while out of transmission. More...
 
void ssc_enable_tx_frame_sync_data (Ssc *p_ssc)
 The TD line is driven with the SSC_TSHR register value during the transmission of the Transmit Frame Sync Signal. More...
 
void ssc_disable_tx_frame_sync_data (Ssc *p_ssc)
 The TD line is driven with the default value during the Transmit Frame Sync signal. More...
 
void ssc_set_receiver (Ssc *p_ssc, clock_opt_t *p_rx_clk_opt, data_frame_opt_t *p_rx_data_frame)
 Configure SSC receiver clock mode and date frame configuration. More...
 
void ssc_set_transmitter (Ssc *p_ssc, clock_opt_t *p_tx_clk_opt, data_frame_opt_t *p_tx_data_frame)
 Configure SSC transmitter clock mode and date frame configuration. More...
 
void ssc_set_rx_compare (Ssc *p_ssc, uint32_t ul_id, uint32_t ul_value)
 Configure SSC Receive Compare Register. More...
 
uint32_t ssc_get_rx_compare (Ssc *p_ssc, uint32_t ul_id)
 Get SSC Receive Compare Register. More...
 
void ssc_enable_interrupt (Ssc *p_ssc, uint32_t ul_sources)
 Enable SSC interrupts. More...
 
void ssc_disable_interrupt (Ssc *p_ssc, uint32_t ul_sources)
 Disable SSC interrupts. More...
 
uint32_t ssc_get_interrupt_mask (Ssc *p_ssc)
 Read SSC interrupt mask. More...
 
uint32_t ssc_get_status (Ssc *p_ssc)
 Read SSC status. More...
 
uint32_t ssc_is_tx_ready (Ssc *p_ssc)
 Check if data has been loaded in SSC_THR and is waiting to be loaded in the Transmit Shift Register (TSR). More...
 
uint32_t ssc_is_tx_empty (Ssc *p_ssc)
 Check if the last data written in SSC_THR has been loaded in TSR and the last data loaded in TSR has been transmitted. More...
 
uint32_t ssc_is_rx_ready (Ssc *p_ssc)
 Check if data has been received and loaded in SSC_RHR. More...
 
uint32_t ssc_is_tx_enabled (Ssc *p_ssc)
 Check if transmitter is enabled. More...
 
uint32_t ssc_is_rx_enabled (Ssc *p_ssc)
 Check if receiver is enabled. More...
 
uint32_t ssc_write (Ssc *p_ssc, uint32_t ul_frame)
 Write to SSC Transmit Holding Register. Send data through SSC Data frame. More...
 
uint32_t ssc_read (Ssc *p_ssc, uint32_t *ul_data)
 Read from SSC Receive Holding Register. Read data that is received in SSC Data frame. More...
 
void ssc_write_sync_data (Ssc *p_ssc, uint32_t ul_frame)
 Write to SSC Transmit Synchronization Holding Register. Send data through SSC Synchronization frame. If there is sync data that needs to be transmitted, call this function first to send out the sync data, and then call the ssc_write() function to send out application data. More...
 
uint32_t ssc_read_sync_data (Ssc *p_ssc)
 Read from SSC Receive Synchronization Holding Register. Read data that is received in SSC Synchronization frame. When the sync data is actually used, after successfully reading the application data by calling ssc_read(), call this function, and the return sync data is useful. More...
 
void ssc_set_writeprotect (Ssc *p_ssc, uint32_t ul_enable)
 Enable or disable write protection of SSC registers. More...
 
uint32_t ssc_get_writeprotect_status (Ssc *p_ssc)
 Indicate write protect status. More...
 

Detailed Description

Synchronous Serial Controller (SSC) driver for SAM.

Copyright (c) 2011-2012 Atmel Corporation. All rights reserved.