Página 1 de 1

AD do QY4

MensagemEnviado: 12 Jan 2007 07:18
por jow
olá pessoal..estou tendo um problema com o AD do QY4 e gostaría de qualquer tipo de ajuda...O problema é que quando configurado, no meu caso utilizo o PTA0, ele gera uma tensão de aprox. 0,4V ; e o problema não está no meu cirucito pois qdo retiro o uC está não aparece mais e, ainda, como I/O nenhuma tensão aparece, donde concluo que o problema deve estar no AD....Alguém já teve esse problema?

valeuz!

MensagemEnviado: 15 Jan 2007 12:53
por fenix3
Ola Jow,

Voce desativou o resistor Pull-UP, ou Pull-DOWN, selecionou o pino para conversao correto, configurou como entrada...

Trabalho com este chip a anos e nunca tive um problema similar...

MensagemEnviado: 15 Jan 2007 14:06
por jow
ola fenix,

eu configurei o portal,no meu caso PTA0, como o canal de AD que queria....não configurei o Pull-up/Down pois acredito serem necessários somente quando o pino é utilizado como I/O de proposito geral, mas por desencargo eu desabilitei o pullup atraves do PTAPUE0 e mesmo assim não deu certo....Aí levantei "literalmente" o pino do uC e vi uma tensão de aprox. 1,8V...Não contente desabilitei este canal e habilitei o PTA1 para AD, e verifiquei o mesmo, após levantá-lo também...Como entrada normal não paereceu tensão nenhuma, como era de se esperar....mas é só habilitar o AD e pronto...lá está a tensão indesejada....Pra resolver coloquei um resistor pra "descarregar" está tensão e conclui por ora desse jeito: uma "gambiarrinha"... rs
Cara, fiz muitos testes, reli o datasheet pra ver se não havia mais nada a ser considerado e nada mais encontrei...Espero, no bom sentido, que alguém tenha passado por algo semelhante pra me ajudar....de qaulquer forma valeu por enquanto....

MensagemEnviado: 15 Jan 2007 23:56
por fenix3
Por acaso voce esta rodando em modo monitor, durante o modo monitor o micro ate le o pino mas ele estara usando para comunicacao com o soft de simulacao, mesmo que nao esteja usando, verifique se os vetores de interrupcoes, principalmente o de reset esta programado com algum valor diferente de $FF,

Voce esta usando algum exemplo de projeto ja pronto, ou fez tudo do zero?

MensagemEnviado: 17 Jan 2007 07:05
por jow
Então...não estou no modo monitor não, somente uso para gravá-lo com uma plaquinha que tenho aqui.....depois ponho o uC no circuito e blz....
Agora, o lance dos vetores...não estou utilizando nenhuma interrupção neste projeto e o de RESET não tenho certeza, pois o projeto não foi do "zero", pois o CodeWarrior cria algumas coisas no Project Wizard, certo? aí verifiquei no .prm e ele indica uma rotina "_StarTup" que achei dentro do "Start08.c" também criado por ele...Foi aí que gerou duvida, pois não consegui descobrir o valor carregado no vetor RESET, porém acredito que só isso não faria ele entrar no MON, faria? Não sei...e os outros 3 pinos que utilizo como saída (PTA3, PTB4 e PTB5) não funcionariam em MON, certo?

daí, continuo sem uma conclusão do quepode estar ocorrendo....Quando voce configura o AD NUNCA viu nada disso ocorrendo? Tipo um tensão indesejável quando seu circuito, por exemplo, colocava zero na entrada do AD?

valeu por enquanto, se tiver uma idéia de teste que eu ainda não tenha feito, me manda que eu faço e reporto aí pra gente.....

MensagemEnviado: 17 Jan 2007 08:23
por fenix3
Se os vetores de reset e interrupcao entiverem com $FF o micro durante o "BOOT" vai procurar os novos enderecos de reset em outra area de memoria, com enderecos perto dos vetores, esta descrito na parte do manual que trata da gravacao da FLASH, e acaba entrando em modo monitor se estiver programado, ajuda muito neste modo durante o desenvolvimento do soft.........

Um teste facil seria trocar o pino que voce ta lendo do AD, por exemplo PTA1, e verificar o novo comportamento....

Nuca esquecendo que em nenhum pino pode receber uma tensao maior que 5V, a nao ser o pino de IRQ que durante a programacao pode receber ate 8,5volts.

MensagemEnviado: 17 Jan 2007 09:13
por jow
ok....já verifiquei e os valores estão corretos...

Então, já fiz este teste do PTA1...escrevi no outro post....Mas olha só....refiz por desencargo......cara, eu "levantei" os pinos do uC....primeiro o PTA0 e depois o PTA1 (claro que regravei o software nesse intervalo mudando o canal do AD de 0 pra 1); e testei desabilitando o PTAPUE ou nem mexendo com ele, nos dois casos, e obtive o MESMO resultado....não entendo, a tensão é de aprox. 2,5V com osciloscópio ou multimetro digital ou analógico (pra Não ter dúvida)....
continuo sem entender....está "aberto" , pra mim é óbvio que vem do uC, e não vejo que configuraçõe está errada ou sei lá.....

meu...se quiser e puder faça o teste vc mesmo e verifique esta condição!

aguardo qquer outra dica....valeu de novo!!!

MensagemEnviado: 17 Jan 2007 11:19
por fenix3
Certa vez, devido a definicao errada de tipo estava definindo um valor para uma constante de forma errada, e quando executava o comando que eu achava que estava carregando em uma posicao especifica da memoria ram, na verdade estava encrevendo em um endereco definido pelo valor contido no registrador, no momento estou programando em assembler, seria tipo assim:

registro EQU $30
registro EQU 30

LDA registro
LDA #registro

Estes sao apenas exemplos, mas outras variacoes poderao ocorrer, ai haja paciencia...Ja perdi algumas horas!

So usei o AD em poucos produtos ate agora usando os JK1 e QY4, e nao tive problemas....diretamente com o pino...

Vamos testando!

MensagemEnviado: 17 Jan 2007 12:45
por jow
é...entendo....só muitos testes poderão trazer uma conclusão....estou programando em C...se puder dê uma olhada abaixo no que escrevo na configuração do uC:

//configuração de direcionamento dos portais:
DDRA_DDRA3 = 1;
DDRB_DDRB0 = 0;
DDRB_DDRB4 = 1;
DDRB_DDRB5 = 1;

PTBPUE_PTBPUE0 = 1; // habilita o Pull-Up interno para o PTB0

//configuração do AD:
ADSCR = 0x20; // continuous conversion + AD no PTA0


só isso de configuração de portais e AD...daí já vou pro main()...

Enfim, se chegar a uma conclusão "posto" aí pra tomarmos conhecimento....valeu!!