ATV 10 — Da UART para a rede CAN
Seções Do fio ao barramento CAN
- 1A leitura por UART
- 2Do fio ao barramento CAN
- 3O quadro CAN
- 4A leitura do DHT11 dentro do quadro
- 5A mensagem de falha e o filtro
- 6Erros no barramento
Do fio ao barramento CAN
No CAN, os ESP32 não se ligam um ao outro: cada um se liga a um barramento, um par de fios trançados chamado CANH e CANL, e vários nós podem ficar pendurados no mesmo par.
Quem conversa com o par é o transceiver, aqui o WCMCU-230. Dentro do ESP32 há um controlador CAN, que monta e confere os quadros; ele fala com o transceiver por dois pinos, CTX (o que o ESP32 quer pôr no barramento) e CRX (o que está no barramento). O transceiver transforma isso em tensão diferencial no par:
- bit recessivo (1): o transceiver solta o par, e CANH e CANL ficam na mesma tensão, por volta de 2,3 V;
- bit dominante (0): o transceiver puxa CANH para cima e CANL para baixo, com uns 2 V de diferença entre eles.
Quem lê olha só a diferença entre os dois fios. Um ruído que entra igual nos dois some na subtração, e é por isso que o par é trançado.
Se dois nós transmitem ao mesmo tempo, o dominante vence: basta um nó puxar o par para ele ficar dominante. Todo nó lê o barramento enquanto transmite e percebe quando o que lê é diferente do que mandou.
Nas duas pontas do par vai um resistor de 120 Ω entre CANH e CANL, a terminação. Ele evita que o sinal reflita na ponta do cabo e é ele também que traz o par de volta ao recessivo quando ninguém puxa. O WCMCU-230 já traz esse resistor na placa.
O WCMCU-230 é alimentado pelo 3V3 do ESP32, o GPIO 5 vai no CTX e o GPIO 4 no CRX. Com CTX e CRX trocados, nada chega ao barramento e o controlador só vê erro.
- Retire o fio da UART e monte a ligação da figura.
- Com os dois ESP32 desligados, meça a resistência entre CANH e CANL.