1 분 소요

개념정리


ADC

아날로그 to 디지털 컨버터

ADC에서 몇볼트의 전압을 몇단개로 조개는지가 중요하다

이떄 전압을 레퍼런스 전압이라고 한다

몇 단계를 ADC Resolution이라고한다 -> ADC 성능을 좌우한다

레퍼런스 전압은 외부에서 넣어 줄 수 있는데 칩의 동작 전압을 레퍼런스 전압으로 같이 사용한다

ADC

VREF = 레퍼런스 전압 = 3.3V

ADC 1당 전압 = VREF / bit_Resolution = 3.3V / 4096 = 0.806mV

ADC에서 측정한 전압 = ADC 1당 전압[V] * ADC 결과 = 0.806 * 1500 = 1.209 V

요새는 대부분의 센서들이 디지털 출력을 지원해서 잘 사용하지 않는다

DMA

Direct Memory ACCESS

DMA 설명

기존방식 = AD변환이 완료되면 ADC 결과를 하나씩 저장하는 코드를 작성

DMA 방식 = AD 변환이 완료되면 ADC 결과를 DMA 컨트롤러가 자동으로 원하는 변수에 저장

장점으로 CPU의 일을 줄일수가 있다 CPU 클럭 소모 없이 데이터를 복사할 수 있다.

UART


개발 환경 세팅

ADC 설정 1단계

ADC 설정 2단계

세부설정

  1. Clock Prescaler = ADC 변환을 할때 CPU 클럭이 필요한 정도이다 AHB APB 성능의 따라 달라진다
  2. Resolution = ADC Clock cycle 필요한 ADC 성능정도와 단계를 보여준다
  3. DATA Alignment = 데이터가 저장되는 저장되는 데이터를 정렬 방식을 설정한다
  4. SCAN Conversion Mode= ADC 채널이 여러개가 있는데 하나씩 하나씩 순차적으로 할지 선택한다
  5. CONTINOUS CONVERSION MODE =adc 끝나면 반복할지 선택
  6. DMA Conversion mode = DMA 사용할지 선택 -> 현재 비활성화 확인 필요

  7. Number of Converion = 몇개 의 ADC 사용할지

7-1 랭크가 생성되는데 랭크의 사용할 순서를 결정해줘야한다 7-2. Sampling Time = 데이터 구하는데 걸리는 Cycle Clock Prescaler 에서 요구하는 숫자보다 크게 해줘야한다

DMA 설정

DMA 설정

Mode Circular 모드 해줘해야 반복하여 데이터의 저장한다

소스코드

  volatile int16_t adcval[4]; 

  HAL_ADC_Start_DMA(&hadc1, &adcval[0],4);//첫번쨰 인자 ADC 채널, 두번쨰 인자 변수 시작위치 , 3번째 인자 저장 변수 갯수

전체 소스코드


출처

  1. 참고 영상강의 자료 https://www.youtube.com/watch?v=_7Ll95FITn4&list=PLUaCOzp6U-RqMo-QEJQOkVOl1Us8BNgXk&index=4&ab_channel=ChrisWonyeobPark

태그:

카테고리:

업데이트:

댓글남기기