5장 - Analog 전압측정과 scanf

조재훈·2023년 6월 9일
0
post-thumbnail
  • ADC 사용 : 아날로그 전압을 읽어 처리하는 경우
    ex) 배터리 전압 체크 및 출력 차단

ADC 블록 다이어그램

  • Analog to digital Convert 블록으로 ADC 입력신호와 VREF 신호를 입력으로 받음
  • 최대 4개까지 Injected 채널로 구성
  • 최대 16개까지 정규 채널로 구성
    : 정규채널은 16비트로 레지스터에 저장되어 데이터 버스에 연결
  • NVIC 인터럽트에 연결된 신호들
    : DMA 오버런, End of conversion, ENd of injected conversion, Analog watch dog event

STM32 ADC 기능

  • 채널 16개
  • 12비트, 10비트, 8비트 또는 6비트 resolution(분해능)으로 구성 가능
  • 디지털 값으로 변환 후 인터럽트 발생, 변환 종료 이벤트, 아날로그 Watchdog(감시) 오버런 이벤트 등 지원
  • 단일 혹은 연속 변환모드 지원
  • 채널 0에서 n까지 자동으로 변환하는 스캔모드
  • 채널별 프로그램 가능한 샘플링 시간
  • 불연속 모드
  • ADC 전원은 2.4 ~ 3.6V
  • ADC 이력범위는 VREF- ≤ VIN ≤ VREF+

ADC 클럭

1) 아날로그 회로용 클럭 : ADCCLK, 모든 ADC에 공통

  • 프로그래밍 가능한 프리스케일러로 나눈 APB2 클럭에서 생성
  • ADC가 fPCLK2 /2, /4, /6 또는 /8에서 작동하도록 함

2) 디지털 인터페이스용 클럭 : 레지스터 읽기/쓰기 액세스에 사용됨

  • APB2 클럭과 동일
  • 디지털 인터페이스 클럭은 RCC APB2 주변 클럭을 통해 각 ADC에 대해 개별적으로 활성화/비활성화됨
  • STM32F429 MCU의 APB2 클럭은 84MHz

단일변환모드

  • 하나의 ADC 변환을 수행하는 모드로 CONT 비트를 0으로 하면 시작됨
  • 일반 채널이 변환된 경우
    : 변환된 데이터는 16비트 ADC_DR 레지스터에 저장됨
    : EOC(변환 종료) 플래그 설정
    : EOCIE 비트가 설정되면 인터럽트 생성
  • injected(주입) 채널이 변환된 경우
    : 변환된 데이터는 16비트 ADC_JDR1 레지스터에 저장
    : JEOC(변환 종료) 플래그 설정
    : JEOCIE 비트가 se면 인터럽트 생성

연속변환모드

  • ADC 변환 완료 후 즉시 새 변환 시작
  • 외부 트리거 하거나 CONT 비트를 1로 하면 시작
  • 일반 채널 그룹이 변환된 경우
    : 마지막으로 변환된 데이터는 16비트 ADC_DR 레지스터에 저장
    : EOC(변환 종료) 플래그 설정
    : EOCIE 비트 설정시 인터럽트 생성

STM32CubeMX에서의 ADC 설정

  • Configuration에서 3개의 ADC 그룹 중 1개 선택
  • 15개의 채널 중 1개 선택

profile
맨땅에 헤딩. 인생은 실전.

0개의 댓글