Playback system PGA test code
Dependencies: BufferedSerial mbed
main.cpp@1:ae4cce570326, 2018-07-29 (annotated)
- 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?
User | Revision | Line number | New 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 | /////////////// |