AVR firmware

AVR AD7792 SPI 인터페이스 모듈

tchan 2019. 5. 3. 12:40

AD7792는 외부 16bits ADC(Analog Digital Converter)이다.

 

AVR atmega 시리즈는 내부에 12bit ADC가 있으나, 종종 더 좋은 해상도가 필요할때가 있다.

 

먼저 사용방법은 아래와 같다.

ad7792_init();
...
uint16 data; // 16 bit adc value
if (ad7792_read_data(&data) == 0) {
  printf("adc value = %d\n", data);
}

 

AD7792_spi.c
0.01MB
AD7792_spi.h
0.00MB

물론, 회로도에 맞게 코드에서 포트번호를 맞춰주고 사용하여야 한다. 아래 부분에서 수정한다.

#define PORT_AD7792_CE PORT(C,1)
#define PORT_AD7792_CLK PORT(C,2)
#define PORT_AD7792_DATA PORT(C,3)
#define PORT_AD7792_RDY_DOUT PORT(C,4)

또한, ad7792_init() 부분에 레지스터 초기화하는 부분을 필요에 맞게 수정해주어야 한다.

이부분은 데이터시트를 보고 공부하면서 하시라.

  • 입력 전압 범위는 몇 V인지,
  • gain은 얼마로 할건지 (입력전압을 몇 배수로 측정할건지) 등등 

대부분의 칩 자료들은 영어로 되어 있다. 영어에 익숙해져야할 필요가 있다.

영어가 싫더라도 차근차근 읽어보면 익숙해진다. ^^;

꾸준히 읽어보면, 문학이 아니라, 금방 쉬워진다.