학습 일기 --ADC 작업 (2020년 2월 9일)

ADC 소개

12 비트 ADC는 디지털 변환기 연속 근사 아날로그이다. 이 채널 (18), 측정 (16)와 두 개의 내부 외부까지 갖는다. 각각의 채널 A / D 변환기는, 단일의 연속 또는 간헐적 스캔 모드 수행 될 수있다. ADC는 레지스터에 저장된 16 비트 데이터를 왼쪽 또는 오른쪽으로 정렬 될 수 있습니다. 입력 전압이 사용자 정의 된 고 / 저 임계 값을 초과하는지 여부를 아날로그 감시 기능은 애플리케이션을 감지 할 수있다. ADC 클록 입력 주파수 분할 PCLK2 의해 생성 가능한 14MHz를 초과하지 않아야한다.

ADC 개념

즉, 아날로그 - 디지털 변환기 (ADC)는 (영어 : 아날로그 - 디지털 컨버터)를 디지털 형태 이산 신호로 변환되고, 연속 아날로그 신호를 형성하기 위해 사용되는 장치의 한 부류이다. 아날로그 - 디지털 변환기는 측정 신호를 제공 할 수있다. 디지털 - 아날로그 변환기 장치로 반대로.

전형적인 아날로그 - 디지털 변환기는 일정 비율의 전압 값을 나타내는 디지털 신호로 아날로그 신호를 변환한다. 그러나, 일부 디지털 변환기는 아날로그 전자 장치는 로터리 인코더로서, 그것은 아날로그 - 디지털 변환기로 간주 될 수 있고, 순수하지 않다.

ADC 배경 개발

CMOS 공정 기술의 급속한 발전과 함께, 더 많은 신호들이, 비용 절감을 달성 전력 소비를 줄일 목적의 속도를 향상시키기 위해 처리하는 디지털 영역으로 이동된다.
이것은 저전력, 저전압에 대한 긴급한 필요성을 우리에게 가져다 및 ADC 표준 딥 서브 마이크론 기술을 사용할 수 있습니다.

ADC의 주요 특징

  • 12 비트 분해능
  • 변환이 완료되면, 인터럽트가 변환 및 아날로그 감시 이벤트의 사출 단부 생성
  • 단일 및 연속 변환 모드
  • n은 0 내지 채널 자동 스캔 모드
  • 불연속 모드 실행
  • 자기 교정
  • 데이터가 포함 된 데이터의 일관성과 정렬
  • 채널 당 샘플링 간격은 개별적으로 프로그래밍 할 수 있습니다
  • 변환 및 변환 규칙이 외부 트리거 옵션 주입된다 (외부 인터럽트, 타이머)
  • (동시에 두 개 이상의 장치와 함께 ADC) 듀얼 모드
  • ADC는 최대 입력 클록 14MHz이다를 초과하지 않아야
  • ADC 전원 요구 사항 : 3.6V에 2.4V
  • ADC 입력 범위 : VREF - <= VIN <VREF = +
  • 이 DMA 요청은 채널 변환 규칙 중에 생성됩니다.

ADC의 기본 프레임 워크

프리 필터 - 샘플 / 홀드 - 양자화 - 디지털 프로세서

ADC의 성능 매개 변수

