Skip to main content
Explorer
September 24, 2024
Solved

DMA and GPIO on STM32C031G6

  • September 24, 2024
  • 1 reply
  • 621 views

I would like to sample the entire GPIOA Port using the DMA and TIM16. TIM16 triggers the DMA which in turn is supposed to copy the content of the IDR register of GPIO onto an array. This works fine if I use the CNT register of TIM16 as CPAR. When I switch to the IDR register of GPIOA, the transfer error flag is set.

I found a post stating that the GPIO on the G0 series is on a private bus and therefore not available for the DMA. Is this the case for the C0 series too? If so, is there any other way to copy the content of the IDR register in a fixed interval except for doing it in a timer interrupt routine?

Many thanks in advance for any replies!

    This topic has been closed for replies.
    Best answer by waclawek.jan

    > I found a post stating that the GPIO on the G0 series is on a private bus and therefore not available for the DMA. Is this the case for the C0 series too?

    Yes.

    > If so, is there any other way to copy the content of the IDR register in a fixed interval except for doing it in a timer interrupt routine?

    No.

    Check out the 'F0 or the brand new 'U0 families.

    JW

    1 reply

    Super User
    September 24, 2024

    > I found a post stating that the GPIO on the G0 series is on a private bus and therefore not available for the DMA. Is this the case for the C0 series too?

    Yes.

    > If so, is there any other way to copy the content of the IDR register in a fixed interval except for doing it in a timer interrupt routine?

    No.

    Check out the 'F0 or the brand new 'U0 families.

    JW