본문 바로가기
임베디드.일렉트로닉스/STM32

STM32. DAC 활용 방법

by i.got.it 2018. 12. 10.

 

 

 

개요

 
 
STM32 의 내장 DAC 활용하는 방법. 
 



 

본 설명에서의 구체적인 상황. 

 
타겟칩 : STM32L4x6  
페리페랄 :  DAC  
타겟보드 : D1P123R1
개발 IDE : KEIL MDK-ARM 혹은 SW4STM32 모두 가능. STM32CubeMX 기반하여 DAC 설정처리하고 IDE 에서 코딩한다. 
참고 : STM32 는 모두 사용법이 비슷하니 위 세부 개발환경에 집착할 필요없음. 
 

 DAC 활용 방법 기본. 

 
STM32CubeMX 에서 DAC 기능 설정 처리완료하고, 이를 프로젝트 코드에 적용시키고 이를 IDE(SW4STM32 , KEIL MDK-ARM 등 ) 에서 필요한 DAC 제어함수 작성하여 활용한다. 
 

DAC 출력핀 지정.

STM32 의 DAC 사양 을 보면 DAC 출력은 DAC_OUT1 은 PA4 ,DAC_OUT2 는 PA5 로만 가능하다. 다른 페리페랄들은 여러개의 핀 중에 선택할 수 있는 경우가 많은데, DAC는 고정된 핀 1개로만 가능함을 숙지하고 핀 맵 설계해야한다.  
 

 

 

 

STM32CubeMX 에서 DAC 설정.

 
 
- 본 예에서는 DAC_OUT1 만 사용하기로 하며 고정적으로 PA4 로만 출력가능하다. 
- 아래동영상에서 전체 설정 과정 보임. 

 

 

 
 

 

 

 

DAC 출력함수

 
 
이제 코드내에서 DAC 출력함수 호출하면된다. 라이브러리에서 제공하는 함수 호출하면됨. 
 

함수 호출예 

 
   HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1,DAC_ALIGN_12B_R,value_dac); // value_dac 값을 DAC 에 설정함. 
   HAL_DAC_Start(&hdac1, DAC_CHANNEL_1); // 이 함수 실행되면 value_dac 에 해당하는 전압이 핀으로 출력됨. 

 
STM32CubeMX 에서 자동으로 프로젝트 생성하면 main.c 내에서 DAC 초기화 호출하는 코드류들은 이미 자동생성되어있기에 우리가 할 일은 필요한 장소에서 DAC에 값을 설정하고 출력하는 함수 호출하는게 전부임. 

 

코드예.

아래 코드예는 ADC 한 값을 DAC로 그대로 출력한 예를 보이고 있다. 
- STM32 AD 변환 상세보기 : https://igotit.tistory.com/1964
 
    HAL_ADC_Start(&hadc1);
   HAL_ADC_PollForConversion(&hadc1,100);
   value_adc = HAL_ADC_GetValue(&hadc1);
  

   HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1,DAC_ALIGN_12B_R,value_adc);
   HAL_DAC_Start(&hdac1, DAC_CHANNEL_1);
    
   HAL_Delay(10);


위 코드 실행했을때 핀 PA4 로 출력되는 DAC 전압 파형을 스코프로 보면 아래와 같다. 



 
 

 

 

 

 

 

 

상위 정리 

 

https://igotit.tistory.com/244 의 STM32

 

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리.

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리 제조사 칩 주요특징 실리콘랩 8bit MCU EFM8 시리즈 32bit EFM32 시리즈 EFM8 싸다. STM STM32 . 최고 항상 만족. Cypress pSoC pSoC6 은 기대해볼만. NORDIC nRF52 블투 무선솔루

igotit.tistory.com

 

 

 

 


첫 등록 : 2018.12.10

최종 수정 : 

단축 주소 : https://igotit.tistory.com/1965


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5