Página 1 de 1
comunicação pc pic sem interface com max232

Enviado:
25 Abr 2010 14:49
por dcardoso
Boa tarde a todos.
Pessoal em um projeto existe um placa de controle de servos (robótica simples). Detalhe é que ela se comunica diretamente com o pc vis rs232 sem um ci para fazer a interface de sinais -12-0-12 (rs232) para 0-5 (ttl).
Pelo que me passaram essa placa possui dois resistores (um em cada via) para comunicação pc - pic.
Gostaria de saber (já que não pode ser alterado o controle dos servos) como fazer um pic comunicar com essa placa, como fazer essa ligação diretamente, uma vez que também não posso retirar esses resistores em série.
A mais um detalhe não esta sendo usado os pinos RX e TX do pic (16f628A).
Se alguém puder ajudar agradeço.
Daniel

Enviado:
25 Abr 2010 15:04
por rafael.wachter
Tu pode usar o PIC ligado em um MAX232 e esse MAX232 ligado na placa dos servos.

Enviado:
25 Abr 2010 15:26
por dcardoso
Irei testar, mas caso não funcione existe outra maneira.
Outra pergunta, qual o compartamente do circuito usando os resistores nas linhas de transmissão?
segue o link da placa que não possui o max232
http://roboticasimples.com/download/RS02V2.pdf
obrigado

Enviado:
25 Abr 2010 15:39
por vtrx
Voce pode usar tambem um circuito simples.


Enviado:
25 Abr 2010 15:46
por rafael.wachter
dcardoso,
Pelo que vi, na interface com o PC vem somente dois fios para a placa (GND e TX do PC), ou seja, essa placa soh recebe os dados do pc e não retorna nada.
O resistor seria para adequação dos niveis de tensão PIC 0-5V e PC -12V 12V.
Vc viu se tinha algum componente dentro do conector? Um diodo por exemplo, para evitar q o PIC da placa receba os -12V.

Enviado:
25 Abr 2010 15:47
por dcardoso
Desculpe falta umas informações.
Essa placa não pode ser alterada (da robótica simples) o que será feito é essa placa comunicar com outro pic (18fxxx), o detalhe é:
Pelo que entendi é o seguinte, essa placa da robótica simples (link em msg anterior) não possui o max para fazer interface com o pc (muito menos usar os pinos rx e tx do 16f628a).
o outro pic (18fxxx) irá se comunicar via rx e tx.
Clareou um pouco
e obrigado pela ajuda
daniel

Enviado:
25 Abr 2010 15:49
por dcardoso
não tem nenhum circuito adicional, não vi nada dentro do cabo.
[]ços

Enviado:
25 Abr 2010 19:44
por MOR_AL
1 - A malha de terra do cabo serial está ligada à placa? (Ou, a comunicação é em dois sentidos ou em apenas um?)
2 - Os níveis de tensão, da porta serial, enviados pelo PC variam entre:
+15V e +3V para '0' lógico e
-15V e -3V para '1' lógico.
Um dos resistores pode estar sendo usado para limitar a tensão que o PIC recebe do PC. Os diodos internos do PIC suportam até um máximo de corrente de 25mA (que não deve ser estabelecida como regular e sim, um valor menor). Daí a necessidade do resistor (limitar a corrente que entra ou sai do PIC).
O nível lógico '0' (entre +15V e +3V) é perfeitamente compreendido (devido às limitações de tensão de entrada no PIC, causadas pelos diodos internos e o resistor externo) pelo PIC.
O nível lógico '1' (entre -15V e -3V) também é compreendido pelo PIC, devido ao outro diodo interno e o mesmo resistor.
O problema é quando o PIC funciona como transmissor para o PC. Nesse caso deveria poder fornecer as tensões negativas. Como as tensões fornecidas pelo PIC variam de 0V a +5V, então o PC só identifica o nível '0', entre +3V e o +5V. Quando o PIC envia o nível 0V (ou próximo positivo), o PC não identifica esse nível.
Por esse último nível é que suponho que a comunicação ocorre apenas no sentido PC, PIC.
3 - Explique melhor sua intenção de ligar um PIC18F com um PIC16F268. Em princípio você não precisaria de alterar os níveis dos estados lógicos, uma vez que ambos possuem as mesmas tensões. Nem precisaria usar os pinos Tx e Rx em uma comunicação. Você poderia implementar a comunicação serial por software. Também poderia criar uma comunicação serial com o seu próprio protocolo. Ela poderia ser do tipo half-duplex (ambos os sentidos, porém não ao mesmo tempo) com apenas um pino do PIC18F e o PIC16F, além do terra.
MOR_AL

Enviado:
26 Abr 2010 00:34
por dcardoso
bom, vamos lá.
Seguinte pessoal este projeto é de um aluno de graduação da Unesp de São José do Rio Preto.
Moro aqui na cidade e leciono em um centro academico, trabalho um pouco com pic mas não sou nenhum especialista, um dos co-orientadores (mestrando) deste aluno foi meu aluno e me recorreu para ajudá-los.
O real orientador é o Prof Dr Mario Tronco, que sugeriu ao graduando para fazer a aquisição de dados, por meio de sonares, de objetos nos eixos X e Y, ou seja, (isso o que me passaram) haverá dois sonares, um para cada eixo, que irá mapear objetos colocados na região ativa do sonar.
Até ai tdo bem, o problema começa quando umas das imposições do orientador, é o uso desta placa de controle de servos, uma vez que ela precisa aparecer nos projetos (afinal é verba pública), se fosse por mim, desenvolveria um hardware para isso.
Sendo assim, esta placa só servirá para posicionar os sonares e a aquisição dos dados será feito pelo pic 18fxxx, que também está embarcado em uma placa com barramento CAN desenvolvida na USP de São Carlos. Por isso da utilização e integração desse hardware.
Resumindo o problema é: a placa CAN possui interface serial com max232 e a placa dos servos possui a comunicação serial como foi mostrada até agora. O grande lance é a integração desses hardwares.
Sobre a pinagem da placa dos servos e outros detalhes que até aqui haviam sidos solicitadas, repassei para o mestrando que irá me enviar esses dados assim que os tiver em mãos eu posto aqui.
[]ços
Daniel

Enviado:
02 Mai 2010 15:08
por dcardoso
Bom galera, quanto a esse tópico ele foi resolvido.
A comunicação pic com essa placa da robótica simples, necessita do max232 para fazer o casamento dos sinais.
e outro detalhe era o envio dos dados para a placa, pois os endereçamentos estava sendo enviado em forma hexadecimal (até agora não sei pq) passando para decimal deu certo.
era utilizado putchar (0x07) trocado por putchar(7), lógico trancando todas as referencias a isso e outros detalhes, passou a funcionar.
[]ços
e obrigado pela ajuda
Daniel