Página 1 de 1

bug , ou não ?

MensagemEnviado: 14 Abr 2008 15:01
por rebelk
fiz um programa em C ccs , que aciona duas solenoides com pwm
, um transistor tip147 ( pwm ) e dois mosfets irf540 ( envia 0v )para as solenoides , só que quando ligo o circuito , as duas solenoides são acionadas e depois desliga , não sei o que acontece , mas o pic 16f876 na hora do reset coloca em alto essas saidas , o pic esta igual ao 8051 , quando é ligado ativa as saidas para alto , como soluciono isso ?

MensagemEnviado: 14 Abr 2008 16:01
por ze
pull down. 1K pino do pic pro gnd. (e da base/ gate - gnd! se for ruído, cap)
se não resolver:
-crazy wdog no hw:
o conceito: pulsos em 1 pino liberam a ativação dos transistores de saída. sem pulso=inibe. portanto, só funciona com cpu "viva". interessante pro caso dela "morrer".
o circuito: [pino pulso]--[cap]--[diodo-anodognd]-[diodo]--[capgnd]->
este sinal = 1 = ok = na base de TR -> coletor nos E dos acionadores.
takepareu...confusão!!!

MensagemEnviado: 14 Abr 2008 16:03
por EDSONCAN
Se não me falha a memoria o default do pic no reset são todos os pinos como entrada e pull-up acionado.

Edson

MensagemEnviado: 14 Abr 2008 17:09
por zielpunkt
Mantém o micro em reset (na marra, no MCLR) antes de ligar o teu circuito:- se normalizar, verifica como está configurando o reset, pinos, periféricos internos, e/ou aumenta o tempo dele (reset) por r/c externo - use o MCLR. Duvide até da sua fonte. Como é que está acionando estes mosféticos?...Pull-down é uma boa idéia, desde que o teu circuito de acionamento esteja bem elaborado. Isso não é o comportamento normal do micro. Deve ser alguma cagadinha básica.




Abço.

MensagemEnviado: 14 Abr 2008 17:25
por Sergio38br
Durante todo o reset os pinos do PIC, são configurados com entrada e nivel 1, vc teria de isola-las com um PNP.

Sergio

MensagemEnviado: 14 Abr 2008 21:27
por zielpunkt
Sergio, discordo de você:

Seja no POR (Power On Reset), BOR (Brown Out Reset) e todos os demais resets, o registrador TRIS, por estar com os seus bits em nível "1", garante que os pinos de determinado PORT estejam como entrada e, portanto, em alta impedância. Então, nesse momento, o estado dos pinos - como entradas - são desconhecidos (podem assumir qualquer valor). Um pino de entrada, sob o ponto de vista do micro, não apresenta um nível lógico tal qual uma saída, a não ser em caso de o pull-up interno estar habilitado para aquele pino, o que não ocorre no momento do reset por power-on. Para conferir, verifique o manual do PIC16F87xA (DS39582B-page 44), onde trata do PortB, por exemplo:

Imagem

Acho que o problema do rebelk pode estar na falta de uma polarização adequada nos transistores, pra segurar um estado de corte no momento do POR. Ou, quem sabe, um erro na inicialização do micro, pelo software.

Abço.

MensagemEnviado: 15 Abr 2008 08:14
por Sergio38br
Concordo contigo em parte , no manual esta bem explicado, mas na pratica, tive um problema parecido com pinos que utilizo como saida para acionamento, principalmente solenóides, fiz testes colocando um loop infinito logo depois da saida do reset, o velho goto $ , com o osciloscópio verifiquei que os pinos estavam em high a maioria das vezes, por isso a sugestão do PNP.

Sergio

MensagemEnviado: 15 Abr 2008 09:53
por ze
opção+=1

Código: Selecionar todos
                        (+V)                                (+V)
                         |                                   |
                        | |                                 | |
                        |_| carga                           |_|carga
                         |                                   |
                       |/                                  |/
   PIC---[resistor]----| bc817         PIC---[resistor]----|  bc817
                       |\                                  |\
                         |___________________________________|
                                             |
                                             |
                                             |
                    ------|<----             |
                   |            |            |
                   |            |           |/ 
            (+5)---o-----[R]----o-----o-----|   bc817 [e/ou relé]
                                |     |     |\ 
                              -----  ---     |
                         [C]  -----   ^      |
                                |     |      |
                                |     |      |
                                |_____|______|
                                      |
                                    [gnd]



+- autoexplicativa

MensagemEnviado: 20 Abr 2008 19:38
por rebelk
zielpunkt , eu fiz o que vc falou , o problema era um resistor pullup , retirei ele e o defeito foi solucionado.

MensagemEnviado: 21 Abr 2008 20:12
por zielpunkt
Blz...