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

STM32. DAC 활용 방법

by 리치굿맨 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 전압 파형을 스코프로 보면 아래와 같다. 



 
 


 


 

본글 포함 상위 정리 장소.


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





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


태그

, ,

댓글0


   
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     선물 인버스 |선물 USDT