Ir para conteúdo
  • Cadastre-se

tutorial Como ler o que a placa diz: UART, JTAG e Debug em MacBooks e Notebooks (Projeto EBR)

Avalie este tópico:


Posts em destaque

Postado (editado)

I — O que é uma porta de depuração?

Estamos estruturando no EBR um mapeamento prático das portas de depuração (UART, JTAG e SWD) em notebooks — principalmente MacBooks, Intel, T2 e Apple Silicon.

 

A maioria das placas possui um microcontrolador chamado EC (Embedded Controller) que fica ligado assim que a placa recebe 3,42v G3H ou 1,8v EC. Mesmo com a máquina “morta”, o EC já está rodando código e muitas vezes já envia mensagens por UART.

 

Em muitos notebooks, essas linhas UART não aparecem como um conector separado. Elas vêm misturadas no próprio conector JTAG / Debug ou até roteadas para o USB-C (SBU1/SBU2) quando a porta entra em modo de debug. Basta ligar no TX do EC ou do CPU para capturar mensagens de inicialização, erros de power, falhas de reset, etc.

 

Em resumo: boa parte das soluções modernas de debug combinam JTAG e UART no mesmo cabo, e muitas placas de notebook expõem o TX da UART do EC nesses conectores. Esse recurso, aliado ao fato de o EC ser energizado por uma LDO always-on, permite extrair logs úteis logo nos primeiros instantes de alimentação.

Isso transforma uma placa aparentemente morta em uma fonte de informação.

 

Além do JTAG, muitos MCUs implementam um pino opcional chamado SWO (Serial Wire Output) que fornece um “canal de printf” assíncrono para envio de mensagens. O SWO é unidirecional e pode transmitir logs semelhantes ao UART (por Manchester ou UART), mas não permite enviar comandos para a CPU. Em outras palavras, o SWO funciona como um “UART embutido” dentro da interface SWD/JTAG.

 

Dentro de todo notebook — inclusive MacBooks T2 (2018–2020) e Apple Silicon — existe uma “boca secreta” como TP_SOC_DEBUGPRT_TX / RX que a placa usa para falar.

 

Essa boca é chamada de porta de depuração.

 

Ela é usada para saber:

  1. Se o processador acordou
  2. Se a memória respondeu
  3. Onde o notebook travou

 

Mesmo quando não liga, essa porta muitas vezes continua falando.

 

II- O que é UART?

UART é o idioma mais simples que a placa usa para falar.

Ele só precisa de:

  1. TX → a placa falando
  2. Level Shifter → ampliar ou reduzir amplitude do sinal serial
  3. GND → terra (referência elétrica)

 

É como um walkie-talkie: um fio fala, o outro escuta TX+RX; Só vai nos interessar a transmissão.

 

saída serial de firmware (debug console) em ASCII. Cada linha que aparece ali foi escrita por um engenheiro da Apple, Intel ou do fabricante do EC para responder perguntas como: – “o chip acordou?” – “a RAM respondeu?” – “o power-good veio?” – “o firmware carregou?”

 

III — Como a gente escuta a placa?

A partir daqui, a intenção não é só ligar um cabo:
é padronizar como o EBR captura, interpreta e compara esses sinais.

 

Usamos um adaptador USB → UART. O computador não entende direto o idioma da placa.

 

Então usamos um adaptador chamado USB → UART.

Alguns exemplos:

  1. CH341A
  2. USB-UART level selectable (1.8V / 2.5V / 3.3V / 5V)

 

Eles transformam:

  • USB do PC → sinais UART da placa

 

Ela vai dizer coisas como:

  • falha de ALL_SYSPWRGD
  • erro de memória RAM
  • falha de ME REGION
  • reset infinito
  • watchdog do EC

 

Isso permite saber se o defeito é elétrico, firmware ou lógico.

 

Se esses logs começarem a ser postados aqui, em pouco tempo teremos um mapa real de como as placas falham.
Isso é o que falta hoje na bancada: memória coletiva.

 

Citar

IMPORTANTE
Nunca conecte um UART sem saber a tensão do target.

A maioria dos notebooks modernos (EC, T2, Apple Silicon, PCH, PD) usa 1,8v ou 3,3v. Se você ligar um adaptador que solta 5v no RX  e o target TX for menor que 5v, você não vai “ver lixo na tela” — você vai matar o chip. 

 

Se você ligar um UART de 5v nesses chips, pode causar dano permanente.

 

EC, PCH, T2, PD e Apple Silicon não toleram 5 V no RX.

 

Por isso, use sempre um adaptador com tensão selecionável ou level shifter antes de conectar é exatamente isso que vamos ensinar aqui.

 

 

 

 

