Skip to main content
Associate III
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

TDK
TDKBest answer
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.

"If you feel a post has answered your question, please click ""Accept as Solution""."
Tesla DeLorean
Guru
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

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..