Library to control and transfer data from NXP SGTL5000. As used on the Teensy Audio Shield. It uses DMA to transfer I2S FIFO data.

The Library now supports dual codecs. Allowing all 4 channels of the Teensy I2S interface to RX and TX data to separate SGTL5000 devices.

The ISR routines that handles pointer swaps for double buffering has been fully coded in assembler to reduce overhead and now takes < 800nS per FIFO transfer when using all 4 channels.

Support added for all typical sample rates and system Clock speeds of 96Mhz or 120Mhz.

Pause and Resume functions added to allow quick and simple suppression of IRQs and stream halting and restart. This required software triggered IRQ, in order to ensure accurate word sync control.

Revision:
7:d65476c153a4
Parent:
6:4ab5aaeaa064
Child:
8:9fdf8501d14b
--- a/sgtl5000.h	Sat Jul 01 10:20:45 2017 +0000
+++ b/sgtl5000.h	Wed Jul 05 17:30:08 2017 +0000
@@ -335,7 +335,7 @@
 
 
 private:
-    I2C mI2C;
+    I2C mI2C;                                                                   // Create I2C instance
     int i2c_addr;
 
     void init_i2s(void);                                                        // Configure I2S Default Settings