Comunicação entre 2 msc1211

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Comunicação entre 2 msc1211

Mensagempor Pianta » 04 Mar 2008 01:19

Olá eu estou postando minhas dúvidas aqui, pois o 8051 e msc são praticamente iguais alterando só nome de alguns regis. e organização dos pinos, mas vamos a minha dúvida. Primeiro Estou tentando comunicar esses dois UC, porém estou com dificuldades sei que preciso colocar um como UC escravo, vem a primeira dúvida como vou setar esse UC via software como escravo, outra pergunta eu estou programando os timers1 deles e tentando usar o Tx1 e Rx1 para comunicar entre eles a Tx0 e Rx0 de cada um deles estou deixando para programar ele via RS232. Estou usando um baud rate para comunicacao entre eles de 19200 bps, no modo 2 assincrono 11bits. Mas meus problemas são que mesmo assim seguindo essas configurações nao consigo fazer eles se comunicarem, alguma idéia?

Abraços
Pianta
Bit
 
Mensagens: 13
Registrado em: 14 Jan 2008 14:52
Localização: POA

up

Mensagempor Pianta » 04 Mar 2008 15:59

para dar mais uma complementação ao post, estou usando as configurações de SCON, PCON, SMOD iguais para os dois MSCs e um gerador de paridade.
Pianta
Bit
 
Mensagens: 13
Registrado em: 14 Jan 2008 14:52
Localização: POA

Mensagempor brasilma » 04 Mar 2008 19:28

Pianta, tenta primeiro comunicar apenas um 8051 com um PC (usar buffer RS232 - MAX232) com uma velocidade mais baixa, para saber se está tudo ok.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor Maurício » 04 Mar 2008 20:01

Comunicação mestre-escravo é simples. Somente o mestre tem o direito de controlar a linha de transmissão. Mais ninguém tem!
Os escravos ficam escutando a linha ( por polling ou por interrupção ).
O mestre envia o endereço do escravo.
Todos os escravos leêm esse endereço. Aquele escravo que identificou seu endereço, se prepara para receber as instruções do mestre. Os outros, simplesmente ignoram os dados que serão transmitidos e continuam fazendo seus processamentos.
O mestre transmite os dados, o escravo recebe os dados! Se o escravo tiver que enviar informações pro mestre, aquele que foi identificado, após o comando de solicitação de dados do mestre, envia imediatamente os dados solicitados. Fim de comunicação. Todos os escravos voltam à rotina de ficar escutando a linha.

Claro que vc precisa criar um protocolo pra que esse tipo de comunicação seja efetivo (mestre-escravo).

Comunicação serial usando UART entre dois 8051: TX de um no RX do outro, e RX de um, no TX do outro. Direto! Sem conversores.
Configuração de bauds e serial idênticas pra ambas as máquinas.

Posta suas rotinas de inicialização de timers e de USARTs, e tb do tratamento de dados da serial pro pessoal poder dar uma idéia melhor.

Qual linguagem tú tá usando?

[]'s
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor Pianta » 05 Mar 2008 19:22

Maurício escreveu:Comunicação mestre-escravo é simples. Somente o mestre tem o direito de controlar a linha de transmissão. Mais ninguém tem!
Os escravos ficam escutando a linha ( por polling ou por interrupção ).
O mestre envia o endereço do escravo.
Todos os escravos leêm esse endereço. Aquele escravo que identificou seu endereço, se prepara para receber as instruções do mestre. Os outros, simplesmente ignoram os dados que serão transmitidos e continuam fazendo seus processamentos.
O mestre transmite os dados, o escravo recebe os dados! Se o escravo tiver que enviar informações pro mestre, aquele que foi identificado, após o comando de solicitação de dados do mestre, envia imediatamente os dados solicitados. Fim de comunicação. Todos os escravos voltam à rotina de ficar escutando a linha.

Claro que vc precisa criar um protocolo pra que esse tipo de comunicação seja efetivo (mestre-escravo).

Comunicação serial usando UART entre dois 8051: TX de um no RX do outro, e RX de um, no TX do outro. Direto! Sem conversores.
Configuração de bauds e serial idênticas pra ambas as máquinas.

Posta suas rotinas de inicialização de timers e de USARTs, e tb do tratamento de dados da serial pro pessoal poder dar uma idéia melhor.

Qual linguagem tú tá usando?

[]'s


