Dialog DA7212 evaluating project DEVELOP branch

Dependencies:   FXAS21002 TLV320 mbed sinelookup C12832 FXOS8700

Committer:
k4zuki
Date:
Fri Mar 25 11:41:34 2016 +0000
Revision:
9:fe61a56fa5a9
Parent:
8:42093f0e5d9e
Child:
10:31c65ba8b7ea
internal register access not working orz

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