Dialog DA7212 evaluating project DEVELOP branch

Dependencies:   FXAS21002 TLV320 mbed sinelookup C12832 FXOS8700

Committer:
k4zuki
Date:
Tue Mar 29 09:09:34 2016 +0000
Revision:
10:31c65ba8b7ea
Parent:
9:fe61a56fa5a9
Child:
11:2fcbac0f72dd
generates MCLK

Who changed what in which revision?

UserRevisionLine numberNew contents of line
k4zuki 1:98b55aeebaa5 1 /** original: p07gbar/code/TLV320_Write_test/
k4zuki 1:98b55aeebaa5 2 * modify by k4zuki
k4zuki 1:98b55aeebaa5 3 * to control Dialog DA7212 codec
k4zuki 1:98b55aeebaa5 4 */
k4zuki 1:98b55aeebaa5 5 #include "mbed.h"
k4zuki 1:98b55aeebaa5 6 #include "sinelookup.h"
K4zuki 5:f1907e4d1147 7 // #include "TLV320.h"
k4zuki 1:98b55aeebaa5 8 // #include "DA7212.h"
k4zuki 9:fe61a56fa5a9 9 #include "I2S.h"
K4zuki 5:f1907e4d1147 10 // #include "C12832.h"
K4zuki 5:f1907e4d1147 11
K4zuki 5:f1907e4d1147 12 // C12832 lcd(PTD2, PTD1, PTD3, PTC3, PTD0);
K4zuki 5:f1907e4d1147 13 // AnalogIn pot1 (PTB2);
K4zuki 5:f1907e4d1147 14 // AnalogIn pot2 (PTB3);
k4zuki 1:98b55aeebaa5 15
k4zuki 1:98b55aeebaa5 16 #define SAMPLERATE 32000
k4zuki 1:98b55aeebaa5 17
K4zuki 2:3e6fb6a1f3ef 18 //DA7212 codec(I2C_SDA, I2C_SCL);
k4zuki 9:fe61a56fa5a9 19 //TLV320 codec(I2C_SDA, I2C_SCL);
k4zuki 10:31c65ba8b7ea 20 I2S i2s(I2S_TRANSMIT, PTC1, PTB19, PTB18);
k4zuki 1:98b55aeebaa5 21
k4zuki 9:fe61a56fa5a9 22 //AnalogIn aIn(p19);
k4zuki 9:fe61a56fa5a9 23 //AnalogIn vol(p20);
k4zuki 9:fe61a56fa5a9 24 //
k4zuki 9:fe61a56fa5a9 25 //float phase_l;
k4zuki 9:fe61a56fa5a9 26 //float phase_r;
k4zuki 9:fe61a56fa5a9 27 //int minibuf[16];
k4zuki 9:fe61a56fa5a9 28 //float skipper;
k4zuki 9:fe61a56fa5a9 29 //float volume;
k4zuki 9:fe61a56fa5a9 30 //float phase_kill;
k4zuki 9:fe61a56fa5a9 31 //
k4zuki 9:fe61a56fa5a9 32 //
k4zuki 9:fe61a56fa5a9 33 //extern "C" void HardFault_Handler()
k4zuki 9:fe61a56fa5a9 34 //{
k4zuki 9:fe61a56fa5a9 35 // error("Hard Fault!\n");
k4zuki 9:fe61a56fa5a9 36 //}
k4zuki 9:fe61a56fa5a9 37 //
k4zuki 9:fe61a56fa5a9 38 //
k4zuki 9:fe61a56fa5a9 39 //void play(void)
k4zuki 9:fe61a56fa5a9 40 //{
k4zuki 9:fe61a56fa5a9 41 // int to_write = i2s.max_fifo_points() - (i2s.fifo_points());
k4zuki 9:fe61a56fa5a9 42 // for(int i = 0; i < to_write; i+=2) {
k4zuki 9:fe61a56fa5a9 43 // minibuf[i] = int(float(sine16lookup[int(phase_l)])*volume);
k4zuki 9:fe61a56fa5a9 44 // //minibuf[i] = int(sine16lookup[int(phase_l)]);
k4zuki 9:fe61a56fa5a9 45 // minibuf[i+1] = int(float(sine16lookup[int(phase_r)])*volume);
k4zuki 9:fe61a56fa5a9 46 // phase_l+=skipper;
k4zuki 9:fe61a56fa5a9 47 // phase_r = phase_l + phase_kill;
k4zuki 9:fe61a56fa5a9 48 // while(phase_l >= SINE16LENGTH) {
k4zuki 9:fe61a56fa5a9 49 // phase_l -= SINE16LENGTH;
k4zuki 9:fe61a56fa5a9 50 // }
k4zuki 9:fe61a56fa5a9 51 //
k4zuki 9:fe61a56fa5a9 52 // while(phase_r >= SINE16LENGTH) {
k4zuki 9:fe61a56fa5a9 53 // phase_r -= SINE16LENGTH;
k4zuki 9:fe61a56fa5a9 54 // }
k4zuki 9:fe61a56fa5a9 55 // while(phase_r< 0) phase_r += SINE16LENGTH;
k4zuki 9:fe61a56fa5a9 56 // }
k4zuki 9:fe61a56fa5a9 57 // i2s.write(minibuf, to_write);
k4zuki 9:fe61a56fa5a9 58 //}
k4zuki 9:fe61a56fa5a9 59 Serial pc(USBTX,USBRX);
k4zuki 9:fe61a56fa5a9 60 #define _I2S0_TCSR (*((uint32_t*)0x4002F000u))
k4zuki 1:98b55aeebaa5 61 /* main */
k4zuki 1:98b55aeebaa5 62 int main()
k4zuki 1:98b55aeebaa5 63 {
k4zuki 9:fe61a56fa5a9 64 pc.baud(115200);
k4zuki 9:fe61a56fa5a9 65 pc.printf("printf\n\r");
k4zuki 9:fe61a56fa5a9 66 uint32_t hoge = 0;
k4zuki 9:fe61a56fa5a9 67 pc.printf("hoge = 0x%08X\n\r",hoge);
k4zuki 10:31c65ba8b7ea 68 pc.printf("hoge = I2S0->MCR = ");
k4zuki 10:31c65ba8b7ea 69 hoge = I2S0->MCR;
k4zuki 9:fe61a56fa5a9 70 pc.printf("0x%08X\n\r",hoge);
k4zuki 9:fe61a56fa5a9 71 // (((I2S_Type *)0x4002F000u)->TCSR);
k4zuki 9:fe61a56fa5a9 72 // pc.printf("&I2S0_TCSR = %08X\n\r",hoge);
k4zuki 9:fe61a56fa5a9 73 // ((I2S0_TCSR)) |= 1u<<31;
k4zuki 9:fe61a56fa5a9 74 // pc.printf("&I2S0_TCSR = %08X\n\r",I2S0_TCSR);
k4zuki 8:42093f0e5d9e 75 // skipper = (aIn*49)+1;
k4zuki 8:42093f0e5d9e 76 //
k4zuki 8:42093f0e5d9e 77 // codec.power(true);
k4zuki 8:42093f0e5d9e 78 // codec.frequency(SAMPLERATE);
k4zuki 8:42093f0e5d9e 79 // codec.wordsize(16);
k4zuki 8:42093f0e5d9e 80 // codec.master(false);
k4zuki 8:42093f0e5d9e 81 // codec.headphone_volume(0.5);
k4zuki 8:42093f0e5d9e 82 // codec.start();
k4zuki 8:42093f0e5d9e 83 //
k4zuki 9:fe61a56fa5a9 84 // i2s.frequency(SAMPLERATE);
k4zuki 9:fe61a56fa5a9 85 // i2s.wordsize(16);
k4zuki 9:fe61a56fa5a9 86 // i2s.stereomono(I2S_STEREO);
k4zuki 9:fe61a56fa5a9 87 // i2s.masterslave(I2S_MASTER);
k4zuki 9:fe61a56fa5a9 88 // i2s.attach(&play);
k4zuki 9:fe61a56fa5a9 89 // i2s.start();
k4zuki 1:98b55aeebaa5 90 while(1)
k4zuki 9:fe61a56fa5a9 91 {
k4zuki 9:fe61a56fa5a9 92 pc.printf(".");
k4zuki 9:fe61a56fa5a9 93 wait_ms(500);
k4zuki 8:42093f0e5d9e 94 // skipper = (aIn*30)+1;
k4zuki 8:42093f0e5d9e 95 //
k4zuki 8:42093f0e5d9e 96 // volume = 1;
k4zuki 8:42093f0e5d9e 97 // phase_kill = (vol-0.5)*400;
k4zuki 8:42093f0e5d9e 98 //
k4zuki 8:42093f0e5d9e 99 // //printf("Skipper:%f, %i, %i\n\r",skipper, to_write,i2s.fifo_level());
k4zuki 1:98b55aeebaa5 100 /*if(flag)
k4zuki 1:98b55aeebaa5 101 {
k4zuki 1:98b55aeebaa5 102 printf(".");
k4zuki 1:98b55aeebaa5 103 flag = false;
k4zuki 1:98b55aeebaa5 104 }*/
k4zuki 1:98b55aeebaa5 105 }
k4zuki 1:98b55aeebaa5 106
k4zuki 1:98b55aeebaa5 107 }
K4zuki 5:f1907e4d1147 108 // #include "C12832.h"
K4zuki 5:f1907e4d1147 109 //
K4zuki 5:f1907e4d1147 110 // C12832 lcd(D11, D13, D12, D7, D10);
K4zuki 5:f1907e4d1147 111 //
K4zuki 5:f1907e4d1147 112 // AnalogIn pot1 (A0);
K4zuki 5:f1907e4d1147 113 // AnalogIn pot2 (A1);
K4zuki 5:f1907e4d1147 114 //
K4zuki 5:f1907e4d1147 115 // int main()
K4zuki 5:f1907e4d1147 116 // {
K4zuki 5:f1907e4d1147 117 // while(1) {
K4zuki 5:f1907e4d1147 118 // lcd.cls();
K4zuki 5:f1907e4d1147 119 // lcd.locate(0,3);
K4zuki 5:f1907e4d1147 120 // lcd.printf("Pot 1 = %.2f", (float)pot1);
K4zuki 5:f1907e4d1147 121 // lcd.locate(0,14);
K4zuki 5:f1907e4d1147 122 // lcd.printf("Pot 2 = %.2f", (float)pot2);
K4zuki 5:f1907e4d1147 123 // wait(0.1);
K4zuki 5:f1907e4d1147 124 // }
K4zuki 5:f1907e4d1147 125 // }