Montagem do Megasquirt II - Comunicação serial e testes do processador

Começando mais um dia de montagem, la vou eu para a parte do circuito responsável pela comunicação serial ( com o MegaTune, MegaView, telnet… ). Capacitores, resistores, e chega a hora dos malditos transistores. E eu com esse ferro de soldar com o qual meu pai montou um radio AM dum kit de eletronica que ele comprou na banca junto com um exemplar do Pasquim la pras idas do AI5… A ponta, que eu troquei ha uns anos, ja parece a de um parafuso. E até fio de solda que to usando é mais largo que a porra do espaço entre as pernas desses transistores. É lógico que eu acabo soldando as duas pernas dum desses ( Q23 ) juntas. Se não fosse a fita de dessolda, o transistor virava um jumper e pronto.

Depois de muito calor, tira solda, bota solda, consigo deixar o transistor com as pernas aparentemente separadas. Mas medindo com o multimetro duas ainda parecem conectadas. Como não conferi antes, e o circuito pode ser assim mesmo ( o que ta fechado pode ser aberto por algum outro componente ), visualmente parecia Ok, e eu não conseguiria fazer melhor de qualquer jeito, larguei essa merda pra la.

Malditos transistores

Da pra ver na imagem acima as pinturas da placa todas amareladas por tanto calor pra tirar a solda. Se tiver fritado o transistor tb, talvez um dia eu descubra.

Depois de pelejar com essa desgraceira, lembrei que tinha uma ponta de ferro de solda novinha, jogada em alguma caixa de ferramentas ou de parafusos velhos em qualquer lugar. Encontrada a tal, trocada… Oooooutra coisa, outro mundo. Parecia que antes  eu tava usando um ferro de marcar boi.

Ponta de solda nova, outro mundo

Em pouco tempo eu terminei a parte de comunicação serial. Era hora de desenterrar aquela instalação de windows do PC, e testar o adaptador serial-USB que eu tinha acabado de comprar.

O problema é que a maioria dos notebooks, e até desktops atualmente, não vem com uma porta serial ( nos desktops normalmente a placa tem a controladora, mas nem sempre vem o “rabicho” ). Meu desktop tem, mas usar o notebook seria muito melhor, claro.

Primeiros testes da porta serial + adaptador USB

Os primeiros testes fiz no Linux mesmo. Espetei o cabo/adaptador, reconheceu beleza, minicom… … E funciona !

Caracteres aleatorios em dobro = sucesso !

Neste ponto como o circuito que gera o clock para o processador ainda não esta montado, coloco um jumper ligando o pino de entrada ao de saida dos dados no processador, e tudo o que acontece é que qualquer dado que é enviado pelo PC na porta serial é enviado de volta pelo MS. Então, esses caracteres “dobrados” é tudo o que eu queria ver.

Detalhe dos componentes do circuito de comunicação serial

Era hora da montagem do circuito de clock do processador, para carregar o código no mesmo e ter alguma comunicação mais interessante.

Detalhe dos componentes do circuito gerador de clock

Este componente prateado, de pé, no centro da imagem acima, é o cristal. Muito frágil, não pode tocar em outros componentes, é sensível a vibração, e costuma dar pau, por isso foi posteriormente preso, com uma pelota daquelas colas quentes, nesse espaço metalico da placa na frente dele, que ta la pra isso.

Hora de colocar, pela primeira vez, o processador no lugar, e meter energia no bicho.

Primeiros testes com o processador MSII

O processador, que na verdade é um microcontrolador que ja tem RAM, ROM e uns controladores de I/O, não vem com nenhum código instalado. Isso é feito pela conexão serial. A placa do MSII tem um jumper ( marcado B/LD = Boot Loader ) pra isso, e na página do Megamanual tem os links pro software que envia a imagem do firmware para o MS. Estou utilizando o código padrão, dos próprios Bowling & Grippo para o MSII. Existem vários outros códigos “Extra” disponíveis, com comunidades que os usam, e o código é aberto, você mesmo pode fazer alterações, compilar ( GCC mesmo :-) ) e carregar. O processador é um Motorola muito utilizado na industria automobilística ( de acordo com o manual, em vários sistemas de freio ABS ), e se não me engano no fundo no fundo é um bom e velho 68K.

Tudo ligado, firmware baixado…Writing, writing, writing… Ok.

Verifying, verifying… … … !?

Falha na verificação do firmware copiado

Falha. Claro que não ia funcionar de primeira. É só eu repetir um numero primo de vezes, como tudo em computação e… … … nada.

No próprio megamanual, em vários lugares, é dito que nem todos os adaptadores serial-USB funcionam legal com o MegaSquirt. Em alguns lugares é mencionada a questão de buffer, e eu achei que, uma vez que nos primeiros testes não havia nenhum buffer aparente retardando a transmissão entre o PC e o MS, o treco tinha funcionado. Nada. Só depois que eu garimpei uma antiga instalação de Microsoft Worm XP no desktop, e usei o cabo DB9 na porta serial de verdade, é que funcionou.

Verification Succeeded !

O cabo USB e o notebook vão ficar pra próxima… Mas fodas. Funcionou carai !

Código carregado com o cabo DB9

Ja deu pra configurar o MegaTune pra reconhecer o MSII, e comunicar com ele, apesar dos valores dos sensores ainda estarem malucos pois a parte do circuito de entrada dos sensores ainda não esta montada.

MegaTune - RealTime Display

Por hora é isso. Na sequência vou desligar tudo, retirar o processador, montar os circuitos de entrada de dados, ligar tudo de novo, testar as entradas, desligar tudo, montar os circuitos de saida, ligar tudo, e testar.