Dúvida sobre Ad hc908qy2cp

Software e Hardware para uC da Qualcomm, NXP, FreeScale e Motorola

Moderadores: 51, guest2003

Dúvida sobre Ad hc908qy2cp

Mensagempor tmarchesi2 » 26 Jul 2007 00:59

Bom dia a Todos.

Estou com a seguinte dúvida.
É possível ajustar a tensão de referência dos microcontroladores da linha HC908qy2cp ?
Eu andei pesquisando no livro do Fábio Pereira e lá ele comenta que a referência está amarrada junto a tensão do pino de alimentação, no caso 5V.
Caso não seje possível, exite algum artificio ?

Eu vi um projetinho funcionado da seguinte forma, conforme diminuia a tensão na entrada do AD, a grandeza medida aumenta de valor, porém o negócio nao é linear.
A 4,9V na entrada do AD eu tenho 0 graus no display.
Porem a 1,089V eu tenho o valor maximo da escala 995 Graus.
Fazendo as contas com 8 bits não consegui chegar a grandes conclusões.
Nas minha contas para o menor valor de temperatura eu achei uma lógica porém quando tenho 1,089 V nao consigo chegar a 995graus matematicamente, mesmo chutando um valor pra uma suposta junta de compensacao, algo que aparentemente o instrumento também não tem.

Eu não pesquisei no datasheet do componente e também não trabalho com a linha motorola, preferi postar neste forum por ter mais opnioes.

Aos desenvolvedores desta tecnologia, fica esta pergunta

Abraço a todos, Grato
tmarchesi2
Nibble
 
Mensagens: 69
Registrado em: 23 Fev 2007 13:45

Mensagempor fenix3 » 26 Jul 2007 01:05

A serie A (QT2A) tem ad de 10 bits que podera contar ate 1024.... ai pode chegar na escala que voce pecisa....de grau em grau.

O QT2 tem AD de 8 Bits que podera contar ate 255....ai poderia incrementar a escala de 6 em 6 graus por exemplo....
Luis Fenix
Maaaaraaaaviiilhaaaaaa! (Bem devagar para irritar a todos).
Avatar do usuário
fenix3
Byte
 
Mensagens: 317
Registrado em: 12 Out 2006 03:46
Localização: Minha sala, ora pois!

Mensagempor leoabubauru » 27 Jul 2007 09:06

Olá tmarchesi2!

De fato o AD de toda a família 908Q é amarrado no Vdd. O Fênix te deu uma boa dica ao sugerir o QY2ACP devido à resolução do AD ser de 10 bits (o que é mais aconselhável nesse caso de medição de temperatura relatado por você).

Com relação à linearidade, realmente são poucos os sensores de temperatura que são lineares. Pra falar a verdade lembro-me somente do PT100 e, mesmo assim, a linearidade não acontece em toda região de trabalho. Na maioria dos casos a relação é logaritmica. Um fabricante me forneceu a tabela de um NTC certa vez. A curva era formada por 4 equações, ou seja, a curva "logaritmica" era dividida em 4 partes, é mole?

Existem outros tipos de sensores (tipo K, J, etc) e eles não são lineares. Isso implica que você terá que dispor de memória suficiente para implementar a tabela de conversão ou obter as equações que compõem a curva.

Espero ter ajudado!

Laercio
Tento, tento e tento...
Me arrebento!
Também bato!
Ô negocim bunitim essa tal eletrônica de barco!
leoabubauru
Byte
 
Mensagens: 227
Registrado em: 21 Nov 2006 19:08
Localização: São Paulo

Mensagempor tmarchesi2 » 27 Jul 2007 13:18

Obrigado aos colaboradores;

Resumindo o que também estou fazendo é o o seguinte:
Estou tentando criar um circuitinho pra medir temperatura com 10 bits, e o projeto que estou usando como refêrencia tem 8 bits.
Mas é como é de conhecimento da maioria, os sensores não é linear.
Vou criar vários "if" e uma variável de "offset" conforme o valor for ficando fora, eu vou compensando via software mesmo.

pois não preciso de tanta precisão assim, posso ter um erro de 10 graus pra cima e pra baixo. O termopar que estou fazendo os testes é o tipo K.

Mas muito obrigado pela ajuda de todos

Muito Grato Thiago
tmarchesi2
Nibble
 
Mensagens: 69
Registrado em: 23 Fev 2007 13:45

Mensagempor leoabubauru » 27 Jul 2007 13:41

tmarchesi2

Não seria melhor você usar um tabela (matriz) ao invés de "if" aninhado?
O QY2 ou QY2A tem 1536 bytes. Poderia deixar 512 bytes para valores de temperatura e o restante para o código do soft. Se seu soft for muito, mas muito grande mesmo, use um QT4A que tem 4096 bytes.


seria mais ou menos assim:

const char TAB_TEMPERATURA[512] @0xF800 = {0x41,0x54,0x53,0x4B,0x49,0x44, etc};

E com uma equação você acessa os elementos que são os valores de temperatura:

TEMPERATURA = TAB_TEMPERATURA[ADR * x];

onde "x" é uma constante a ser calculada por você e ADR o registro do AD do micro. Pensei na constante "x" pois você poderá encontrar dois ou mais valores em ADR que correspondam a uma única temperatura. Isso pode também ser corrigido colocando elementos repetidos na tabela, mas isso diminuiria a quantidade de valores diferentes de temperatura que seria capaz de converter.

const char TAB_TEMPERATURA[512] @0xF800 = {0x41,0x54,0x53,0x53,0x53,0x44, etc};
Tento, tento e tento...
Me arrebento!
Também bato!
Ô negocim bunitim essa tal eletrônica de barco!
leoabubauru
Byte
 
Mensagens: 227
Registrado em: 21 Nov 2006 19:08
Localização: São Paulo

Mensagempor tmarchesi2 » 30 Jul 2007 00:10

Olá leoabubauru;

Muito obrigado pela dica, muito interessante o seu exemplo, porém preciso estudar melhor a parte de matriz,ponteiors e vetor. Eu não tenho tanto conhecimento em software para fazer algo mais sofisticado, apenas o básico.


Muito grato pela atenção, quando eu terminar eu posto os comentários.
tmarchesi2
Nibble
 
Mensagens: 69
Registrado em: 23 Fev 2007 13:45


Voltar para NXP (ex-FreeScale (ex-Motorola))

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

x