Microchip® Advanced Software Framework

ssc.c File Reference

Synchronous Serial Controller (SSC) driver for SAM.

Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.

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

Macros

#define SSC_TCMR_START_TF_EDGE   SSC_TCMR_START_RF_EDGE
 
#define SSC_TCMR_START_TF_FALLING   SSC_TCMR_START_RF_FALLING
 
#define SSC_TCMR_START_TF_RISING   SSC_TCMR_START_RF_RISING
 
#define SSC_WPMR_WPKEY_PASSWD   SSC_WPMR_WPKEY(0x535343)
 

Functions

void ssc_disable_interrupt (Ssc *p_ssc, uint32_t ul_sources)
 Disable SSC interrupts. More...
 
void ssc_disable_rx (Ssc *p_ssc)
 Disable SSC receiver. More...
 
void ssc_disable_tx (Ssc *p_ssc)
 Disable SSC Transmitter. 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_enable_interrupt (Ssc *p_ssc, uint32_t ul_sources)
 Enable SSC interrupts. More...
 
void ssc_enable_rx (Ssc *p_ssc)
 Enable SSC receiver. More...
 
void ssc_enable_tx (Ssc *p_ssc)
 Enable SSC Transmitter. 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...
 
uint32_t ssc_get_interrupt_mask (Ssc *p_ssc)
 Read SSC interrupt mask. More...
 
uint32_t ssc_get_rx_compare (Ssc *p_ssc, uint32_t ul_id)
 Get SSC Receive Compare Register. More...
 
uint32_t ssc_get_status (Ssc *p_ssc)
 Read SSC status. More...
 
uint32_t ssc_get_writeprotect_status (Ssc *p_ssc)
 Indicate write protect status. 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_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...
 
uint32_t ssc_is_rx_enabled (Ssc *p_ssc)
 Check if receiver is enabled. 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_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_tx_enabled (Ssc *p_ssc)
 Check if transmitter is enabled. 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_read (Ssc *p_ssc, uint32_t *ul_data)
 Read from SSC Receive Holding Register. More...
 
uint32_t ssc_read_sync_data (Ssc *p_ssc)
 Read from SSC Receive Synchronization Holding Register. More...
 
void ssc_reset (Ssc *p_ssc)
 Reset SSC module. More...
 
uint32_t ssc_set_clock_divider (Ssc *p_ssc, uint32_t ul_bitrate, uint32_t ul_mck)
 Set up clock. More...
 
void ssc_set_loop_mode (Ssc *p_ssc)
 Configure SSC to work in loop mode. More...
 
void ssc_set_normal_mode (Ssc *p_ssc)
 Configure SSC to work in normal mode. 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_rx_compare (Ssc *p_ssc, uint32_t ul_id, uint32_t ul_value)
 Configure SSC Receive Compare Register. 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_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_writeprotect (Ssc *p_ssc, uint32_t ul_enable)
 Enable or disable write protection of SSC registers. More...
 
uint32_t ssc_write (Ssc *p_ssc, uint32_t ul_frame)
 Write to SSC Transmit Holding Register. More...
 
void ssc_write_sync_data (Ssc *p_ssc, uint32_t ul_frame)
 Write to SSC Transmit Synchronization Holding Register. More...