회원가입 ID/PW 찾기
AA

msp430f1611을 사용하고 있는데 ADC에서 읽어들인 값하고 직접 테스터기로 찍은 값이 달라요.

왜 그런가요?

그리고 책에 Nadc = 4095 * Vin - Vr-/Vr+  - Vr-  이게 무엇을 의미하는 지 궁금합니다..

 

P6SEL = 0x01;

 

void adc_init()
{
 ADC12CTL0 = ADC12CTL1 = 0;

 /** must be ENC = 0 **/
 ADC12CTL0 |= ADC12ON;         //ADC core enable. (consumes power)
 //ADC12CTL0 |= REFON;         // internal reference voltage on
 //ADC12CTL0 |= REF2_5V;         // reference generator voltage 2.5V (or 1.5V). REFON must be set.
 //ADC12CTL1 |= CSTARTADD0;      // conversion memory register start adress[0~3] (ADC12MEM0~ADC12MEM15)
 
 ADC12CTL1 |= ADC12SSEL0; // ADC12CLK = ACLK. ADC12 clock source - 00:ADC12OSC (consumes power), 01:ACLK, 10:MCLK, 11:SMCLK
 //ADC12CTL1 |= ADC12DIV0; // ADC12 clock divider[0~2]  - divide by 1~8
 
 ADC12CTL1 |= SHP;         //ADC12 Pulse Sample Mode (or Extended Sample mode)
 ADC12CTL0 |= SHT01 | SHT00; // 32 ADC12CLK cycles sampling. SHT1x, SHT0x - sample and hold time. only for when SHP =1. 
 //ADC12CTL0 |= MSC;         // Multiple sample and conversion. only for sequence or repeated modes.(ref. CONSEQx)

 //ADC12CTL1 |= SHS0 | SHS1; // Sample-and-hold source - 00:ADC12SC bit, 01:TA1, 10:TB0
 /*******************/

 //ADC12CTL1 |= CONSEQ0 | CONSEQ1; // ADC12 conversion sequence select (00:single channel and conversion, 01:sequence channel, 10:repeat single channel, 11:repeat sequence of channels)
 //ADC12CTL0 |= ENC;         // ADC12 Enable Conversion
 //ADC12CTL0 |= ADC12SC;         // ADC12 start conversion
}


u16 adc_convert(u08 adc_channel)
{
 u16 adc_result;
       

 /** must be ENC = 0 **/
 ADC12CTL0 &= ~ENC;
 switch (adc_channel)
 {
  case 0 :
   ADC12MCTL0 = INCH_0; break;
  case 1 :
   ADC12MCTL0 = INCH_1; break;
  case 2 :
   ADC12MCTL0 = INCH_2; break;
  case 3 : 
   ADC12MCTL0 = INCH_3; break;
  case 4 :
   ADC12MCTL0 = INCH_4; break;
  case 5 :
   ADC12MCTL0 = INCH_5; break;
  case 6 :
   ADC12MCTL0 = INCH_6; break;
  case 7 :
   ADC12MCTL0 = INCH_7; break;
  case 10 :
   ADC12MCTL0 = INCH_10; break; // temperature diode
 }
 /*******************/

 ADC12CTL0 |= ADC12SC + ENC; // SHI = 1
 ADC12CTL0 &= ~ADC12SC; // SHI = 0
 // wait until the conversion completes; ADC12BUSY?
 while (ADC12CTL1 & ADC12BUSY);
 ADC12CTL0 &= ~ENC;
 
 // 12 bit data mode
 adc_result = ADC12MEM0;
  
        
 return(adc_result);
}

                                      이렇게 해서 값을 읽어 들인값하고 테스터기로 찍어보면 나온값하고 어떻게 비교를 해야 하나요..위에 공식으로 적용을 해야하는지..   

전압은 0.6V가 나오는데 위에 대로 읽어 들인값은 744 값이 나옵니다.. 

전압인가는 5V를 넣어주었고..  

댓글 1
  • No Profile

    Nadc = 4095 * (Vin - Vr- ) / (Vr+ - Vr- ) 공식을 적용하여 값을 환산해야 입력된 전압 값을 알 수 있습니다. 

    4095 는 ADC가 12BIT로 2^12 의 Resolution을 갖기 때문에 변환 가능한 값의 범위가 0 ~ 4095 이고 , 그 최대 값을 나타내는 것 입니다.

    Vr- 는 마이너스 기준 전압 (보통 0v) , Vr+는 플러스 기준 전압 ( 보통 CPU 전원 3.3V ) 입니다.

    따라서 공식을 다시 쓰면 Nadc = 4095 * Vin / 3.3V 이 됩니다.

    Nadc = 4095 * 0.6V / 3.3V = 744

    더 예를 들어 보면

    입력 전압이 0V 이면 AD 값은 0 ,

    입력 전압이 1.65V 이면 AD 값은 2047

    입력 전압이 3.3V 면 AD값은 4095 가 됩니다.

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
928 마이크로프로세서 l4949 datasheet를 보고 질문 드립니다.1 wjddmltn23 203 2014.05.21
927 마이크로프로세서 c프로그램 문의 입니다.3 까칠한금자씨 356 2014.05.15
926 마이크로프로세서 RTC관련하여 질문드립니다.1 火난놈 214 2014.05.07
925 마이크로프로세서 MSP430에 대해서 질문인데요... 주파수 계산 ALCK의...1 구그하므니다 314 2014.04.27
924 마이크로프로세서 pic porta 인터럽트에 관해서1 모기근성 313 2014.04.03
923 마이크로프로세서 인터럽트 선택적 on/off 질문1 내컴이야 363 2014.02.14
922 마이크로프로세서 HOTkeil 컴파일러 에서 왜 이런에라가?2 강원도 630 2014.01.12
921 마이크로프로세서 프로그램 시작 하려 합니다.2 서봉 199 2014.01.05
920 마이크로프로세서 HOTPADS 자삽 데이터 작성법 좀 알려 주세요.1 SS 838 2013.12.18
919 마이크로프로세서 HOT인체감지모듈 어셈블리어 질문1 lacoca 577 2013.12.14
918 마이크로프로세서 HOT8051 mcu를 사용한 압력조절장치 프로그램이 필요합니다. ndk 514 2013.11.13
917 마이크로프로세서 HOTavr과 근접센서 질문드립니다!2 고냥정권 749 2013.11.01
916 마이크로프로세서 layout footprint를 allegro에서 열 수 있나요? 갈아만든공돌이주스 296 2013.10.29
915 마이크로프로세서 프로그램 다운로드 관련1 청풍근이 305 2013.10.16
914 마이크로프로세서 내부eeprom에 대한 질문_delay jaemi2010 393 2013.10.08
913 마이크로프로세서 Cooper의 일부분을 드러나게 하고 싶습니다.1 곤곤 241 2013.09.24
912 마이크로프로세서 HOTpickit3 에넣은 hex 추출가능한지?1 야니 656 2013.09.15
911 마이크로프로세서 HOTAT90CAN128 통신 관련 질문드립니다 Twinkle 582 2013.07.23
910 마이크로프로세서 HOT상단메뉴에 있는 '계산기'란 카테고리에 대하여... 음악은나의삶 408 2013.06.17
909 마이크로프로세서 HOT모터 제어 하나만 더물어볼게여 ㅠ2 sksksksksksk 596 2013.06.16
Prev 1 2 3 4 5 6 7 8 9 10 ... 50 Next
  • 돈은 빌리지도 말고, 빌려주지도 말라. 빌려주면 흔히 돈과 친구 모두를 잃는 수가 있기 때문이다.
    - 세익스피어
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.