개요 | |
STM32 의 내장 ADC 활용하는 방법. 본 설명에서의 구체적인 상황.타겟칩 : STM32L4x6 페리페랄 : ADC 타겟보드 : D1P123R1 개발 IDE : KEIL MDK-ARM 혹은 SW4STM32 모두 가능. STM32CubeMX 기반하여 ADC 설정처리하고 IDE 에서 코딩한다. 참고 : STM32 는 모두 사용법이 비슷하니 위 세부 개발환경에 집착할 필요없음. ADC 활용 방법 기본.STM32CubeMX 에서 ADC 기능 설정 처리완료하고, 이를 프로젝트 코드에 적용시키고 이를 IDE(SW4STM32 , KEIL MDK-ARM 등 ) 에서 필요한 ADC 제어함수 작성하여 활용한다. | |
|
STM32CubeMX 에서 ADC 설정. | |
1. ADC 용으로 사용할 STM32 핀 지정.STM32 의 ADC 는 많은 핀들을 할당가능하긴 하나 동일핀을 다른 용도로도 설정가능하기 때문에 본격 회로 설계 전에 ADC 로 사용될 핀 설정이 가능한지 먼저 확인한 후 결정해야 한다. 본 예에서는 외부에서 STM32 에서 AD변환해야할 아날로그 신호가 3개가 있으며 연결된 MCU 핀은 아래 와 같은 상황을 예로 든다. STM32 PC3 : 아날로그 전압 입력 1. STM32 PC4 : 아날로그 전압 입력 2. STM32 PC5 : 아날로그 전압 입력 3. 2. ADC 입력단의 Differential, Single 지정.- 본예에서는 Single Ended 로 지정했다. 3. ADC 에서 사용하는 클럭 설정.4. ADC 의 비트 해상도 설정.- 본예에서는 12비트로 설정하고 있다. 상기 1, 2, 3, 4까지 모두 STM32CubeMX 에서 설정이 이뤄진다. 아래동영상에 전체 과정 모두 보이고 있다. 즉, 먼저 ADC입력으로 사용될 핀 지정부터 먼저 하고 ADC1 의 설정부에서 해당 핀의 입력 설정을 Single Ended 를 선택하고 있다.
위 동영상 59초 시점을 보면 4개의 핀 PC3, PC4, PC5 에 대응된 핀 네임이 각각 ADC1_IN4, ADC1_IN13, ADC1_IN14 로 대응되었다. 코드에서 ADC 채널 선택하는 경우에는 이 핀네임으로 접근하게 된다. | |
|
AD 변환 코드 작성. | ||
코드예. - AD변환 시험용으로 main 의 while 문내에 AD변환 구현예는 아래와 같다.
- AD 변환이 정상적으로 되고 있는지 확인하는 수단으로 입력한 아날로그 파형이 정상적으로 변환되고 있는지 확인하면된다. 본예에서는 외부에 아날로그 신호 발생기로 파형을 인가하고 KEIL MDK-ARM 의 디버그 모드에서 Logic Analyzer 로 AD 변환 결과값(상기 코드 상의 value_adc) 을 플로팅하여 입력한 신호 그대로 정상적으로 변환중인지 확인하다. 아래 동영상에서 디버거 ST LINK V2 연결된 상태에서, KEIL uVision 디버그 모드에서 변수 value_adc 의 값을 로직애널라이저로 관찰하는 과정을 보인다. | ||
|
본 글 포함 상위 정리 장소.
1. https://igotit.tistory.com/244 의 STM32 |
첫등록 : 2018년 12월 10일.
최종수정 :
본 글 단축주소 : https://igotit.tistory.com/1964
'임베디드.일렉트로닉스 > STM32' 카테고리의 다른 글
STM32. L4x6. Voltage Reference Buffer (VREFBUF) (0) | 2018.12.10 |
---|---|
STM32. DAC 활용 방법 (0) | 2018.12.10 |
STM32L4x6. USART (0) | 2018.12.10 |
STM32. L4x6. DAC (Digital to Analog Converter) (0) | 2018.12.08 |
STM32. L4x6. ADC ( Analog to Digital Converter ) (0) | 2018.12.08 |
댓글