Use the TLV320 with in-built I2S object to stream audio data from an SD Card and send it to the TLV320 CODEC for audio playback

Dependencies:   I2SSlave mbed TLV320

Revision:
1:9ea0cc2fa567
Parent:
0:3d6892f6384f
--- a/I2SSlave/I2SSlave.h	Fri Aug 05 10:07:47 2011 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/******************************************************
- * I2SSlave.h: I2S port abstraction library header file for NXP LPC1768
- *
- * Written by:
- * mbed Team     -   15th July 2011
- * Daniel Worrall
- *
- * History
- * version 1.31
-******************************************************/
-
-#include "mbed.h"
-#include "math.h"
-
-#ifndef __MBED_I2SSLAVE_H__
-#define __MBED_I2SSLAVE_H__
-
-/** I2S class defined on the LPC1768 port
- *
- */
-extern FunctionPointer akjnh3489v8ncv;
-class I2SSlave{
-
-    public:
-        //Constructor
-        /** Create an I2S object
-         *
-         * @param tx_sda Transmitter serial data line
-         * @param tx_ws Transmitter word select line
-         * @param clk Shared transmitter/receiver clock line
-         * @param rx_sda Receiver serial data line
-         * @param rx_ws Receiver word select line
-         */
-        I2SSlave(PinName tx_sda, PinName tx_ws, PinName clk, PinName rx_sda, PinName rx_ws);
-        /** Set the data transmission format
-         *
-         * @param bit Set the number of bits per write
-         * @param mode Set STEREO (0) or MONO (1) mode
-         */
-        void format(int bit, bool mode);
-        /** Write a buffer to the I2S port
-         *
-         * @param buffer Address of buffer to pass to I2S port
-         * @param from Start position in buffer to read from
-         * @param length Length of buffer (MUST not exceed 8 words, each 32 bits long)
-         *
-         * Note: sending 8 words to the TXFIFO will trigger an interrupt!
-         */
-        void write(int* buffer, int from,  int length);
-        /** Activate I2S port for data streaming 
-         *
-         * @param mode Mode to enable - NONE, TRANSMIT only, RECEIVE only, BOTH
-         * Enables tx/rx interrupts
-         */
-        void start(int mode);
-        /** Deactivate I2S port from data streaming 
-         *
-         * Disable all interrupts
-         */
-        void stop(void);
-        /** Load receive FIFO data into receiver buffer
-         *
-         */
-        void read(void);
-        /** Attach a void/void function or void/void static memeber function to an interrupt generated by the I2SxxFIFOs
-         *
-         * @param function Function to attach
-         *
-         * e.g. myI2sObject.attach(&myfunction);
-         * OR   myI2sObject.attach(&myClass::myStaticMemberFunction);
-         */
-        void attach(void(*fptr)(void)){
-            akjnh3489v8ncv.attach(fptr);
-        }
-        /** Attach a nonstatic void/void member function to an interrupt generated by the I2SxxFIFOs
-         *
-         * @param tptr Object pointer
-         * @param mptr Member function pointer
-         *
-         * e.g. myI2sObject.attach(&myObject, &myClass::myNonstaticMemberFunction); where myObject is an object of myClass
-         */
-        template<typename T>
-        void attach(T *tptr, void(T::*mptr)(void)){
-            akjnh3489v8ncv.attach(tptr, mptr);
-        }
-        /** Return contents of I2S status register
-         *
-         * @returns Content of I2SSTATE register
-         *
-         * bit0: receive/transmit interrupt active
-         * bit1: receive/transmit DMA request 1
-         * bit2: receive/transmit DMA request 2
-         * bit[11:8]: receive FIFO level
-         * bit[19:16]: transmit FIFO level
-         */
-        int status(void);
-        
-        //Receiver buffer
-        int rxBuffer[4];
-        //defines
-        #define STEREO  0
-        #define MONO    1
-        
-        #define I2SFIFO_EMPTY    0
-        #define I2SFIFO_FULL     8
-        
-        #define RAM_LENGTH  1024
-        #define RAM_LIMIT   (RAM_LENGTH - 1) 
-        #define PTR_MAX     ((RAM_LENGTH / 8) - 1)
-        
-        #define NONE        0
-        #define TRANSMIT    1
-        #define RECEIVE     2
-        #define BOTH        3
-
-    private:        
-        /** I2S intitalize function
-         *
-         * @param tx_sda Transmitter serial data line
-         * @param tx_ws Transmitter word select line
-         * @param clk Shared transmitter/receiver clock line
-         * @param rx_sda Receiver serial data line
-         * @param rx_ws Receiver word select line
-         * @return Returns 0 for successful initialisation, -1 for an error
-         */
-        int initialize_(PinName tx_sda, PinName tx_ws, PinName clk, PinName rx_sda, PinName rx_ws);
-        /** Set internal clock divide by rate
-         *
-         * @param divideBy Divide by 1, 2, 4 or 8
-         */
-        void setClocks_(int divideBy);
-        /** Set up the pins on the processor itself
-         *
-         * @param tx_sda Transmitter serial data line
-         * @param tx_ws Transmitter word select line
-         * @param clk Shared transmitter/receiver clock line
-         * @param rx_sda Receiver serial data line
-         * @param rx_ws Receiver word select line
-         */
-        void setPins_(PinName tx_sda, PinName tx_ws, PinName clk, PinName rx_sda, PinName rx_ws);
-        /** Set the data transmission format 
-         *
-         * @param bit Set the number of bits per write
-         * @param mode Set STEREO (0) or MONO (1) mode
-         */
-        void format_(int bit, bool mode);
-        /** Set slave mode
-         *
-         */
-        void modeConfig_(void);
-        /** Store PinName values
-         * 
-         * @param tx_sda Transmitter serial data line
-         * @param tx_ws Transmitter word select line
-         * @param clk Shared transmitter/receiver clock line
-         * @param rx_sda Receiver serial data line
-         * @param rx_ws Receiver word select line
-         */
-        void storePins_(PinName tx_sda, PinName tx_ws, PinName clk, PinName rx_sda, PinName rx_ws);
-        //variables
-        int bit_;
-        bool mode_;
-        PinName tx_sda_; 
-        PinName tx_ws_; 
-        PinName clk_;
-        PinName rx_sda_;
-        PinName rx_ws_;
-};
-
-#endif /*__MBED_I2S_H__*/
\ No newline at end of file