Citar

 

CapturadeTela2026-01-10as16_05_29.thumb.png.d2fe7c424f5ae9897f1be0f727f0e278.png
 

 

Citar

unnamed.thumb.jpeg.772d1f37a26d421b326e9b5808fa29a1.jpeg

 

 

 

IV — Onde encontrar o UART na placa (T2, EC, JTAG e ARM Silicon USB-C)

Depois de entender o que é UART e por que ele existe, o próximo passo é simples:

 

Onde estão esses sinais na placa?

 

Na prática, quase todo notebook moderno possui pelo menos dois UARTs:

 

  1. Um do EC (Embedded Controller);
  2. Um do CPU / SoC;
  3. E eles aparecem de muitas formas diferentes.

 

1) UART do EC (Embedded Controller)

Mesmo com a máquina sem vídeo, sem boot e sem BIOS, o EC já está tentando inicializar e vai mandar mensagens por esse TX.

O EC é o primeiro chip a ligar quando a placa recebe 1.8v ou 3,3v LDO. Antes do BIOS, antes do PCH, antes do CPU.

 

Por isso, o UART do EC é o mais importante para diagnóstico de placas mortas que ainda sussurram.

 

Nos esquemas ele aparece com nomes como:

  • EC_TX
  • EC_RX
  • KBC_TX
  • KBC_RX
  • SMC_DEBUG_TX
  • EC_DEBUG_TX
  • HOST_DEBUG_TX
  • e ETC.

 

Se você encontrar um ponto de teste escrito TX perto do KBC, SMC, T2 no Board View, quase sempre é ele.

 

 

2) UART dentro do conector JTAG / Debug

Muita gente acha que JTAG serve só para programação. Na prática, a maioria dos conectores JTAG de notebook também carrega UART. Fabricantes fazem isso porque:

JTAG é usado para depurar o dispositivo via UART que é usado para ver logs então eles colocam tudo no mesmo conector

Por isso você encontra conectores com sinais como:

  • TMS
  • TCK
  • TDI
  • TDO
    e também:
  • DEBUG_TX

 

Mesmo quando o conector não está populado, os pads na placa quase sempre existem.

Se você localizar o conector JTAG do EC, há grande chance de ali existir um TX de UART pronto para uso.

 

3) UART roteado pela USB-C (SBU1 / SBU2)

Nos notebooks ARM modernos mais novos (Apple Silicon M), o UART muitas vezes não sai em pads físicos.

Ele é roteado para a porta USB-C quando ela entra em modo de debug.

Nesse modo:

  • SBU1 vira UART TX
  • SBU2 vira UART RX

 

Isso é o mesmo UART do EC ou do CPU, apenas passando pela Type-C.

Com um cabo Type-C breakout ou um adaptador, dá para ligar um USB-UART nesses pinos e capturar os logs sem abrir a máquina.

 

V — Adaptação do CH341 com level shifter para UART seguro em 1.8 V e 3.3 V

Pessoal, conforme fui avançando nos testes de UART em placas de MacBook, T2, ficou claro um problema sério: os adaptadores USB-UART comuns (CH341, FT232, PL2303) trabalham em 5 V ou 3,3 V, enquanto a maioria dos SoCs, T2 e ECs modernos usam 1,8 V.

 

ChatGPTImage10dejan.de202620_38_10.thumb.png.8283601b3cf321a84516e9c96cac4b22.png

 

 

Ligar RX/TX direto nesses chips pode:
– não funcionar
– gerar ruído
– ou até danificar o SoC

 

Os adaptadores comuns trabalham em 5 V ou 3,3 V.

  • Mas EC, T2 e Apple Silicon usam 1,8 V.
  • Por isso estamos modificando o CH341 com level shifter interno.
  • Isso cria um padrão de hardware para o EBR.
  • CH341 (USB 5 V) → Level Shifter → Placa (1.8 / 3.3 V)

 

Por isso comecei a modificar o próprio CH341, adicionando internamente um level shifter (conversor de nível lógico) entre o CH341 e a placa.

Isso cria um padrão de hardware para o EBR. Isso permite capturar logs de: EC, PCH, T2, iBoot, BootROM e Apple Silicon sem risco.

 

Por que isso muda tudo?

 

Com isso o CH341 deixa de ser um programador/cabo TTL barato” e vira uma interface de debug profissional.

 

Os principais benefícios:

• Permite ler UART de T2 e Apple Silicon sem risco

• Funciona tanto em 1,8 V quanto 3,3 V

• Evita back-power e latch-up no SoC

• Permite deixar o adaptador conectado durante boot, reset e falha

• Permite capturar logs de EC, iBoot, BootROM e kernel sem danificar a placa  

 

