fixed low level 256Hz tone bug, was init issue in DAC, thanks Rick and Michael and...
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 16 Sep 2014 07:56:52 +0000 (07:56 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 16 Sep 2014 07:56:52 +0000 (07:56 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@1843 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/stm32/Makefile
codec2-dev/stm32/src/sm1000_main.c
codec2-dev/stm32/src/stm32f4_dac.c

index 9fc660b230e4cfd71f1c763c421e0244579e871e..8915dec6b7a7e9708e23006be591d0aff27a5f46 100644 (file)
@@ -153,6 +153,7 @@ src/init.c
 
 dac_ut.elf: $(DAC_UT_SRCS)
        $(CC) $(CFLAGS) -O0 $^ -o $@ $(LIBPATHS) $(LIBS)
+       $(OBJCOPY) -O binary dac_ut.elf dac_ut.bin
 
 ADCDAC_UT_SRCS=\
 src/adcdac_ut.c \
@@ -304,6 +305,7 @@ src/stm32f4_adc.o: src/stm32f4_adc.c
 
 sm1000.elf: $(SM1000_SRCS) src/stm32f4_dac.o src/stm32f4_adc.o
        $(CC) $(CFLAGS) -O3 $^ -o $@ $(LIBPATHS) $(LIBS)
+       $(OBJCOPY) -O binary sm1000.elf sm1000.bin
 
 FREEDV_TX_PROFILE_SRCS=\
 src/freedv_tx_profile.c \
index 9683172afeeb5708a425c745c2a7efc18368dac2..147dad6d316509071bbb6ab1f4e273eb2f52e818 100644 (file)
@@ -54,15 +54,6 @@ int main(void) {
 \r
     //led_pwr(1); led_ptt(0); led_rt(0); led_err(0);\r
 \r
-    /* \r
-       TODO:\r
-       [ ] UT analog interfaces from file IO\r
-       [ ] UTs for simultaneous tx & rx on analog interfaces\r
-       [ ] detect program assert type errors with a blinky\r
-       [ ] timer tick function to measure 10ms-ish type times\r
-       [ ] switch debouncing?\r
-       [ ] light led with bit errors\r
-    */\r
 \r
     /* clear filter memories */\r
 \r
@@ -112,7 +103,7 @@ int main(void) {
                 fdmdv_16_to_8_short(adc8k, &adc16k[FDMDV_OS_TAPS_16K], nin);\r
                 nout = freedv_rx(f, &dac8k[FDMDV_OS_TAPS_8K], adc8k);\r
                 //for(i=0; i<FREEDV_NSAMPLES; i++)\r
-                //   dac8k[FDMDV_OS_TAPS_8K+i] = adc8k[i];\r
+                //   dac8k[FDMDV_OS_TAPS_8K+i] = 0;\r
                 fdmdv_8_to_16_short(dac16k, &dac8k[FDMDV_OS_TAPS_8K], nout);              \r
                 dac2_write(dac16k, 2*nout);\r
                 led_ptt(0); led_rt(f->fdmdv_stats.sync); led_err(f->total_bit_errors);\r
@@ -120,7 +111,6 @@ int main(void) {
             }\r
 \r
         }\r
-       \r
     } /* while(1) ... */\r
 }\r
 \r
index 28dc258e637af428abc278fa7bc2f1d0be11fbef..2115fa34ddc69e95ffcc83876a3b057a264ef010 100644 (file)
@@ -152,9 +152,18 @@ static void dac1_config(void)
   DMA_InitTypeDef  DMA_InitStructure;\r
   NVIC_InitTypeDef NVIC_InitStructure;\r
   \r
-  /* DAC channel11Configuration */\r
-\r
-  DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO;\r
+  /* DAC channel 1 Configuration */\r
+\r
+  /* \r
+     This line fixed a bug that cost me 5 days, bad wave amplitude\r
+     value, and some STM32F4 periph library bugs caused triangle wave\r
+     geneartion to be enable resulting in a low level tone on the\r
+     SM1000, that we thought was caused by analog issues like layour\r
+     or power supply biasing\r
+  */\r
+  DAC_StructInit(&DAC_InitStructure); \r
+\r
+  DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO; \r
   DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;\r
   DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;\r
   DAC_Init(DAC_Channel_1, &DAC_InitStructure);\r
@@ -211,8 +220,9 @@ static void dac2_config(void)
   DMA_InitTypeDef DMA_InitStructure;\r
   NVIC_InitTypeDef NVIC_InitStructure;\r
   \r
-  /* DAC channel2 Configuration */\r
+  /* DAC channel 2 Configuration (see notes in dac1_config() above) */\r
 \r
+  DAC_StructInit(&DAC_InitStructure);\r
   DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO;\r
   DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;\r
   DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;\r
@@ -261,6 +271,7 @@ static void dac2_config(void)
   /* Enable DMA for DAC Channel 2 */\r
 \r
   DAC_DMACmd(DAC_Channel_2, ENABLE);\r
+\r
 }\r
 \r
 /******************************************************************************/\r