old demo that i want to try in mbed studio
Dependencies: mbed SDFileSystem_Copy_of_mbed_version I2S
wm8731_Config_setup.cpp
- Committer:
- roryhand
- Date:
- 2020-05-16
- Branch:
- LargeFile_Tests
- Revision:
- 90:1dce46f0d9e5
- Parent:
- 0:e89d7a0bfa3b
File content as of revision 90:1dce46f0d9e5:
#include "WOLFSON_config_consts.h" #include "mbed.h" I2C i2c(p9, p10); void wm8731_Config_setup(void) { i2c.frequency(100000); int addr = WM8731_REG_RESET; int cmd = _WM8731_RESET; addr = addr << 1; addr = addr|((cmd >> 8 ))& 0x01;//mess around with order of operations cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS ); i2c.write( addr ); i2c.write( cmd ); i2c.stop(); addr = WM8731_REG_LLINE_IN; cmd = _WM8731_LEFT_LINEIN; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//take Fergus' suggestion and declare these to known values EARLIER in program i2c.write( addr ); i2c.write( cmd ); i2c.stop(); addr = WM8731_REG_RLINE_IN; cmd = _WM8731_RIGHT_LINEIN; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//take Fergus' suggestion and declare these to known values EARLIER in program i2c.write( addr ); i2c.write( cmd ); i2c.stop(); //4 addr = WM8731_REG_LHPHONE_OUT; cmd = _WM8731_LEFT_HP; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS ); i2c.write( addr );//WM8731_REG_LHPHONE_OUT, _WM8731_LEFT_HP i2c.write(cmd); i2c.stop(); //5 addr = WM8731_REG_RHPHONE_OUT; cmd = _WM8731_RIGHT_HP; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//WM8731_REG_RHPHONE_OUT, _WM8731_RIGHT_HP i2c.write( addr ); i2c.write( cmd ); i2c.stop(); //6 addr = WM8731_REG_ANALOG_PATH; cmd = _WM8731_ANALOGAUDIO; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//WM8731_REG_ANALOG_PATH, _WM8731_ANALOGAUDIO i2c.write( addr ); i2c.write( cmd ); i2c.stop(); //7 addr = WM8731_REG_DIGITAL_PATH; cmd = _WM8731_DIGITALAUDIO; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//WM8731_REG_DIGITAL_PATH, _WM8731_DIGITALAUDIO i2c.write( addr ); i2c.write( cmd ); i2c.stop(); //8 addr = WM8731_REG_PDOWN_CTRL; cmd = _WM8731_POWER; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//WM8731_REG_PDOWN_CTRL, _WM8731_POWER) i2c.write( addr ); i2c.write( cmd ); i2c.stop(); //9 addr = WM8731_REG_DIGITAL_IF; cmd = _WM8731_DAIF; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS ); i2c.write( addr );//WM8731_REG_DIGITAL_IF, _WM8731_DAIF i2c.write( cmd ); i2c.stop(); //10 addr = WM8731_REG_SAMPLING_CTRL; cmd = _WM8731_SAMPLING; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//WM8731_REG_SAMPLING_CTRL, _WM8731_SAMPLING i2c.write( addr ); i2c.write( cmd ); i2c.stop(); //11 addr = WM8731_REG_ACTIVE_CTRL; cmd = _WM8731_ACTIVATE; addr = addr << 1; addr = addr|((cmd >> 8 )) & 0x01; cmd = cmd&0xFF; i2c.start(); i2c.write( WM8731_ADDRESS );//WM8731_REG_SAMPLING_CTRL, _WM8731_SAMPLING i2c.write( addr ); i2c.write( cmd );//there is also a deactive version!! i2c.stop(); }