Na prática, isso faz com que portas de aparelhos que parecem “bloqueadas” ou “mortas” simplesmente passem a funcionar, porque o problema real era elétrico, não lógico.  

 

A ideia é simples:  

CH341 (USB, 5 V) → Level Shifter → Placa (1,8 V ou 3,3 V)  

 

O level shifter é alimentado pela mesma tensão da placa 820-00850 (por exemplo, P1V8SLPS2R_SW0 ou PP1V8_UPC_ vinda do Controlador PD, do EC do notebook ou de um Rail Always-On ou LDO).  Assim ele só funciona quando a placa está viva e nunca injeta tensão mais alta no SoC.    

 

Objetivo desse projeto no EBR

A ideia é que, com esse tipo de adaptador, a gente possa padronizar:

– Captura de logs e armazenamento; – Depuração de falhas de power até S0;

– Análise de ITE, ENE, MEC, EC, PCH, T2, Apple Silicon e outro;

– Desenvolver uso do UART via USB-C ou test points dos SUPER IO, SMC e T2;

– Contribuir com pontos de teste, logs ou pinouts está ajudando a transformar tentativa-e-erro em engenharia de bancada;

– E usar isso para alimentar o banco de dados colaborativo do EBR sem fins lucrativos.  

 

Quem já tentou UART direto e teve problemas, recomendo testar esse método.

 

Vocé vai precisar cortar o UART que sai do CI Ch341 de 5v para fazer a adaptação e tranformar nosso programador velho em uma ferramenta TLL de 1.65v a 5v

 

 

CapturadeTela2026-01-10as21_58_21.thumb.png.a5b5203f32fa620da2659b68b6a3fd4e.png

 

 

 

 

 

 

A parte difícil (e a que realmente importa) é esta: 1. pegar um CH341 de verdade, 2. pegar um bisturi, 3. cortar trilhas, 4. soldar fios, 5. adaptar o CI level shifter, 6. testar em placa real

 

É isso que transforma um “esquema bonito” em uma ferramenta que realmente funciona na bancada.

 

Por isso, na próxima etapa, eu não vou ficar só em diagrama.

 

Vou fazer o procedimento em um CH341 virgem, aqui na minha bancada.

 

Vou usar um TXS0102 (ou similar) retirado de sucata de notebook ou MacBook, cortar as trilhas de RX/TX que saem do CH341 em 5 V, e inserir o level shifter no meio, do jeito certo:

 

CH341 → Level Shifter → Placa

Isso é muito mais valioso do que qualquer imagem desenhada no computador, porque mostra:

• onde cortar
• onde soldar
• quais pinos usar
• onde ligar VCCA, VCCB, OE
• como alimentar pelo 1.8 V ou 3.3 V da placa
• como evitar back-power

 

Próximos passos

Vou postar aqui:

  1.  Fotos reais do CH341
  2.  Onde as trilhas são cortadas
  3.  Onde o TXS0102 entra
  4.  Como ficou depois da modificação
  5. E logs reais capturados em MacBook (CoolTerm)
  6. A ideia é que qualquer técnico consiga olhar isso e dizer:
  7. “ok, eu consigo repetir isso na minha bancada”.

 

 

CapturadeTela2026-01-11as00_34_43.png.8cd4a3fce092e447ae7f57b1d84a0e58.png

 

 

 

Um pedido simples

Esse projeto tomou tempo, estudo, sucata, erros e testes.

 

Se você acha que isso pode ajudar a comunidade, deixa um joinha j+ no tópico. 

 

Isso me motiva a ir até o fim e publicar tudo — inclusive logs reais e casos práticos.

 

O objetivo é simples:

  • fazer algo longo, completo, mas que qualquer pessoa consiga entender em 10 minutos
  • e sair sabendo:
  • onde ligar,
  • como medir,
  • e como ouvir a placa falar.

 

Continua 

 

Brazil Soccer GIFDance Dancing GIF

 

 

 

 

 

Captura de Tela 2026-01-11 às 00.10.02.png

Editado: por NinjaInfo
  • Joinha 4
  • Legal 1
  • NinjaInfo alterou o título para Como ler o que a placa diz: UART, JTAG e Debug em MacBooks e Notebooks (Projeto EBR)
Postado

Muito interessante esse assunto. No momento estou tentando ressuscitar um router Wi‑Fi que bricou depois de um upgrade de firmware mal-sucedido. Eu achei os pinos Tx, Rx e GND, vou ligar eles no meu arduino. Eu não sabia que notebooks tinham UART, você poderia me dizer se os iMac antigos Intel possuem isso? Pergunto isso pq tenho um iMac de 2008 e gostaria de estudar mais sobre UART.

Postado

