old demo that i want to try in mbed studio
Dependencies: mbed SDFileSystem_Copy_of_mbed_version I2S
wm8731_Config_setup.cpp
00001 #include "WOLFSON_config_consts.h" 00002 #include "mbed.h" 00003 I2C i2c(p9, p10); 00004 00005 void wm8731_Config_setup(void) 00006 { 00007 i2c.frequency(100000); 00008 int addr = WM8731_REG_RESET; 00009 int cmd = _WM8731_RESET; 00010 addr = addr << 1; 00011 addr = addr|((cmd >> 8 ))& 0x01;//mess around with order of operations 00012 cmd = cmd&0xFF; 00013 i2c.start(); 00014 i2c.write( WM8731_ADDRESS ); 00015 i2c.write( addr ); 00016 i2c.write( cmd ); 00017 i2c.stop(); 00018 00019 addr = WM8731_REG_LLINE_IN; 00020 cmd = _WM8731_LEFT_LINEIN; 00021 addr = addr << 1; 00022 addr = addr|((cmd >> 8 )) & 0x01; 00023 cmd = cmd&0xFF; 00024 i2c.start(); 00025 i2c.write( WM8731_ADDRESS );//take Fergus' suggestion and declare these to known values EARLIER in program 00026 i2c.write( addr ); 00027 i2c.write( cmd ); 00028 i2c.stop(); 00029 00030 00031 addr = WM8731_REG_RLINE_IN; 00032 cmd = _WM8731_RIGHT_LINEIN; 00033 addr = addr << 1; 00034 addr = addr|((cmd >> 8 )) & 0x01; 00035 cmd = cmd&0xFF; 00036 i2c.start(); 00037 i2c.write( WM8731_ADDRESS );//take Fergus' suggestion and declare these to known values EARLIER in program 00038 i2c.write( addr ); 00039 i2c.write( cmd ); 00040 i2c.stop(); 00041 00042 00043 //4 00044 addr = WM8731_REG_LHPHONE_OUT; 00045 cmd = _WM8731_LEFT_HP; 00046 addr = addr << 1; 00047 addr = addr|((cmd >> 8 )) & 0x01; 00048 cmd = cmd&0xFF; 00049 i2c.start(); 00050 i2c.write( WM8731_ADDRESS ); 00051 i2c.write( addr );//WM8731_REG_LHPHONE_OUT, _WM8731_LEFT_HP 00052 i2c.write(cmd); 00053 i2c.stop(); 00054 00055 //5 00056 addr = WM8731_REG_RHPHONE_OUT; 00057 cmd = _WM8731_RIGHT_HP; 00058 addr = addr << 1; 00059 addr = addr|((cmd >> 8 )) & 0x01; 00060 cmd = cmd&0xFF; 00061 i2c.start(); 00062 i2c.write( WM8731_ADDRESS );//WM8731_REG_RHPHONE_OUT, _WM8731_RIGHT_HP 00063 i2c.write( addr ); 00064 i2c.write( cmd ); 00065 i2c.stop(); 00066 00067 00068 //6 00069 addr = WM8731_REG_ANALOG_PATH; 00070 cmd = _WM8731_ANALOGAUDIO; 00071 addr = addr << 1; 00072 addr = addr|((cmd >> 8 )) & 0x01; 00073 cmd = cmd&0xFF; 00074 i2c.start(); 00075 i2c.write( WM8731_ADDRESS );//WM8731_REG_ANALOG_PATH, _WM8731_ANALOGAUDIO 00076 i2c.write( addr ); 00077 i2c.write( cmd ); 00078 i2c.stop(); 00079 00080 //7 00081 addr = WM8731_REG_DIGITAL_PATH; 00082 cmd = _WM8731_DIGITALAUDIO; 00083 addr = addr << 1; 00084 addr = addr|((cmd >> 8 )) & 0x01; 00085 cmd = cmd&0xFF; 00086 i2c.start(); 00087 i2c.write( WM8731_ADDRESS );//WM8731_REG_DIGITAL_PATH, _WM8731_DIGITALAUDIO 00088 i2c.write( addr ); 00089 i2c.write( cmd ); 00090 i2c.stop(); 00091 00092 //8 00093 addr = WM8731_REG_PDOWN_CTRL; 00094 cmd = _WM8731_POWER; 00095 addr = addr << 1; 00096 addr = addr|((cmd >> 8 )) & 0x01; 00097 cmd = cmd&0xFF; 00098 i2c.start(); 00099 i2c.write( WM8731_ADDRESS );//WM8731_REG_PDOWN_CTRL, _WM8731_POWER) 00100 i2c.write( addr ); 00101 i2c.write( cmd ); 00102 i2c.stop(); 00103 00104 00105 //9 00106 addr = WM8731_REG_DIGITAL_IF; 00107 cmd = _WM8731_DAIF; 00108 addr = addr << 1; 00109 addr = addr|((cmd >> 8 )) & 0x01; 00110 cmd = cmd&0xFF; 00111 i2c.start(); 00112 i2c.write( WM8731_ADDRESS ); 00113 i2c.write( addr );//WM8731_REG_DIGITAL_IF, _WM8731_DAIF 00114 i2c.write( cmd ); 00115 i2c.stop(); 00116 00117 00118 //10 00119 addr = WM8731_REG_SAMPLING_CTRL; 00120 cmd = _WM8731_SAMPLING; 00121 addr = addr << 1; 00122 addr = addr|((cmd >> 8 )) & 0x01; 00123 cmd = cmd&0xFF; 00124 i2c.start(); 00125 i2c.write( WM8731_ADDRESS );//WM8731_REG_SAMPLING_CTRL, _WM8731_SAMPLING 00126 i2c.write( addr ); 00127 i2c.write( cmd ); 00128 i2c.stop(); 00129 00130 00131 00132 00133 //11 00134 addr = WM8731_REG_ACTIVE_CTRL; 00135 cmd = _WM8731_ACTIVATE; 00136 addr = addr << 1; 00137 addr = addr|((cmd >> 8 )) & 0x01; 00138 cmd = cmd&0xFF; 00139 i2c.start(); 00140 i2c.write( WM8731_ADDRESS );//WM8731_REG_SAMPLING_CTRL, _WM8731_SAMPLING 00141 i2c.write( addr ); 00142 i2c.write( cmd );//there is also a deactive version!! 00143 i2c.stop(); 00144 }
Generated on Fri Jul 29 2022 17:57:39 by 1.7.2