Skip to main content
Graduate II
December 4, 2023
Solved

16 bit ADC interface

  • December 4, 2023
  • 2 replies
  • 1151 views

Hii

I'm interfacing External adc with stm32f429

I want to read 16-bit parallel data from ADC and connected16 lines from ADC to GPIOA

 GPIOA->IDR

how the data is stored in IDR and how to access the input data register continuously for every sample.

 

Thank you.

    This topic has been closed for replies.
    Best answer by TDK

    IDR has the digital value on each of the pins PA0, PA1, ..., PA15 in the lower 16 bits. You can set up a timer to trigger a memory-to-memory DMA transfer from GPIOx->IDR to RAM when a signal goes high. You might be driving the ADC with a timer (or clock of some manner), it may be possible to use that same signal to trigger the transfer.

    2 replies

    TDKAnswer
    Super User
    December 4, 2023

    IDR has the digital value on each of the pins PA0, PA1, ..., PA15 in the lower 16 bits. You can set up a timer to trigger a memory-to-memory DMA transfer from GPIOx->IDR to RAM when a signal goes high. You might be driving the ADC with a timer (or clock of some manner), it may be possible to use that same signal to trigger the transfer.

    Graduate II
    December 4, 2023

    Honesty I wouldn't use GPIOA for this purpose, there are several pins used for the debug connection, and System Loader.

    You'll end up creating something that's very difficult to program and debug.

    Find a less conflicted GPIO Bank. For triggers, find pins associated with TIMx.CHx on APB2 / DMA2