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 \
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 \
\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
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
}\r
\r
}\r
- \r
} /* while(1) ... */\r
}\r
\r
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
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
/* Enable DMA for DAC Channel 2 */\r
\r
DAC_DMACmd(DAC_Channel_2, ENABLE);\r
+\r
}\r
\r
/******************************************************************************/\r