RS422/RS485 Shield¶
O RS422/RS485 Shield dá à OpenMV Cam um link serial diferencial de longa distância adequado a barramentos industriais, com alimentação de entrada ampla, proteção contra surtos e I/O ADC/digital.
Para o datasheet completo, fotos e informações de compra, consulte a página do produto RS422/RS485 Shield.
Destaques¶
RS-422 ou RS-485 de 10 Mb/s com terminação embarcada
Entrada de 6-36 V, tolerante a tensão reversa
Entrada ADC de 0-5 V com proteção contra sobretensão de ±36 V
I/O digital de 0-5 V para gatilhos de sincronização da câmera, com proteção contra curto-circuito
Pinagem¶
Referência de pinos¶
Pino |
Função |
|---|---|
P4 |
RS-422 / RS-485 TX → aciona a saída da linha diferencial |
P5 |
RS-422 / RS-485 RX ← recebe a entrada da linha diferencial |
P6 |
Leitura de AIN com nível ajustado (0–3,3 V em P6) |
P10 |
SYN — I/O digital open-drain no bloco de terminais |
PWR in |
Entrada ampla de 6–36 V no bloco de terminais (tolerante a tensão reversa) |
AIN in |
Entrada analógica no bloco de terminais |
VIN out |
5,4 V a até 600 mA do regulador embarcado |
Trilho 3.3V |
Alimenta a eletrônica embarcada do shield |
Trilho GND |
Terra comum |
Nota
O AIN é protegido contra sobretensão até ±36 V e, por padrão, é uma entrada de tensão de 0–5 V, reduzida para 0–3,3 V em P6. Faça a ponte do shunt do modo 4–20 mA na frente do shield para alternar o AIN para uma entrada de loop de corrente de 4–20 mA.
Nota
O SYN é uma linha digital open-drain, com pull-up de 3,3 V no lado da câmera e 5 V no lado do terminal SYN. Por padrão, é uma entrada — o shield ajusta o nível de 0–5 V em SYN para 0–3,3 V em P10. Altere o jumper de solda embarcado para inverter P10 em uma saída, ajustando o nível de 0–3,3 V em P10 para 0–5 V em SYN.
Nota
Cada um dos pinos P4, P5, P6 e P10 é conectado à câmera por padrão através de um jumper de solda — abra o jumper de qualquer pino que você queira reaproveitar para uso não relacionado. O jumper de P6 fica na parte traseira do shield; os de P4, P5 e P10 ficam na frente.
Nota
Os resistores de terminação embarcados são conectados por padrão — abra os jumpers de solda traseiros correspondentes para desconectá-los. Dois cobrem o par A/B do RS-422 e dois cobrem o par Y/Z do RS-422 (que também serve como terminação A/B do RS-485), totalizando quatro jumpers.
Sobre RS-422 e RS-485
Ambos os padrões enviam dados seriais como um sinal balanceado (diferencial) sobre pares trançados para links de longa distância e tolerantes a ruído:
RS-422 é full-duplex sobre quatro fios. Um driver transmite em um par TX dedicado rotulado Y/Z, e o par transmite de volta em um par RX separado rotulado A/B. Um transmissor e até dez receptores por par.
RS-485 é tipicamente half-duplex sobre dois fios. A transmissão e a recepção compartilham um único par, chamado de A/B na terminologia RS-485, mas fisicamente as mesmas linhas Y/Z neste shield. Até trinta e dois nós podem compartilhar o barramento e qualquer um deles pode acioná-lo.
Como o shield suporta ambos
O shield traz dois transceptores THVD1426, cada um capaz de lidar com qualquer um dos padrões:
O primeiro transceptor aciona o par Y/Z (que também serve como o par A/B do RS-485). É o único com seu driver conectado, de modo que todo o tráfego de saída da câmera sai por este par, independentemente do modo.
O segundo transceptor aciona o par A/B. Seu driver está desativado — esse transceptor é apenas de recepção e só importa no modo RS-422 de 4 fios.
Os receptores de ambos os transceptores estão sempre habilitados, e suas saídas RX são combinadas por um AND em uma única linha de recepção de volta para a câmera:
No modo RS-485 de 2 fios, apenas o primeiro transceptor está ativo. Ligue o barramento a Y/Z; o lado A/B fica ocioso e a porta AND apenas repassa o RX do primeiro transceptor.
No modo RS-422 de 4 fios, o par transmite para a câmera no par A/B (captado pelo segundo transceptor) enquanto a câmera transmite em Y/Z (com o próprio receptor do primeiro transceptor ecoando de volta seus dados de saída). A porta AND os combina — qualquer par que veja um pulso baixo (bit de início, dados) chega à câmera.
Os rótulos do bloco de terminais refletem o mapeamento duplo:
RS-422 (4 fios) — TX de saída em Y/Z, RX de entrada em A/B.
RS-485 (2 fios) — TX/RX compartilham o par Y/Z (= A/B na nomenclatura RS-485). Deixe os terminais A/B do shield desconectados.
Uso¶
Nota
O número de periférico UART(3) abaixo segue o mapeamento do STM32. Em outro processador, o barramento ligado a esses pinos pode ser diferente — consulte a referência da sua placa.
Comunique-se com um par serial diferencial em P4 (TX) / P5 (RX):
from machine import UART
uart = UART(3, baudrate=115200)
uart.write("hello\n")
print(uart.read())
Leia a entrada AIN do bloco de terminais através do pino P6 com nível ajustado:
from machine import ADC
import time
ain = ADC("P6")
while True:
v = ain.read_u16() * 3.3 / 65535
print("AIN:", v * (5.0 / 3.3), "V")
time.sleep_ms(100)
Reaja a uma borda de descida na linha SYN — por exemplo, para sincronizar a câmera com outro dispositivo que puxa SYN para nível baixo:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)