используйте pic10f222 внутреннюю абсолютную зависимость напряжения - PullRequest
0 голосов
/ 09 ноября 2018

Я хочу использовать АЦП PIC10f222, и у меня нет этой проблемы:

#include <10F222.h> 
#list 
#device PIC10F222 
#device adc=8 
#FUSES NOWDT                    //No Watch Dog Timer 
#FUSES NOPROTECT                //Code not protected from reading 
#FUSES NOMCPU                   //Master Clear Pull-up disabled 
#FUSES NOMCLR 
#FUSES IOSC4                    //INTOSC speed 4 MHz 
#device adc=8 
#use delay(internal=4000000) 
#define set_options(value){#ASM    \ 
                 MOVLW value   \ 
                   OPTION        \ 
                 #ENDASM} 

setup_adc(true); 
set_tris_b (0b111); //set as output 
set_options(0xDF);  // Enable pin B2 for normal i/o 
set_adc_channel(0); 
adc1=read_adc(); 

Но, когда при VDD изменения АЦП показывает различные значения (и это тоже хорошо, потому что опорное напряжение VDD).
Я посмотрел в паспорте PIC10F222 и обнаружил «абсолютное значение напряжения», равное:
результат = 0,6 * 256 / VDD Я могу получить ВДД из приведенного выше уравнения, а затем получить точное значение АЦП следующим образом:

adc_set_channel(2); 
adc1=read_adc(); 
vdd=0.6 * 256   / adc1  ; 
adc_set_channel(0); 
adc=read_adc(); 
//get the percise adc in popotion of VDD 
.... 

Но adc1 (эталон абсолютного напряжения не будет меняться с другим VDD от 4.9 до 5.2),
Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 19 ноября 2018

Чтобы прочитать эталон абсолютного напряжения для семейств PIC 10F2xx, который составляет 0,6 В, затем выполните это в компиляторе CCS C (который выглядит как то, что вы используете):

set_adc_channel(2);

Если вы используете другой компилятор, то сделайте следующее:

ADCON0 = (ADCON0 & 0xF3) | 0xC;

Это не полностью отвечает на ваш вопрос, поскольку вы подразумеваете, что хотите настроить АЦП PIC на использование этого эталона абсолютного напряжения для преобразования АЦП других каналов. Это ПОС не поддерживает это. Но вы могли бы использовать показания АЦП этого эталона абсолютного напряжения, чтобы определить, каков ваш VDD, и затем произвести необходимую компенсацию показаний АЦП в программном обеспечении.

...