Página 1 de 2

Acho que estou pirando.... (RS-232)

MensagemEnviado: 22 Jul 2009 10:51
por B-EAGLE
Pessoal, sempre mexi com PIC e outras coisas a mais comunicando pela porta serial, usando um MAX232 (5v) ou um MAX3232 (3v3) com os 5 capacitores de 100nF, aquele circuito clássico, exatamente como em todo datasheet tem.

Só que essa semana montei um circuito com um PIC24HJ64GP202, usando a UART1 ligando num MAX3232 da Maxim.

o RX da UART1 foi remapeada para RP0 e o TX para RP1, taxa de transmissão 9600. foi feito um loopback no pic por interrupção.

essas amostras foram tiradas do ponto entre o TX do MAX3232 e o RX do PC:

Quando eu mando 1 byte ('K'):

Imagem

o lado TTL do circuito tá bunitinho, níveis todos ok.

Quando eu mando 2 bytes ("KK") pro pic:

Imagem

Quando eu mando 3 bytes ("KKK" pro pic:

Imagem

e assim sussetivamente....

alguém pode me explicar o porque disso? já troquei o max, capacitores, cabo, pc, tudo, só o pic que não, mas ao meu ver ele tá ok... pode ser ele será?


valeu pessoal!
abraço!

MensagemEnviado: 22 Jul 2009 11:20
por RobL
Você está medindo entre o Max e o PC, certo?
Se sim, veja que os pulsos na entrada dos transceptores do Max estão ok.
Então não é o micro.
Note que após o tempo do primeiro K, ou seja, a continuação do segundo K, aparece um capacitor na linha. Veja a exponencial tanto na parte de cima como na de baixo do pulso.
Me parece que alguém não está aguentando fornecer corrente adequadamente por um tempo maior que o primeiro K.
Verifique a alimentação do Max. Tem capacitores entre +Vdd e Vss?
Meça com o scope a alimentação do Max.
Se não estiver aí, deligue o cabo, envie os 2 ou 3 caracteres e veja, com o scope, se normaliza. Se ficar ok, alguém está consumindo acima do esperado nessa linha.

MensagemEnviado: 22 Jul 2009 11:33
por tcpipchip
hummm....talvez um microcurto...tentou remover e resoldar o MAX3232 ? Se voce usou o MAX232, nao inverteste algum CAPACITOR ?

MensagemEnviado: 22 Jul 2009 11:57
por B-EAGLE
Agora acho que fica mais fácil de visualizar:

Imagem


ambos os canais, tanto amarelo quanto azul são da RS-232, o amarelo é o TX do PC e RX do MAX, o azul é o RX do PC e TX do MAX...


medi a alimentação do max e está OK, coloquei um capacitor de 47uF eletrolítico entre o vdd e vss perto do max, troquei os capacitores de 100nF cerâmicos por de 1uF eletrolíticos e não adiantou em nada... fica exatamente mesma coisa...

tcpipchip, o max e os capacitores estão numa plaquinha e o pic na protoboard, já troquei a plaquinha, soldei outro max, tudo....

MensagemEnviado: 22 Jul 2009 14:22
por RobL
Tem um cap cerâmico (não eletrolítico) de 100kpf (100nF) em cima dos pinos da alimentação (em cima mesmo) do MAXxxx ?

Verifique com o scope desligando a carga do lado pc (sua linha em azul) e transmita para o pc. Veja como ficam os pulsos. Se sem carga não der para medir simule com um resistor puro em torno de uns 3 a 4 K ohm (este é um valor fora do padrão RS232, bem leve). Verifique se os pulsos ficam corretos.

Se ficar bom, mude o PC (ou teste com outro pc)!!! Tem algo errado na entrada dele.


Tem certeza que isto não está ocorrendo na entrada (lado TTL do Maxxx)?

MensagemEnviado: 22 Jul 2009 14:50
por xultz
Teria como você capturar o pino de TX do PIC (saindo TTL) num canal e o mesmo sinal na saída do MAX232?
Se o sinal do PIC estiver quadradinho e na saída estiver avacalhado, desligue o cabo serial e faça a mesma medição com a saída do MAX em aberto.
Se continuar avacalhado, a treta está na placa, sincronize o scope na saída do PIC e com o outro canal meça a alimentação. Se a alimentação estiver lisinha o tempo todo, meça os pinos de saída de +10V e de -10V do MAX da mesma maneira.
Depois conta o resultado :) esse é o tipo de defeito legal de procurar, bem mais legal que ficar caçando ponteiro perdido no meio do firmware ;)

MensagemEnviado: 22 Jul 2009 16:21
por B-EAGLE
RobL, já testei com outro PC e outro cabo... e tem o capacitor cerâmico na alimentação do max sim....

xultz, TX do PIC (3v3 no amarelo) e TX do MAX (rs232 no azul):

Imagem



entrada no pic (amarelo) e saída do pic (azul), ambos TTL:

Imagem



dá pra ver que o problema ocorre quando há sinal no TX e RX do max simultaneamente, agora porque, sabe-se lá! heauehaae

MensagemEnviado: 22 Jul 2009 18:23
por Djalma Toledo Rodrigues
O comum - GND - esta sendo interligado no cabo RS232 ?

A análise das fórmas de onda do Osciloscópio indicam que o circuito fica aberto na descida dos Pulsos, observa-se uma oscilação e decaimento exponencial
próprio de descarga de capacitor.

Além disso se nota uma elevação, um degrau, no topo dos pulsos TX coincidente com o pulso RX

Verifique bem de + 5 V e GND estão realmente interligados entre o Protoboard e a Placa do Máx232.
.

MensagemEnviado: 22 Jul 2009 18:57
por B-EAGLE
Djalma, acabei de verificar, o MAX3232 está apropriadamente alimentado com 3.3V, e o GND do cabo está interligado com o do circuito.

MensagemEnviado: 22 Jul 2009 19:05
por B-EAGLE
lembrando que o PC e o PIC se comunicam,

só alguns caracteres que o PC 'interpreta' errado, tipo 'o' vira 'g', 'a'...
mas a maioria aparece certo no docklight ou hyperterminal...

MensagemEnviado: 22 Jul 2009 23:59
por Sergio38br
Boas , experimente montar um cabo com apenas o gnd,tx e rx e veja se ocorre o mesmo problema...

[ ]`s
Sergio

MensagemEnviado: 23 Jul 2009 09:17
por B-EAGLE
Sérgio, fica mesma coisa...

MensagemEnviado: 23 Jul 2009 10:25
por Sergio38br
Este MAX3232 que vc esta utilizando e o outro que vc ja trocou, vc sabe se são do mesmo lote??

Pergunta idiota , mas vc sempre utilizou este tipo de integrado e de repente aparece algo do tipo. Muito estranho..

[ ]'s
Sergio

MensagemEnviado: 23 Jul 2009 10:28
por B-EAGLE
já usei 2 da Maxim, do mesmo lote, mas usei também um da Texas.... e nada :S


tá russo viu

MensagemEnviado: 23 Jul 2009 10:49
por Sergio38br
ta usando cabo manga ou fio para o cabo serial??

[ ]'s
Sergio