Playback system PGA test code

Dependencies:   BufferedSerial mbed

Committer:
Arkadi
Date:
Sun Jul 29 08:11:25 2018 +0000
Revision:
1:ae4cce570326
Parent:
0:2542aa3b6c07
PGA test with xbee module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Arkadi 0:2542aa3b6c07 1 ////////////////////////////////////////
Arkadi 0:2542aa3b6c07 2 // Tau_ReSpeaker_PGA_Test //
Arkadi 0:2542aa3b6c07 3 // Arkadiraf@gmail.com - 31/10/2017 //
Arkadi 0:2542aa3b6c07 4 ////////////////////////////////////////
Arkadi 0:2542aa3b6c07 5 /*
Arkadi 0:2542aa3b6c07 6 Receive byte from pc for settings
Arkadi 0:2542aa3b6c07 7 byyyyxxxx - y- Set PGA gain , x- select channle
Arkadi 0:2542aa3b6c07 8 Realterm mode Binary, send message 0xYX (Hex format)
Arkadi 0:2542aa3b6c07 9 */
Arkadi 0:2542aa3b6c07 10
Arkadi 0:2542aa3b6c07 11 /*
Arkadi 0:2542aa3b6c07 12 Board : Nucleo STM32F303k8
Arkadi 0:2542aa3b6c07 13 */
Arkadi 0:2542aa3b6c07 14
Arkadi 0:2542aa3b6c07 15 /*
Arkadi 0:2542aa3b6c07 16 Pinout:
Arkadi 0:2542aa3b6c07 17 PC - Serial 2
Arkadi 0:2542aa3b6c07 18 PA_2 (Tx) --> STLINK
Arkadi 0:2542aa3b6c07 19 PA_15 (Rx) --> STLINK
Arkadi 0:2542aa3b6c07 20
Arkadi 0:2542aa3b6c07 21 SPI PGA112:
Arkadi 0:2542aa3b6c07 22 PB_5 --> MOSI (DIO)
Arkadi 0:2542aa3b6c07 23 PB_4 --> MISO (DIO N.C.)
Arkadi 0:2542aa3b6c07 24 PB_3 --> SCLK
Arkadi 0:2542aa3b6c07 25 PA_11 --> SSEL (PGA_CS)
Arkadi 0:2542aa3b6c07 26 */
Arkadi 0:2542aa3b6c07 27
Arkadi 0:2542aa3b6c07 28 ///////////////
Arkadi 0:2542aa3b6c07 29 // Libraries //
Arkadi 0:2542aa3b6c07 30 ///////////////
Arkadi 0:2542aa3b6c07 31 #include "mbed.h"
Arkadi 0:2542aa3b6c07 32 #include "BufferedSerial.h" // solves issues of loosing data. alternative doing it yourself
Arkadi 0:2542aa3b6c07 33
Arkadi 0:2542aa3b6c07 34 ///////////////
Arkadi 0:2542aa3b6c07 35 // #defines //
Arkadi 0:2542aa3b6c07 36 ///////////////
Arkadi 0:2542aa3b6c07 37
Arkadi 0:2542aa3b6c07 38 #define DEBUG_MOD1
Arkadi 0:2542aa3b6c07 39
Arkadi 0:2542aa3b6c07 40 /////////////
Arkadi 0:2542aa3b6c07 41 // Objects //
Arkadi 0:2542aa3b6c07 42 /////////////
Arkadi 0:2542aa3b6c07 43
Arkadi 0:2542aa3b6c07 44 // uart
Arkadi 0:2542aa3b6c07 45 BufferedSerial pc(USBTX, USBRX);
Arkadi 1:ae4cce570326 46 BufferedSerial xbee(D1, D0);
Arkadi 0:2542aa3b6c07 47
Arkadi 0:2542aa3b6c07 48 // SPI with PGA112
Arkadi 0:2542aa3b6c07 49 SPI spi(PB_5, PB_4, PB_3); // mosi, miso, sclk , SSEL
Arkadi 0:2542aa3b6c07 50
Arkadi 0:2542aa3b6c07 51 DigitalOut PGA_CS(PA_11); // chip select manual
Arkadi 0:2542aa3b6c07 52
Arkadi 0:2542aa3b6c07 53 ///////////////
Arkadi 0:2542aa3b6c07 54 // variables //
Arkadi 0:2542aa3b6c07 55 ///////////////
Arkadi 0:2542aa3b6c07 56
Arkadi 0:2542aa3b6c07 57 uint8_t in_byte=0;
Arkadi 0:2542aa3b6c07 58
Arkadi 0:2542aa3b6c07 59 ///////////////
Arkadi 0:2542aa3b6c07 60 // Functions //
Arkadi 0:2542aa3b6c07 61 ///////////////
Arkadi 0:2542aa3b6c07 62
Arkadi 0:2542aa3b6c07 63 ////////////////////////
Arkadi 0:2542aa3b6c07 64 // Main Code Setup : //
Arkadi 0:2542aa3b6c07 65 ////////////////////////
Arkadi 0:2542aa3b6c07 66 int main()
Arkadi 0:2542aa3b6c07 67 {
Arkadi 0:2542aa3b6c07 68 pc.baud(57600);
Arkadi 1:ae4cce570326 69 xbee.baud(57600);
Arkadi 0:2542aa3b6c07 70 #ifdef DEBUG_MOD1
Arkadi 0:2542aa3b6c07 71 pc.printf("MIC Test\r\n");
Arkadi 0:2542aa3b6c07 72 #endif
Arkadi 0:2542aa3b6c07 73
Arkadi 0:2542aa3b6c07 74 // Initialize PGA112
Arkadi 0:2542aa3b6c07 75 // Disable PGA112
Arkadi 0:2542aa3b6c07 76 PGA_CS=1;
Arkadi 0:2542aa3b6c07 77 wait(0.1); // module startup
Arkadi 0:2542aa3b6c07 78 // Init SPI format
Arkadi 0:2542aa3b6c07 79 spi.format(16,0);
Arkadi 0:2542aa3b6c07 80 spi.frequency(8000000);
Arkadi 0:2542aa3b6c07 81
Arkadi 0:2542aa3b6c07 82 // Enable PGA112
Arkadi 0:2542aa3b6c07 83 PGA_CS=0;
Arkadi 0:2542aa3b6c07 84 // write Register
Arkadi 0:2542aa3b6c07 85 spi.write(0x0000);
Arkadi 0:2542aa3b6c07 86 // Disable PGA112
Arkadi 0:2542aa3b6c07 87 PGA_CS=1;
Arkadi 0:2542aa3b6c07 88
Arkadi 0:2542aa3b6c07 89
Arkadi 0:2542aa3b6c07 90
Arkadi 0:2542aa3b6c07 91
Arkadi 0:2542aa3b6c07 92 ///////////////////////
Arkadi 0:2542aa3b6c07 93 // Main Code Loop : //
Arkadi 0:2542aa3b6c07 94 ///////////////////////
Arkadi 0:2542aa3b6c07 95 while(1) {
Arkadi 0:2542aa3b6c07 96 if (pc.readable()) {
Arkadi 0:2542aa3b6c07 97 in_byte=pc.getc();
Arkadi 0:2542aa3b6c07 98 #ifdef DEBUG_MOD1
Arkadi 0:2542aa3b6c07 99 pc.putc(in_byte);
Arkadi 0:2542aa3b6c07 100 #endif
Arkadi 0:2542aa3b6c07 101 uint8_t writeMSB = 0x2A;
Arkadi 0:2542aa3b6c07 102 uint8_t writeLSB = in_byte;
Arkadi 0:2542aa3b6c07 103 //uint16_t writeU16 = ((writeMSB<<8) | (writeLSB&0x00FF));
Arkadi 0:2542aa3b6c07 104 uint16_t writeU16 = ((writeMSB<<8) | (writeLSB));
Arkadi 0:2542aa3b6c07 105 PGA_CS=0;
Arkadi 0:2542aa3b6c07 106 // write Register
Arkadi 0:2542aa3b6c07 107 spi.write(writeU16);
Arkadi 0:2542aa3b6c07 108 // Disable PGA112
Arkadi 0:2542aa3b6c07 109 PGA_CS=1;
Arkadi 0:2542aa3b6c07 110
Arkadi 0:2542aa3b6c07 111 }// end serial
Arkadi 1:ae4cce570326 112
Arkadi 1:ae4cce570326 113 if (xbee.readable()) {
Arkadi 1:ae4cce570326 114 in_byte=xbee.getc();
Arkadi 1:ae4cce570326 115 #ifdef DEBUG_MOD1
Arkadi 1:ae4cce570326 116 xbee.putc(in_byte);
Arkadi 1:ae4cce570326 117 #endif
Arkadi 1:ae4cce570326 118 uint8_t writeMSB = 0x2A;
Arkadi 1:ae4cce570326 119 uint8_t writeLSB = in_byte;
Arkadi 1:ae4cce570326 120 //uint16_t writeU16 = ((writeMSB<<8) | (writeLSB&0x00FF));
Arkadi 1:ae4cce570326 121 uint16_t writeU16 = ((writeMSB<<8) | (writeLSB));
Arkadi 1:ae4cce570326 122 PGA_CS=0;
Arkadi 1:ae4cce570326 123 // write Register
Arkadi 1:ae4cce570326 124 spi.write(writeU16);
Arkadi 1:ae4cce570326 125 // Disable PGA112
Arkadi 1:ae4cce570326 126 PGA_CS=1;
Arkadi 1:ae4cce570326 127
Arkadi 1:ae4cce570326 128 }// end serial
Arkadi 0:2542aa3b6c07 129
Arkadi 0:2542aa3b6c07 130 // // Enable PGA112
Arkadi 0:2542aa3b6c07 131 // PGA_CS=0;
Arkadi 0:2542aa3b6c07 132 // // write Register
Arkadi 0:2542aa3b6c07 133 // spi.write(0x2A00);
Arkadi 0:2542aa3b6c07 134 // // Disable PGA112
Arkadi 0:2542aa3b6c07 135 // PGA_CS=1;
Arkadi 0:2542aa3b6c07 136 //
Arkadi 0:2542aa3b6c07 137 // // delay
Arkadi 0:2542aa3b6c07 138 // wait(1.0);
Arkadi 0:2542aa3b6c07 139 //
Arkadi 0:2542aa3b6c07 140 // // Enable PGA112
Arkadi 0:2542aa3b6c07 141 // PGA_CS=0;
Arkadi 0:2542aa3b6c07 142 // // write Register
Arkadi 0:2542aa3b6c07 143 // spi.write(0x2A30);
Arkadi 0:2542aa3b6c07 144 // // Disable PGA112
Arkadi 0:2542aa3b6c07 145 // PGA_CS=1;
Arkadi 0:2542aa3b6c07 146 //
Arkadi 0:2542aa3b6c07 147 // // delay
Arkadi 0:2542aa3b6c07 148 // wait(1.0);
Arkadi 0:2542aa3b6c07 149
Arkadi 0:2542aa3b6c07 150 }// end main loop
Arkadi 0:2542aa3b6c07 151 }// end main
Arkadi 0:2542aa3b6c07 152
Arkadi 0:2542aa3b6c07 153 ///////////////
Arkadi 0:2542aa3b6c07 154 // Functions //
Arkadi 0:2542aa3b6c07 155 ///////////////