ADC 성능 매개 변수는 다음과 같습니다

  1. 해상도 : ADC 해상도는 구별 할 수있는 최소 양자화 된 신호 변환기의 능력을 말한다. 이진 N 비트 ADC 해상도, 최소 레벨 비트 레일 입력 범위 VREF 비교 구별 할 수있는 것으로한다 LSB = VREF / 2 ^ N 한편, 해상도가 일반적으로 비선형 노이즈 증가 같이 감소 따라서, 실제 ADC 해상도는 소음과 비선형 포함해야 설명
  2. 차동 비선형 성 (DNL)
  3. 적분 비선형 성 (INL)
  4. 오프셋 오차 : 제로 입력 A는 / D 변환기의 입력 - 출력 특성 곡선 오프셋
  5. 이득 에러 : 풀 스케일 출력 실제 및 아날로그 입력 신호의 이상적인 아날로그 입력 신호의 차이. 특성 곡선을 통해 송신 커브에 대한 이득 오차는 회전 좌표계 원점에 대해서 각도 상으로 이동하고있다.
  6. SNR은 : dB SNR = 10logPsignal / Pnoise로 표시된 ADC의 출력 신호 전력과 잡음 전력 사이의 비율을 말한다. 신호 에너지 및 고조파 에너지 - 신호 스펙트럼 수단은 기본 파 성분을 상기 RMS 노이즈는 전체 에너지 =. 소음 주로 양자화 노이즈 이상적인 ADC. 정현파 입력 신호의 이론적 최대 SNR과 같음 : SNR = (6.02N + 1.76) dB. 여기서, N은 ADC의 비트 수이다.
  7. 잡음 비 왜곡 신호에 실질적으로 모든 신호 전력과 고조파 왜곡뿐만 아니라, 전력 소비 및 노이즈 비율 모두 에일리어싱 하모닉스. 그것은 가장 중요한 지표의 ADC의 측정이다. 상기 입력 신호의 주파수, 진폭 및 기타 요인에 관련
  8. 스퓨리어스 프리 동적 범위
  9. 총 고조파 왜곡 : 각 고조파와 합의 전체 밴드 전력.
  10. 전환율 : 전환율 KSPS 단위 초당 ADC에서 디지털 신호로 아날로그 입력 신호의 수이다.

ADC 핀

