본문 바로가기
자동차 임베디드 SW/Aurix MCU

Aurix Adc 기본개념 완벽 정리

by 존버매니아.임베디드 개발자 2022. 8. 3.
반응형

Aurix 2G 제품의 EVADC 특징 정리
Aurix1G 제품의 VADC와 같은 기능인데 추가된 기능이 약간 있고 컨버젼 속도가 빨라짐.
Enhanced VADC의 약어다.


하나의 mcu 안에 다수개의 Converter가 들어있다.

각 converter는 primary , Secondary 로 구분된다.

primary와 secondary의 차이는 컨버젼 속도 그리고 연결되는 Adc channel의 갯수다.

primary가 secondary보다 컨버전 속도가 빠르다.
참고로 secondary의 컨버전 속도는 aurix 1g의 vadc와 같다.

한편, 채널갯수는 primary가 최대8개. secondary가 최대16개 연결된다.

adc conversion을 실제로 수행하는 단위는 converter다.
그러므로, 여러개의 adc channel을 동시에 adc conversion 하려면 converter를 여러개 써야한다.

하나의 converter 내부에는 각각 3개의 queue가 있다. 이 queue를 group이라고 부르기도 한다.
다시 말하지만 실제로 conversion을 수행하는것은 converter이다. group이 3개 있기는 하지만 하나의 converter에서 3개의 group이 동시에 conversion 될 수는 없다.


컨버젼 하려는 adc channel을 컨버전 하려는 순서대로 group에 enqueue로 집어넣은 후, conversion start 트리거를 가하면 큐에 담긴 채널이 하나씩 순차적으로 컨버전 되는 형태로 동작한다.

이때 start triger는 크게 sw , hw 로 나뉘며
hw trigger는 크게 gate와 edge로 나뉜다.
gate는 adc의 trigger로 사용되는 입력 신호가 high인지. low인지에 따라 트리거가 되는거고 edge는 입력신호의 edge 발생이 트리거가 된다.
이때, rising. falling. both 중 어떤 엣지를 트리거로 사용할지는 설정이 가능하다.

이때 트리거로 사용되는 입력신호는 aurix 내의 tom. atom.ccu6 채널의 아웃풋이 될 수 있고 이 외에도 몇 종류가 더 있는데 지금 기억이 안난다.

한편 sw trigger는 그룹을 컨트롤 하는 특정레지스터의 특정 비트필드를 set 하면 된다.


한편, queue에 담긴 각각의 채널이 컨버젼이 완료됐을때, 해당 채널을 다시 큐에 enqueue로 자동으로 넣는 기능이 있다.

또 한편, queue에 담긴 채널 하나가 trigger에 의해 컨버젼이 완료됐을때. 큐에 남아있는 뒤따르는 채널도 자동으로 conversion start 하도록 할 수도 있고. 안할수도 있다.


예를 들어 그룹하나에 채널 1 2 3 4 가 들어있을 때,
해당 그룹을 sw로 트리거하면 채널1이 일단 컨버젼완료 될 것이다. 앞에서 말한 기능을 사용할 경우 유저가 다시 sw trigger를 하지않아도 채널1의 컨버젼 끝나면 뒤에 채널2도 컨버젼되고 또 남은 채널3이 컨버젼되고..
이런식으로 동작한다.

만약 앞의 기능을 꺼놨으면
sw trigger하면 채널1만 컨버전되고 끝.그리고 큐에는 2 3 4 가 남아있음. 이 상태에서 또 trigger 하면 채널2가 컨버젼되고 끝.
이런식으로 동작한다.

한편, 채널 컨버젼 끝나고 다시 자동으로 큐에 넣는 기능이 있다고했는데, 이 기능과 앞에서 설명한 기능을 조합하면. 트리거 한번만 하면 채널들의 adc conversion이 계속해서 무한 반복동작 하는 식으로 구성할 수 있다.
MCAL ADC 기능중에 Continuous conversion이라는 기능이 있는데, 이 기능을 위와 같은 방식으로 구현하면 된다.




반응형