stm32 – Why waveform not visible in STM32H747I-DISCO via oscilloscope?

I’m trying to generate sin using STM32H747I-DISCO. I wanna see waveform thru mine oscilloscope on PA4 port – A2, if I get it right according to data sheet.

Here is configuration in .ico.

enter image description here

And here is main logic.

void SystemClock_Config(void) {
    RCC_OscInitTypeDef RCC_OscInitStruct = {0};
    RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
    RCC_OscInitStruct.HSEState = RCC_HSE_ON;
    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
    RCC_OscInitStruct.PLL.PLLM = 5;
    RCC_OscInitStruct.PLL.PLLN = 160;
    RCC_OscInitStruct.PLL.PLLP = 2;
    RCC_OscInitStruct.PLL.PLLQ = 4;
    RCC_OscInitStruct.PLL.PLLR = 2;

    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
                              | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
    ...

Here is sin waveform generation.

void GenerateSineWave(void) {
     for (int i = 0; i < DAC_BUFFER_SIZE; i++) {
         dac_buffer[i] = (uint32_t)(2047.5 * (1 + sin(2 * PI * i / DAC_BUFFER_SIZE)));
     }
 }

Main function.

int main(void) {
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_DMA_Init();
    MX_ADC1_Init();
    MX_RTC_Init();
    MX_TIM8_Init();
    MX_TIM3_Init();
    MX_DAC1_Init();
    MX_TIM5_Init();
    MX_TIM6_Init();

    GenerateSineWave();

    HAL_TIM_Base_Start(&htim6);
    HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_1, (uint32_t*)dac_buffer, DAC_BUFFER_SIZE, DAC_ALIGN_12B_R);

    osKernelStart();

    while (1) {}
}

Timer.

void MX_TIM6_Init(void) {
    htim6.Instance = TIM6;
    htim6.Init.Prescaler = 100 - 1;
    htim6.Init.Period = 8400 - 1;
    htim6.Init.CounterMode = TIM_COUNTERMODE_UP;

    TIM_MasterConfigTypeDef sMasterConfig = {0};
    sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
    sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
}

I’m not expert in electronics and STM. Just trying to finish course project. But experience issues with seeing waveform on oscilloscope.

Mine oscilloscope 2v. I also tried see signal on all ports on the STM. But nothing there.

Read more here: Source link