sampling at Fs=96kHz OK, ADC driver now supports different sample rates
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 6 Nov 2015 23:02:44 +0000 (23:02 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 6 Nov 2015 23:02:44 +0000 (23:02 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2484 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/stm32/inc/stm32f4_adc.h
codec2-dev/stm32/src/adc_rec.c
codec2-dev/stm32/src/adc_rec_usb.c
codec2-dev/stm32/src/adc_sd.c
codec2-dev/stm32/src/adcdac_ut.c
codec2-dev/stm32/src/sm1000_main.c
codec2-dev/stm32/src/stm32f4_adc.c

index d819fa724c12c3d4b7578311472247fb52189d3e..c04d22a072e3d27090b8c01ffafa68dbe546cfc3 100644 (file)
 
 #define ADC_BUF_SZ   320
 
-void adc_open(int fifo_sz);
+/* divisors for various sample rates */
+
+#define ADC_FS_16KHZ 5250
+#define ADC_FS_96KHZ 875
+
+void adc_open(int fs_divisor, int fifo_sz);
 int adc1_read(short buf[], int n); /* ADC1 Pin PA1 */
 int adc2_read(short buf[], int n); /* ADC2 Pin PA2 */
 
index 68736fda63ef6692bad239b2e71ea8e769021192..047e37c7eac7f0cb4b38c4d13fa660bdaaf9b537 100644 (file)
@@ -63,7 +63,7 @@ int main(void){
     bufs = FS*REC_TIME_SECS/N;
 
     printf("Starting!\n");
-    adc_open(4*N);
+    adc_open(ADC_FS_16KHZ, 4*N);
 
     for(i=0; i<bufs; i++) {
         while(adc2_read(buf, N) == -1);
index ef82fc494c6f2c41f0e6dfd613c70333d51a5658..e86bdff2fc8c94ceda8b0d3e1d301fe5714d22a5 100644 (file)
@@ -37,8 +37,8 @@
 #include <stdlib.h>
 #include <math.h>
 #include "stm32f4_adc.h"
-#include "gdb_stdio.h"
-#include "stm32f4xx_gpio.h"
+#include "stm32f4_usb_vcp.h"
+#include "sm1000_leds_switches.h"
 
 #define  N  (ADC_BUF_SZ*6)
 
@@ -53,12 +53,14 @@ extern int adc_overflow2;
 
 int main(void){
     short  buf[N];
+    #ifdef TEST_TONE
     float  phase = 0.0;
     float  sam;
     int    i;
+    #endif
 
     usb_vcp_init();
-    adc_open(4*N);
+    adc_open(ADC_FS_96KHZ, 4*N);
     sm1000_leds_switches_init();
 
     /* set up test buffer, lets us test USB comms indep of ADC, record to a file
index 6685fbb668bef699fbb334aac806553a36ee7e24..d3085d813e7cfd3af4fca51f030713103724ebdc 100644 (file)
@@ -60,7 +60,7 @@ int main(void){
     short  buf[N];
     float  sd1, sd2;
 
-    adc_open(2*N);
+    adc_open(ADC_FS_16KHZ, 2*N);
 
     printf("Starting!\n");
     while(1) {
index f28fce0eb681b359549524d7259b417fe2228765..3aeaf0282622c99684051d78df356dc507710463 100644 (file)
@@ -49,7 +49,7 @@ int main(void) {
     int   i;
 
     dac_open(4*DAC_BUF_SZ);
-    adc_open(4*ADC_BUF_SZ);
+    adc_open(ADC_FS_16KHZ, 4*ADC_BUF_SZ);
     sm1000_leds_switches_init();
 
     while (1) {
index 39e4372033aaa5521f6601731e9109d61191f3cd..4d6ad0c63d68fef778f979ceb89267f6db19ea51 100644 (file)
@@ -277,7 +277,7 @@ int main(void) {
 
     /* Set up ADCs/DACs */
     dac_open(4*DAC_BUF_SZ);
-    adc_open(4*ADC_BUF_SZ);
+    adc_open(ADC_FS_96KHZ, 4*ADC_BUF_SZ);
 
     /* Set up FreeDV modem */
     f = freedv_open(FREEDV_MODE_1600);
index 5e5014edd23ba94aea812a76ec7aa01cdd29bb2d..00d4fed3580232bd11e38ffed8f270322f9d43fa 100644 (file)
@@ -51,15 +51,15 @@ int half,full;
 
 void adc_configure();
 
-static void tim2_config(void);
+static void tim2_config(int fs_divisor);
 
-void adc_open(int fifo_sz) {
+void adc_open(int fs_divisor, int fifo_sz) {
     adc1_fifo = fifo_create(fifo_sz);
     assert(adc1_fifo != NULL);
     adc2_fifo = fifo_create(fifo_sz);
     assert(adc2_fifo != NULL);
 
-    tim2_config();
+    tim2_config(fs_divisor);
     adc_configure();
     init_debug_blinky();
 }
@@ -77,7 +77,7 @@ int adc2_read(short buf[], int n) {
 }
 
 
-static void tim2_config(void)
+static void tim2_config(int fs_divisor)
 {
   TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;
 
@@ -98,7 +98,7 @@ static void tim2_config(void)
   /* Time base configuration */
 
   TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
-  TIM_TimeBaseStructure.TIM_Period = 5250;
+  TIM_TimeBaseStructure.TIM_Period = fs_divisor;
   TIM_TimeBaseStructure.TIM_Prescaler = 0;
   TIM_TimeBaseStructure.TIM_ClockDivision = 0;
   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;