@Gerson Aisawa Fico feliz que tenha curtido o assunto.

 

Só um alerta importante: tanto em roteador quanto em iMac/SMC, o maior risco não é “não funcionar” — é queimar o chip por nível lógico errado. Arduino e alguns adaptadores podem soltar 5 V no RX. Antes de ligar qualquer coisa, veja o item III (aviso importante) e, se puder, meça com osciloscópio/multímetro a tensão idle do UART (geralmente RX fica em nível alto) então vc pode conseguir medir com multimetro.

St Patricks Day Tech GIF by Tektronix 

 

 

Mas em muitos casos o UART é somente TX (saída de log). Eu vi o cara falar que “o RX estava cortado” — ele só estava capturando log mesmo em seu roteador. Eu vi 

Você não tem permissão para ver links. Faça login ou cadastre-se.
 

 

Minha captura em Mac T2 foi assim (exemplo real). Seria top se todo mundo começasse a postar logs e contexto, porque isso vira um banco gigante com ajuda de IA:

 

Citar

iBoot Panic: : ANS2 :Recoverable PANIC assert failed: [11715]:PCI link up failed, apcie_id=0, link=0, bfh=0BG(5) 


Stacktrace:
--> 0x000000018004215c
--> 0x0000000180041c40
--> 0x00000001800788b8
--> 0x0000000180075c50
--> 0x0000000180073a88
--> 0x0000000180074c40
--> 0x0000000180074cb8
--> 0x000000018002b590
--> 0x000000018002b99c
--> 0x000000018002a310
--> 0x0000000180035fdc
--> 0x000000018003695c
--> 0x000000018001df48
--> 0x0000000180048440
--> 0x0000000180048420

 

 

No iMac 2008, a chance maior é o debug do SMC/EFI ser 3,4 V (mas confirme na medição). Se você achar algo como SMC_DEBUGPRT_TX / SMC_DEBUGPRT_TX_L e conseguir capturar log, posta aqui nesse formato:

  1. Modelo (iMac 2008 / placa se souber)
  2. Onde pegou TX/GND (foto ou nome do ponto)
  3. Tensão do TX (1.8/3.3)
  4. Baudrate testado (115200 / 57600 / 38400…)
  5. Primeiras 30–50 linhas do log

Aí a gente consegue comparar e tirar conclusão técnica sem adivinhar.

 

 

 

  • Joinha 3
Postado

@NinjaInfo 

Achei a ideia bem legal.

Eu pretendia fazer algo do tipo no futuro usando um stm32 (teria outras finalidades, seria uma ferramenta mista, nunca comecei o projeto), porem, o ch341A já está disponível na bancada de muitos técnicos, parece ser uma abordagem mais interessante.

Acredito no entanto, que seria mais interessante fazer um adaptador externo utilizando os pinos do ch341A, desta forma seria um complemento para a ferramenta.

Se quiseres ajuda com algo me avisa. ;D 

  • Joinha 1
Postado (editado)

Boa noite. Projeto muito interessante e tenho bastante interesse nele.

Estava olhando e achei no AliExpress um adaptador já com LevelShift para 1.8V, baseado no FT232RL por R$55 mais ou menos

tx2.JPG.fe9b3dd275820a869d6bd413f8dd2ef0.JPG

Poderia me dar uma opinião @NinjaInfo?

 

Possuo uma placa aqui, dos novos VAIOs, que não possuem esquema elétrico nem Boardview

É uma IW522_V3.0

Procurando o datasheet da EC IT8987E na internet, pois também não há datasheet, acredito que esse seria o ponto de conexão, certo?

tx.JPG.8d705c7e7bef09a5fef5c08f0f2a5041.JPG

 

Essa placa possuí conector Debug, mas sem serigrafia, sem esquema, sem boardview

8756c481-efdf-4beb-bbf2-bcb2d41d68f21.thumb.jpg.3ea4f16a22a930d7569e378a0b961aff.jpg

 

(A placa está estourada sim, peguei essa sucata para tirar a foto, trata-se da placa já citada)

Há como descobrir quais pinos seriam TX, RX, etc? Talvez com osciloscópio seria possível né...

Na verdade, na escala de continuidade do multímetro com os pinos 108 e 109, deveria haver continuidade com algum desses pinos, né?! (Lembre-se que a foto do EC, não corresponde a essa placa, é imagem recortada de outra placa mãe)

Obrigado desde já, e parabéns pelo projeto!!

Editado: por ajbrasil
Adicionado mais informações
  • Joinha 1

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restaurar formatação

  Apenas 75 emoticons máximos são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir apenas como um link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Você não pode colar imagens diretamente. Envie ou insira imagens do URL.

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...