Probserial

Autor: quevedo
Data: 09/06/2010

Na aula de 07/06, quando fomos testar as interfaces seriais, nos deparamos com 2 problemas.

O primeiro foi uma discrepância entre a numeração da pinagem da fileira de pinos do conector DB9 com o conector propriamente dito. Aquela área era para conexão de um RJ-45, que tem uma pinagem diferente. Fazendo uns testes de continuidade, chegamos a uma lista de ligações:

  • O que seria para ligar no pino 2 do DB9 (Tx), ligar no pino 3 da fileira
  • O que seria para ligar no pino 3 do DB9 (Rx), ligar no pino 5 da fileira
  • O que seria para ligar no pino 5 do DB9 (GND), ligar no pino 9 da fileira

Com isto, os programas de eco remoto começaram a funcionar. Entretanto surgiu outro problema: os caracteres que ecoavam eram estranhos. Com "breakpoints", analisamos os caracteres recebidos, e os mesmos estavam corretos (pressionando o A maiúsculo, recebíamos o decimal 65). Mas ao enviar os caracteres de volta à porta serial, estes chegavam no hyperterminal mudados. Mudamos o programa para enviar sempre o número 65 (caractere "A"), e o mesmo caractere estranho chegava.

Estávamos testando a interface a 115200bps. Resolvemos mudar para 9600bps, e surpresa! Tudo funcionou perfeitamente.

O mesmo comportamento aconteceu em várias máquinas.

Assim, Por enquanto, basta tomar cuidado com as ligações (usar a tabela acima) e testar o eco de caracteres a 9600bps.

Depois descobrimos que a presença do BDM afeta a transmissão. Assim, para testar o programa final basta desconectar o BDM da placa e depois desligar e ligar novamente a alimentação, para que a placa rode o programa carregado diretamente.