VREF + (입력 아날로그 양의 기준은 ADC 2.4가 사용 상한 / 포지티브 기준 전압 <= VREF + <= VDDC
개발 보드 ADC 찾을
VDDA (입력, 아날로그 전원, 전원 VDD와 아날로그 등가 : 2.4 <= VDDA을 <= VDD (3.6V)
VREF- 입력 아날로그 네거티브 기준, 저가형 ADC / 마이너스 기준 전압을 사용 VREF- = VSSA
VSSA 아날로그 입력 전력 아날로그 접지 VSS 전원 당량
ADCx_IN [15 : 0] : 아날로그 입력 아날로그 입력 채널 (16 개)
의 채널 15 개의 채널 0-- : 외부 입력, 외부 측정
채널 16 : 칩 내부의 온도를 측정하는 온도 센서, 외부의 온도를 측정 할 수 있고, 상대적인 온도를 측정 할 수 있으며,
통로 (17) : 내부 기준 전압
그림 삽입 설명 여기

채널 선택

16 개 이상의 채널이있다. 조직이 개 세트로 변환 할 수 있습니다 : 규칙 그룹 및 그룹 주입. 변환 그룹 일련의 변환을 획득하도록 구성된 복수의 채널 중 어느 하나의 임의의 순서. 예를 들어, 변환을 완료하기 위해 다음 : 채널 3, 채널 8, 채널 2, 채널 2, 채널 0, 채널 2, 채널 2, 채널 (15).

  • 규칙 16 개 구성 요소까지의 변환에 의해 설정합니다. 채널과 변환 규칙은 ADC_SQRx 레지스터를 얻기 위해 선택했습니다. L [3 : 0]에 설정된 변환 규칙은 총 비트 수는 레지스터 ADC_SQR1에 기록되어야 얻었다.
  • 네 개의 변환까지로 구성된 주입 된 그룹. 그들의 변환 주입 채널이 순차적 ADC_JSQR 레지스터가 선택된다. [1 : 0] 비트를 변환 규칙 기 레지스터의 총 수를 획득 ADC_JSQR L를 기록 할 얻었다.
  • ADC_SQRx 또는 ADC_JSQR 레지스터를 전환하는 동안 변경 될 경우, 현재의 변환은 새로운 그룹을 발생하도록 선택 될 것이다 얻기 새로운 스타트 펄스 변환기 (ADC)를 제공하도록 허가하고있다.
  • ADC1_IN16 채널 온도 센서는 내부 기준 전압에 접속하고 ADC1_IN17 AREFINT가 접속되어있다. 이러한 두 개의 내부 채널 또는 주입 채널 규칙에 변환 할 수있다.
    - 참고 온도 센서 만 주에 나타나고 ADC1에 AREFINT있다.

단일 변환 모드

단일 변환 모드는 ADC가 변환을 수행합니다. 이 모드는 또한 외부 시작 트리거 (또는 주입 채널은 채널에 적용되는 규칙)에 의해 시작될 수 ADC_CR2 아돈 비트 레지스터 (채널에 적용되는 규칙 만)에 의해 어느 하나가 제공되어, 그 비트가 0 CONT 인
선택된 채널의 완전한 전환 후에는 :

  • 변환 규칙 채널 인 경우 :
    - 변환 된 데이터가 레지스터 (16)에 저장된다 ADC_DR
    플래그가 세트되어 --EOC (변환 결과)
    - 세트 EOCIE 경우, 인터럽트가 발생된다.
  • 채널 변환 된 주사 인 경우 :
    - 16 비트 데이터로 변환하는 것은, 레지스터에 저장되어 ADC_DRJ1
    --JEOC (주사 변환) 배치 플래그가
    - 세트 JEOCIE 비트 경우, 인터럽트가 발생된다. ADC 후 정지

연속 변환 모드

연속 변환 모드에서, ADC 변환 선단 즉시 다른 변환을 시작합니다. 이 모드는 트리거 또는 시작 비트 아돈 ADC_CR2 외부 레지스터를 설정함으로써 개시 될 수 있으며, CONT 비트,이 경우에는 1 인
각각의 변환 후 :

  • 채널 변환 된 규칙 인 경우 :

- 16 비트 데이터로 변환하는 것은, 레지스터에 저장되어 ADC_DRJ1
--EOC (전환하여) 배치 된 플래그이다
- 세트 EOCIE 경우, 인터럽트가 발생된다.

  • 하나 개의 주입 채널이 전환 된 경우 :

- 16 비트 데이터로 변환하는 것은, 레지스터에 저장되어 ADC_DRJ1
--JEOC (사출 변환하여) 배치 된 플래그이다
- 세트 JEOCIE 비트 경우, 인터럽트가 발생된다.

스캔 모드

이 모드는 아날로그 채널 그룹을 스캔하는 데 사용된다.

  • 스캔 모드는 SCAN ADC_CR1 비트 레지스터를 설정함으로써 선택 될 수있다. 이 비트가 설정되면, (주입 채널) 선택된 모든 ADC_SQRX 레지스터 (룰 채널) 또는 ADC_JSQR 모든 채널 스캔 ADC. 각 그룹에 대한 각 채널의 하나의 변환을 행한다. 각 전환의 끝에서, 그룹에 다음 채널을 자동으로 변환된다. 첫 번째 채널 선택의 경우 다시 변환하는 것을 계속한다.
  • 댐 각 EOC 후 비트를 설정하는 경우, DMA 컨트롤러는 SRAM에 데이터 변환 규칙 그룹 채널을 전송한다. 주사 된 채널 변경 데이터는 항상 ADC_JDRx 레지스터에 저장된다.

불연속 모드

규칙 그룹

  • 이 모드는 ADC_CR1 DISCEN 비트 레지스터를 설정함으로써 작동된다. 그것은 (N <= 8)의 짧은 시퀀스를 변환 할 수 n 회, 상기 전환은 상기 선택된 레지스터의 변환 시퀀스 ADC_SQRx 부분이다. 레지스터 DISCNUM ADC_CR1의 값 N [2 : 0] 비트들이 주어진다.
  • 외부 트리거 신호가 변환에 기재된 다음 라운드 ADC_SQRx 레지스터 n 번 시작할 수 변환까지 시퀀스까지 모두 완료된다. 레지스터 ADC_SQRI L 정의에서 : 서열 [0-3]의 총 길이.

참고 : 규칙 세트의 불연속 모드 전환은 전환이 자동 시퀀스의 종료 후 처음부터 다시 시작하지 않는 경우.
모든 서브 그룹이 변환되는 경우, 다음 트리거는 제 1 서브 그룹의 변환을 시작한다.
사출 그룹

  • 이 모드 ADC_CR1 JDISCEN 비트 레지스터를 설정함으로써 작동된다. 외부 트리거 사건에서, 패턴별로 채널 순서 ADC_JSQR 변환 시퀀스 선택된 등록 방법.
  • 모든 변환이 완료 될 때까지 누구 외부 트리거 신호가 다음 채널 전환 서열, 서열 ADC_JSQR 레지스터의 선택을 시작할 수있다. 시퀀스의 총 길이는 [1 : 0] JL ADC_JSQR 비트 정의를 등록한다.

주 :
1. 모든 경우 주입 채널 스위칭, 다음 트리거 주입 채널 전환의 개시.
2. 자동 주사기 및 불연속 모드를 사용할 수 없습니다
3. 불연속 모드는 동시 주사 및 규칙을 방지하도록 설정되어야한다. 불연속 모드는 전환의 집합에 역할을 할 수 있습니다.

ADC 샘플링 시간

프로그래밍 샘플 시간 채널
여러 ADC_CLK주기 입력 전압이 샘플링 ADC가 사용하는 숫자와 ADC_SMPR1 ADC_SMPR2 SMP가 등록 할 수있는 샘플링주기 [2 : 0] 비트의 변화. 각 채널은 각각 다른 시간에 샘플링 될 수있다.
다음과 같이 총 전환 시간이 산출된다
TCONV = +12.5 샘플링 시간 사이클의
일반적인 기간은 1.5 사이클 7.5 사이클의주기 28.5 41.5 55.5 회 사이클주기 71.5 239.5 사이클.

데이터 정렬

  • ADC_CR2 ALIGN 레지스터의 선택을 전환 데이터 저장 배열 비트 후에. 데이터는 왼쪽 정렬 할 수있다 또는 오른쪽 정렬.
  • 결과가 마이너스 값이 될 수 있도록 주입 채널 스위칭 그룹 ADC_JOFRx 정의 데이터 값을 감산 한 것은, 레지스터 오프셋. SEXT 비트 확장 값을 표시이다.
  • 채널의 규칙 세트를 들면, 오프셋 량을 감산없이, 단지 12 비트가 유효하다.

구경 측정

ADC가 내장 된 자기 교정 모드가 있습니다. 교정 정확도는 크게 커패시터 뱅크에 의해 야기 된 내부 오류의 변화로 인해 감소 될 수있다. 교정시, 각 커패시터는 에러 정정 코드 (디지털 값)로 계산되며,이 코드는 커패시터의 각각의 변환 이후에 생성 된 오류를 제거하기 위해 사용된다.
비트 ADC_CR2 CAL 레지스터를 설정하여 교정이 시작됩니다. 교정의 종료되면, CAL 비트가 리셋 하드웨어가 올바르게 변환 시작할 수 있습니다. ADC는 파워 - 업에 대한 보정을 수행하는 것이 좋습니다. 교정 단계 후에 교정 코드 ADC_DR에 저장된다.

1. 각 전원의 실행에 한 번 권장 교정.
2. 교정을 시작하기 전에, ADC는 적어도 두 개의 ADC 클럭 사이클 동안 전원 상태 (아돈 = "0")를 배치한다.

코드 작성 지침

디지털 변환 해상도 1 아날로그 12 비트
(2), ADC 샘플링 모드 : DMA
. (3), 인쇄 샘플 값 = 4096 2 ^ 12의 최대 값이
4, 인쇄 전압 변환기는 값 = 샘플링 전압으로 변환되고, 3.3 / 4096
호 기능 :
. 1 HAL_ADC_Start_DMA (ADC_HandleTypeDef
* pData의 상기 길이 uint32_t uint32_t hADC); //는 DMA - 판독 ADC
2 공극 HAL_ADC_ConvCpltCallback (ADC_HandleTypeDef * hadc ) // ADC의 콜백
3 HAL_GPIO_TogglePin (GPIO_TypeDef * GPIOx, GPIO_Pin uint16_t); // LED 실행할 콜백 함수
(4)는 무효 HAL_Delay (uint32_t 지연) ; // 변환 인쇄 지연 치
(5)의 printf ()는 상기 직렬 인터페이스 함수 요구 // 인쇄 데이터 fputc ()의 함수를 재정의하는 단계; printf와는 정상 사용 ( );

핀 구성

그림 삽입 설명 여기

코드 표시

그림 삽입 설명 여기
그림 삽입 설명 여기

참조 링크

https://www.dianyuan.com/class/video_1560.html

게시 10 개 원래 기사 · 원의 칭찬 0 · 조회수 (308)

추천

출처blog.csdn.net/quanqueen/article/details/104234262