Como fazer cabo conversor USB-serial TTL para flashar celulares MT6516

Depois de “bricar” — transformar num tijolo de alta tecnologia — meu celular Wei Dream (Y803 com chip MT6516), precisei gravar novamente o sistema através da operação de “flashing“, ou seja, gravar o sistema Linux+Android na memória flash do aparelho. Para isto, tive que construir um cabo de conversão USB-serial. Este cabo também serve para quem trabalha com placas de microcontroladores como Arduino, placas com processadores como Raspberry Pi, além de modems e pontos de acesso que tenham conexão serial. Isto é particularmente útil porque os computadores atuais não vêm mais com saídas seriais.

O “System-on-Chip” (SoC) MT6516 da empresa taiwanesa MediaTek tem uma maneira já obsoleta de gravar o sistema Android ou Windows Mobile: primeiro deve-se carregar o preloader, um programa básico, através de um cabo USB-serial ligado à saída do fone de ouvido. Depois, o preloader carrega o resto do sistema através do cabo microUSB normal. Os novos chips MT6513 e MT6573 usam apenas o cabo microUSB.

Cabos USB-serial CA-42 são baratos

Cabos USB-serial CA-42 são baratos

Este cabo serial é encontrável no mercado chinês, mas eu fiz um sem gastar ou esperar muito. Comprei pelo Mercado Livre um cabo compatível com Nokia CA-42, que tem embutido um chip PL2303 conversor USB-serial TTL (3,3 v). Estes cabos custam barato porque estão obsoletos. A Nokia descontinuou este tipo de conector, chamado de Pop-Port, em 2007. Comprei com um lance de 5 reais, mais 12 reais de frete pelos Correios. Alguns têm o preço fixo de cerca de 16 reais.

Pop-port Nokia nos telefones

Pop-port Nokia nos telefones

Para instalar um plug de áudio stereo TRS 3,5 mmTip-Ring-Sleeve, chamado de P2, no Brasil — cortei perto do plug do telefone e desencapei a ponta dos cabinhos, para localizar as conexões corretas pelas cores. Usei um multímetro digital para isto, desses chineses que custam 15 reais. Conforme a foto, me guiando pelas cores, soldei os cabinhos do resto do cabo USB ao plug P2. Achei o esquema de pinagem disponível na internet: Tip=TX, Ring=RX (ambos do ponto de vista do cabo), Sleeve=GND (ver “Referências”). O principal cuidado é que o pino 6 é TX no plug e se conecta à entrada RX do telefone; o pino 7 é RX no plug e se conecta ao TX no telefone. Algumas ilustrações na rede mostravam o plug do cabo mas usavam a denominação do telefone. Esta imprecisão me confundiu, inicialmente, e soldei os cabos trocados. A primeira foto deste artigo esclarece exatamente quais as ligações.

Usei o programa de comunicação Hyperterminal do Windows para testar se o cabo foi corretamente montado. Usei a técnica de loopback: liguei o echo local, coloquei um resistor de 100 omhs entre TX e RX, conectei e digitei algo no Hyperterminal. Os caracteres saíram duplicados conforme o esperado. Mas isto não foi garantia de que os fios estivessem na ordem correta. Os programas de flashar o MT6516 não reconheciam o cabo. Quando troquei a posição de RX e TX, funcionou. Para testar, conectei ao celular Wei Dream, tirei a bateria, recoloquei a bateria e liguei o aparelho. Pelo Hyperterminal, apareceu a palavra “READY”.

Antes de usar o cabo CA-42, fiz a mesma operação com um cabo compatível com Nokia DKU-5 com um chip Texas Instrument  TUSB 3410. Este cabo talvez sirva para projetos de microeletrônica, mas não funciona com os programas de flashing do MT6516. Estes exigem um cabo com chip PL2303.

Reconhecimento pelos sistemas operacionais

O Linux reconhece imediatamente estes cabos, quando conecto-os nas entradas USB. Por exemplo, o PL2303 escreve no log:

kernel: [ 8691.332045] usb 4-2: new full-speed USB device number 2 using uhci_hcd 
mtp-probe: checking bus 4, device 2: "/sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2" 
mtp-probe: bus: 4, device: 2 was not an MTP device 
kernel: [ 8691.642774] usbcore: registered new interface driver usbserial 
kernel: [ 8691.642795] USB Serial support registered for generic 
kernel: [ 8691.642851] usbcore: registered new interface driver usbserial_generic 
kernel: [ 8691.642854] usbserial: USB Serial Driver core 
kernel: [ 8691.646456] USB Serial support registered for pl2303 
kernel: [ 8691.646812] pl2303 4-2:1.0: pl2303 converter detected 
kernel: [ 8691.658207] usb 4-2: pl2303 converter now attached to ttyUSB0 
kernel: [ 8691.658241] usbcore: registered new interface driver pl2303 
kernel: [ 8691.658244] pl2303: Prolific PL2303 USB to serial adaptor driver 
gpsd.hotplug: add /dev/ttyUSB0 
gpsdctl: gpsd_control(action=add, arg=/dev/ttyUSB0) 
gpsdctl: launching gpsd  -F /var/run/gpsd.sock 
kernel: [ 8730.248081] usb 4-2: USB disconnect, device number 2 
kernel: [ 8730.248350] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 
kernel: [ 8730.248378] pl2303 4-2:1.0: device disconnected

O TUSB 3410 reportou:

kernel: [23270.217722] ti_usb_3410_5052 2-6.3:1.0: TI USB 3410 1 port adapter converter detected
kernel: [23270.217738] ti_usb_3410_5052: probe of 2-6.3:1.0 failed with error -5
kernel: [23270.218985] ti_usb_3410_5052 2-6.3:2.0: TI USB 3410 1 port adapter converter detected
kernel: [23270.219065] usb 2-6.3: TI USB 3410 1 port adapter converter now attached to ttyUSB0
mtp-probe: checking bus 2, device 10: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.3"
mtp-probe: bus: 2, device: 10 was not an MTP device
modem-manager[1120]: <info>  (ttyUSB0) opening serial port...
dbus[1096]: [system] Activating service name='com.ubuntu.DeviceDriver' (using servicehelper)
dbus[1096]: [system] Successfully activated service 'com.ubuntu.DeviceDriver'
modem-manager[1120]: <info>  (ttyUSB0) closing serial port...
modem-manager[1120]: <info>  (ttyUSB0) serial port closed

O Linux reconhece automaticamente os chips e instala a porta serial /dev/ttyUSB0, o que descomplica tudo. O Windows, no entanto, precisa dos drivers apropriados. Felizmente, eles são fáceis de serem encontrados na rede. Baixe-os aqui:

Referências

Sobre José Antonio Meira da Rocha

Jornalista, professor de Planejamento Gráfico e Mídias Digitais da Universidade Federal de Santa Maria, campus da cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutorando em Design na UFRGS, Porto Alegre, Brasil, 2014.