Primeiramente, valeu pelas dicas desde já.
Vou pegar as rotinas e adicionar aqui mas essas ligações dos Tx1 e Rx1 já fiz invertidas em ambos UC, configuração do baud rate dexei igual em ambos 19200 bps (preciso dessa transmissao bem rápida) a linguagem que uso é C, tendo usado vários editores como Ultraedit, devC, e até mesmo em linux, e estou compilando no SDCC.
Postarei assim que estiver com os códigos em mãos eles aqui.

Grato.
Pianta
Bit
 
Mensagens: 13
Registrado em: 14 Jan 2008 14:52
Localização: POA

Mensagempor tcpipchip » 05 Mar 2008 23:16

Eu ja faco um pouquinho diferente, eu uso o protocolo orientado a BIT da seguinte forma

19200,N,9,1

Ou seja, um nono bit indica se o dado eh um endereco de um dispositivo escravo ou um dado propriamente dito...

9th protocol...

TCPIPCHIP
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Código

Mensagempor Pianta » 01 Abr 2008 01:23

Pessoal eu sei que o certo seria eu postar meu código, mas estou quase certo que minha lógica por polling está errada eu estou sem o código que fiz para comunicar dois 8051s, por isso estou pedindo para alguém postar um código pode ser so a parte do main pq as configs da serial e tal eu jah fiz, so precisaria mesmo é um apoio no main, assim que conseguir posto o meu, mas se alguem tiver em maos e disposicao para postar me ajudaria e já poderia corrigir o meu e dps postar os resultados.

Grato.
Pianta
Bit
 
Mensagens: 13
Registrado em: 14 Jan 2008 14:52
Localização: POA

Mensagempor brasilma » 01 Abr 2008 08:15

Dá uma analisada nesse ai, qualquer coisa "grita":

ZERABAL: CLR EA ; Desabilita Interrupcoes
MOV R2,#9
MOV A,#54H ; 84D = 54H = "T" *** Talvez tenha de complementar os sinais *** CPL


ZERABALD1: CLR TX2 ;
ZERABALD2: MOV TH0,#0F9H ; 24MHz/12=2MHz/1200=1667 (65535-1667=63868 (F97CH))
MOV TL0,#7CH ; 24MHz/12=2MHz/9600=208 (65535-208=65327 (FF2FH)) FF37H *** por
ZERABALL1: MOV C,TF0 ; uma questao de atraso na execucao das instrucoes da rotina e
JNC ZERABALL1 ; necessario reduzir um pouco o tempo do delay para compensar, no
CLR TF0 ; caso dos 1200 nao da tanta diferenca pois os bits sao + lentos

DJNZ R2,ZERABALD3
JMP ZERABALD4

ZERABALD3: RRC A
JNC ZERABALD1
SETB TX2
JMP ZERABALD2

ZERABALD4: SETB TX2 ;
SETB EA ; Abilita Interrupcoes
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor Pianta » 12 Abr 2008 14:36

Valeu pela dica... essa semana eu vou continuar trabalhando nesse projeto vou tentar corrigir o meu código com as dicas e códigos que o pessoal postou aqui. Assim que fechar o meu código e testar posto meus resultados.

Grato.
Pianta
Bit
 
Mensagens: 13
Registrado em: 14 Jan 2008 14:52
Localização: POA

Mensagempor Maurício » 16 Abr 2008 12:54

Dá uma olhada aqui, tem algumas rotinas de serial, mas, é em C.

http://www.editoraerica.com.br/download ... troladores

[]'s
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor pomboeletronic » 16 Abr 2008 18:23

da uma olhada em

http://8052.com/codelib.phtml


tem muitas rotinas...
"Nós nos transformamos naquilo que praticamos com frequência.
A perfeição,portanto, não é um ato isolado. É um hábito".
Aristóteles
Avatar do usuário
pomboeletronic
Nibble
 
Mensagens: 67
Registrado em: 04 Dez 2006 14:44

Resolvido

Mensagempor Pianta » 01 Jun 2008 23:54

Ai pessoal consegui resolver meus problemas com a comunicacao serial entre UCs. Valeu pelas dicas mas acabei resolvendo de maneiras divergentes das que o pessoal postou aqui, como solucao do meu problema acabei testando a comunicacao como sendo serial padrao Modo 1 e funfo, tentava fazer como o fabricante manda, configurei até a alma da vó do badanha mas nao funciono, fiz o gerador de paridade e tb nao funciono, acabei apostando no modo 1 e incrivelmente a coisa funciono. Abraços!
Pianta
Bit
 
Mensagens: 13
Registrado em: 14 Jan 2008 14:52
Localização: POA


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x