Pular para o conteúdo principal

Configurar reComputer R1100

Visão geral

Aprenda a configurar e testar componentes de hardware na série reComputer R1100 após instalar os dispositivos. Este wiki abrange mapeamento de GPIO, teste do LED USER, comunicação SPI, varredura de Wi‑Fi e Bluetooth, LoRa®, 4G, RS485, RS232, teste de DI/DO, UPS para desligamento seguro e mais.

Consultar mapeamentos e offsets de GPIO

Para verificar mapeamentos e offsets de GPIO, siga estas etapas:

  • Execute o seguinte comando no terminal
cat /sys/kernel/debug/gpio

Este comando exibirá os mapeamentos e offsets de GPIO, fornecendo informações essenciais para depurar ou configurar os pinos de GPIO.

Controlar indicadores de LED

O reComputer R1100 fornece três indicadores de LED nas cores vermelho, azul e verde. Você pode controlá‑los usando os seguintes comandos:

1. Navegue até o diretório dos LEDs

cd /sys/class/leds/
ls

Isso listará os LEDs disponíveis.

2. Ative os LEDs escrevendo no arquivo de brilho
Primeiro, mude para o modo superusuário:

sudo su

Em seguida, ligue os LEDs:

echo 1 > /sys/class/leds/led-red/brightness
echo 1 > /sys/class/leds/led-blue/brightness
echo 1 > /sys/class/leds/led-green/brightness

Isso acenderá o LED correspondente.

3. Desligar os LEDs (opcional)
Para desligar um LED específico, use:

echo 0 > /sys/class/leds/led-red/brightness
echo 0 > /sys/class/leds/led-blue/brightness
echo 0 > /sys/class/leds/led-green/brightness

Testando a comunicação SPI

Para verificar a comunicação SPI, você pode realizar um teste de loopback curto‑circuitando os pinos MISO e MOSI do módulo TPM. Esse método garante que os dados enviados em MOSI (Master Out, Slave In) sejam recebidos em MISO (Master In, Slave Out).

Guia passo a passo

1. Conecte‑se à Internet
Certifique‑se de que seu dispositivo esteja conectado a uma rede antes de continuar.

2. Clone o repositório spidev-test

git clone https://github.com/rm-hull/spidev-test.git

3. Navegue até o diretório

cd spidev-test

4. Compile o programa spidev_test.c

gcc spidev_test.c -o spidev_test

5. Execute o teste SPI

./spidev_test -D /dev/spidev0.1 -v -p "hello"
  • -D /dev/spidev0.1 → Especifica o dispositivo SPI
  • -v → Habilita a saída detalhada (verbose)
  • -p "hello" → Envia a string "hello"

6. Teste de loopback (opcional)

  • Curto‑circuite os pinos MISO e MOSI do módulo TPM antes de executar o teste.
  • Se o barramento SPI estiver funcionando corretamente, a saída deverá mostrar que os dados transmitidos foram recebidos corretamente.

Varredura de Wi‑Fi

Para listar as redes Wi‑Fi disponíveis e seus detalhes, execute:

sudo iwlist wlan0 scan
  • Este comando faz a varredura de todas as redes Wi‑Fi próximas e exibe seus SSIDs, intensidade de sinal e tipo de criptografia.

Varredura de Bluetooth

Para procurar dispositivos Bluetooth, siga estas etapas:

Abra a interface de controle do Bluetooth:

sudo bluetoothctl

Habilite a varredura:

scan on
  • Isso inicia a varredura de dispositivos Bluetooth próximos.

LoRa® via Mini‑PCIe

Configuração LoRa® SPI

Clone o repositório SX1302_HAL:

cd ~
git clone https://github.com/Lora-net/sx1302_hal

Navegue até o diretório clonado:

cd sx1302_hal

Modifique o arquivo de configuração:

Abra o arquivo de configuração do dispositivo I2C:

sudo vim ./libloragw/inc/loragw_i2c.h

Altere esta linha:

#define I2C_DEVICE "/dev/i2c-1"

Para:

#define I2C_DEVICE "/dev/i2c-3"

Compile o código:

sudo make

Modifique o script de reset:

Abra o script reset_lgw.sh:

sudo vim ./tools/reset_lgw.sh

Atualize as configurações dos pinos:

SX1302_RESET_PIN=580    # SX1302 reset  
SX1302_POWER_EN_PIN=578 # SX1302 power enable
SX1261_RESET_PIN=579 # SX1261 reset (LBT/Spectral Scan)

Copie o script de reset para o diretório do packet forwarder:

cp ~/sx1302_hal/tools/reset_lgw.sh ~/sx1302_hal/packet_forwarder/

Atualize a porta SPI padrão no arquivo de configuração LoRaWAN®:

Modifique o arquivo global_conf.json.sx1250.US915:

sed -i 's/spidev0.0/spidev0.1/g' global_conf.json.sx1250.US915

Inicie o módulo LoRaWAN®:

cd ~/sx1302_hal/packet_forwarder
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.US915

Configuração LoRa® USB

Se você estiver usando um módulo LoRa® USB em vez de LoRa® SPI, siga estas etapas. A maioria dos comandos permanece a mesma que para LoRa® SPI, exceto pela etapa final.

Puxe para nível alto o pino de Reset do SX1302

echo 1 > /sys/class/gpio/gpio580/value

Inicie o módulo LoRaWAN® USB

cd ~/sx1302_hal/packet_forwarder
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

LoRa® USB agora está configurado e em execução no reComputer R1100

4G Celular via Mini‑PCIe

Para interagir com um módulo 4G usando comandos AT via minicom, siga estas etapas:

Abra o Minicom com a porta serial e taxa de baud apropriadas:

sudo minicom -D /dev/ttyUSB2 -b 115200

Este comando abre o Minicom com a porta serial especificada (/dev/ttyUSB2) a uma taxa de baud de 115200.

Envie comandos AT para o módulo 4G:

Depois que o Minicom estiver aberto, você pode começar a enviar comandos AT para o módulo 4G. Por exemplo:

AT

Este comando verifica se o módulo está respondendo. Se o módulo estiver funcionando corretamente, você deverá receber uma resposta "OK".

Discar um número de telefone usando o módulo 4G:

Para discar um número de telefone, use o comando ATD seguido do número de telefone:

ATD<phone_number>;
  • Substitua <phone_number> pelo número de telefone desejado que você quer discar.
  • Certifique‑se de incluir um ponto e vírgula (;) no final do comando para indicar o fim do número de telefone.

Teste de RS485

O reComputer R1100 inclui duas portas RS485. Abaixo estão suas respectivas portas COM e arquivos de dispositivo:

Porta RS485Porta COMIdentificação na serigrafiaArquivo de dispositivo
RS485_1COM1A1 / B1 / GND/dev/ttyACM0
RS485_2COM2A2 / B2 / GND/dev/ttyACM1

Etapas para testar a funcionalidade RS485

Conecte as portas RS485

Conecte fisicamente RS485_1 (A & B) a RS485_2 (A & B).

Execute o programa de teste RS485

Fornecemos um programa de teste para verificar a transmissão de dados e medir a velocidade entre as duas portas RS485.

Execute os seguintes comandos para baixar e executar o programa de teste:

git clone https://github.com/ackPeng/R1100_TEST.git
cd R1100_TEST
gcc -o serial_test serial_test.c
./serial_test /dev/ttyACM0 /dev/ttyACM1 115200

Descrição do teste

  • Este programa envia 1MB de dados de RS485_1 para RS485_2.
  • Ele registra o tempo de conclusão e calcula a taxa de baud real.
  • Observação: A taxa de baud real pode ser ligeiramente inferior à taxa de baud teórica, o que é esperado.

Siga estas etapas cuidadosamente para verificar a comunicação RS485 no reComputer R1100.

Teste de RS232

O reComputer R1100 possui duas portas RS232. Abaixo estão as respectivas portas COM e arquivos de dispositivo:

Porta RS232Porta COMMapeamento de pinosArquivo de dispositivo
RS232_1COM3RX3/TX3/GND/dev/ttyACM2
RS232_2COM4RX4/TX4/GND/dev/ttyACM3

Testando a comunicação RS232

Siga estas etapas para testar a funcionalidade RS232:

  1. Conecte as portas:

    • Conecte o TX de RS232_1 ao RX de RS232_2.
    • Conecte o RX de RS232_1 ao TX de RS232_2.
  2. Execute o programa de teste:

    • Clone o repositório do programa de teste:

      git clone https://github.com/ackPeng/R1100_TEST.git
    • Navegue até o diretório:

      cd R1100_TEST
    • Compile o programa de teste:

      gcc -o serial_test serial_test.c
    • Execute o teste:

      ./serial_test /dev/ttyACM2 /dev/ttyACM3 115200

Este teste envia 1MB de dados de RS232_1 para RS232_2 e mede o tempo de conclusão e a taxa de baud. Observe que a taxa de baud real pode ser ligeiramente inferior ao valor teórico, o que é normal.

Teste de DI (Entrada Digital)

O reComputer R1100 inclui duas portas de Entrada Digital (DI), que podem ser configuradas com base nos requisitos do usuário.

Número de portas DIPorta DIGPIO estendido correspondente
2DI1GPIO530
DI2GPIO531

Especificações da porta DI

  • Tipo de entrada: PNP
  • Tensão de entrada suportada: 5VDC – 24VDC
  • Corrente: até 1000mA

Etapas para testar a funcionalidade DI

Garanta a conexão adequada

Certifique‑se de que a porta DI do reComputer R1100 esteja devidamente conectada à carga externa e também de que a porta G_D esteja conectada ao GND da fonte de alimentação.

Verifique o status do GPIO

Execute os seguintes comandos para verificar o status do GPIO530 (correspondente a DI1):

echo 530 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio530/direction
cat /sys/class/gpio/gpio530/value

Interprete o valor do GPIO

  • Se o nível externo estiver ALTO, a saída de /sys/class/gpio/gpio530/value será 0.
  • Se o nível externo for LOW, a saída de /sys/class/gpio/gpio530/value será 1.

DO (Saída Digital)

O reComputer R1100 inclui duas portas de Saída Digital (DO), que podem ser configuradas de acordo com os requisitos do usuário.

Número de portas DOPorta DOGPIO estendido correspondente
2DO1GPIO532
DO2GPIO533

Especificações da porta DO

  • Tipo de saída: Transistor
  • Tensão de saída suportada: Até 60VDC
  • Capacidade de corrente: 500mA

Etapas para testar a funcionalidade da DO

Garantir conexão adequada
Confirme que a porta DO do reComputer R1100 está devidamente conectada à carga externa.

Como a porta DO é uma saída de coletor aberto e não possui capacidade de acionamento, use um resistor externo para puxá-la para o nível de alimentação.

Definir o nível de saída
Execute os seguintes comandos para definir a saída como HIGH ou LOW:

echo 532 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio532/direction
echo 1 > /sys/class/gpio/gpio532/value # Set output to HIGH
echo 0 > /sys/class/gpio/gpio532/value # Set output to LOW

Teste do Hub USB

Para verificar a funcionalidade do hub USB, siga estas etapas:

Verificar se o Hub USB foi detectado

Execute o seguinte comando para listar todos os dispositivos USB conectados, incluindo hubs:

lsusb

Verificar a detecção do Hub USB

  • Este comando exibirá informações sobre todos os dispositivos USB conectados ao seu sistema, incluindo hubs USB.
  • Se o hub USB estiver funcionando corretamente, seus detalhes deverão aparecer na saída do comando.
  • Se o hub não estiver listado, pode haver um problema com o próprio hub ou com a conexão dele ao sistema.

Solução de problemas (se o Hub USB não for detectado)

  • Verifique a conexão física do hub USB.
  • Tente conectar o hub a uma porta USB diferente.
  • Reinicie o dispositivo e execute lsusb novamente.
  • Se o problema persistir, o hub pode estar com defeito.

Teste do RTC (Relógio de Tempo Real)

Para verificar a funcionalidade do RTC no reComputer R1100, siga estas etapas:

Desativar a sincronização automática de horário

Antes de testar o RTC, pare e desative a sincronização automática de horário para evitar conflitos:

sudo systemctl stop systemd-timesyncd  
sudo systemctl disable systemd-timesyncd

Definir manualmente a hora do RTC

Defina o RTC para uma data e hora específicas (por exemplo, 12 de novembro de 2024, às 12:00):

sudo hwclock --set --date "2024-11-12 12:00:00"

Sincronizar a hora do RTC com o sistema

Atualize a hora do sistema para corresponder à hora do RTC:

sudo hwclock --hctosys

Verificar a hora do RTC
Verifique a hora atual armazenada no RTC:

sudo hwclock -r

Este comando exibirá a hora do RTC.

Testar a retenção do RTC

  • Desconecte a fonte de alimentação do RTC.

  • Aguarde alguns minutos.

  • Reconecte a alimentação e verifique novamente a hora do RTC usando:

    sudo hwclock -r
  • Se a hora permanecer correta, o RTC está funcionando adequadamente.

Teste do Timer Watchdog

Para testar o timer watchdog no reComputer R1100, siga estas etapas:

Instalar o software do Watchdog

Certifique-se de que o pacote do watchdog esteja instalado:

sudo apt install watchdog

Configurar o Watchdog

Edite o arquivo de configuração do watchdog:

sudo apt-get install vim  # Install Vim if not already installed  
sudo vim /etc/watchdog.conf

Modifique a configuração da seguinte forma:

watchdog-device = /dev/watchdog  

# Set the hardware timeout (default is 1 minute)
watchdog-timeout = 120

# Set the interval between tests (should be shorter than watchdog-timeout)
interval = 15

# Set system load limits
max-load-1 = 24
# max-load-5 = 18
# max-load-15 = 12

# Enable real-time priority
realtime = yes
priority = 1

Iniciar o serviço do Watchdog
Habilite e inicie o serviço do watchdog:

sudo systemctl start watchdog

Testar o Watchdog simulando um travamento do sistema

Dispare um crash de kernel para verificar se o watchdog reinicia automaticamente o sistema:

sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger

Monitorar o sistema
Verifique se o sistema reinicia automaticamente após o período de tempo limite especificado.

Se o reinício ocorrer conforme esperado, o watchdog está funcionando corretamente.

Controle do buzzer via GPIO

O buzzer está mapeado para o GPIO 587. Use os seguintes comandos para ligá-lo e desligá-lo:

Ligar o buzzer:

echo 587 > /sys/class/gpio/export  
echo out > /sys/class/gpio/gpio587/direction
echo 1 > /sys/class/gpio/gpio587/value

Desligar o buzzer:

echo 587 > /sys/class/gpio/export  
echo out > /sys/class/gpio/gpio587/direction
echo 0 > /sys/class/gpio/gpio587/value

Teste da câmera CSI

Para testar a câmera CSI no reComputer R1100, siga estas etapas:

Modificar o arquivo de configuração

Edite o arquivo config.txt para habilitar o módulo de câmera:

sudo nano /boot/firmware/config.txt

Adicione a seguinte linha ao final do arquivo:

dtoverlay=imx219,cam0

Reiniciar o sistema

Reinicie para aplicar as alterações:

sudo reboot

Verificar a detecção da câmera

Após reiniciar, verifique se a câmera foi detectada:

libcamera-jpeg --list-cameras

Testar a câmera

Execute o seguinte comando para ativar a câmera:

rpicam-hello --timeout 0

Se a visualização da câmera iniciar com sucesso, a configuração está concluída!

Verificação da conexão TPM 2.0

Se você conectou um módulo TPM 2.0 ao seu dispositivo, pode verificar sua detecção usando o seguinte comando:

ls /dev | grep tpm

Interpretando a saída:

  • Se você vir tpm0 e tpmrm0 na saída, isso confirma que o TPM (Trusted Platform Module) foi detectado com sucesso e está disponível.
  • Isso indica que o hardware TPM foi reconhecido e está acessível, permitindo que você prossiga com funcionalidades ou aplicações relacionadas ao TPM.

Se os dispositivos estiverem listados, seu módulo TPM está devidamente conectado e pronto para uso.

Interagindo com o ATECC608A e gerando um número de série aleatório

Para se comunicar com o dispositivo ATECC608A e gerar um número de série aleatório, siga estas etapas:

Clonar o repositório atecc-util:

git clone https://github.com/wirenboard/atecc-util.git

Navegar até o diretório atecc-util:

cd atecc-util

Clonar o repositório cryptoauthlib:

git clone https://github.com/wirenboard/cryptoauthlib.git

Compilar o utilitário ATECC:

make

Gerar um número de série aleatório:

./atecc -b 1 -s 192 -c 'serial'
  • -b 1 → Usa o slot 1.
  • -s 192 → Define o tamanho do número de série como 192 bits.
  • -c 'serial' → Gera um número de série aleatório.

Saída esperada:

O número de série gerado será exibido, por exemplo:

01235595d3d621f0ee

Este método permite a interação com o dispositivo ATECC608A, possibilitando realizar operações como gerar números de série aleatórios de forma eficiente.

Interagindo com a EEPROM

Para ler e gravar dados em uma EEPROM (Memória Somente Leitura Programável Eletricamente Apagável), siga estas etapas:

Conceder permissões completas ao arquivo de dispositivo da EEPROM:

sudo chmod 777 /sys/bus/i2c/devices/6-0050/eeprom

Gravar dados na EEPROM:

echo "This is a test string" > /sys/bus/i2c/devices/6-0050/eeprom

Ler o conteúdo da EEPROM em formato hexadecimal:

cat /sys/bus/i2c/devices/6-0050/eeprom | hexdump -C

Verificando a detecção do SSD

Para listar todos os discos conectados, incluindo o SSD, use o seguinte comando:

sudo fdisk -l

Este comando exibirá uma lista de todos os dispositivos de armazenamento detectados. Procure por entradas que representem seu SSD, normalmente rotuladas como:

  • /dev/sda
  • /dev/sdb
  • /dev/sdc, etc.

Depois de identificar a entrada correta do SSD, você pode prosseguir com particionamento, formatação ou outras tarefas de gerenciamento de disco, conforme necessário.

UPS para desligamento seguro

Uma conexão GPIO6 entre a CPU e a entrada de alimentação DC é usada para notificar a CPU quando a fonte de alimentação é desligada. A CPU deve executar tarefas urgentes via script antes que a energia do supercapacitor se esgote e então iniciar um desligamento seguro ($shutdown).

Método alternativo de desligamento
Outra forma de usar essa função é disparar um desligamento quando o pino GPIO mudar de estado. O pino GPIO especificado é configurado como uma tecla de entrada, gerando eventos KEY_POWER. Esses eventos são tratados pelo systemd-logind, que inicia automaticamente o desligamento do sistema.

Para habilitar essa função, consulte /boot/overlays/README, depois modifique /boot/firmware/config.txt adicionando:

dtoverlay=gpio-shutdown,gpio_pin=6,active_low=1
nota
  1. Para detalhes da funcionalidade de UPS, entre em contato conosco.
  2. O sinal de alarme é ativo em LOW.

Código Python para desligamento seguro

O script Python a seguir demonstra como detectar o modo de funcionamento do UPS de supercapacitor via GPIO6. Quando o sistema detecta um evento de desligamento, ele salva os dados automaticamente e desliga com segurança.

import RPi.GPIO as GPIO
import time
import os

num = 0

GPIO.setmode(GPIO.BCM) # Set GPIO numbering mode
GPIO.setup(6, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set GPIO6 as input with pull-up resistor
GPIO.add_event_detect(6, GPIO.FALLING, bouncetime=500) # Add debounce time for stabilization

while True:
if GPIO.event_detected(6):
print("...External power off detected...")
os.system("sync") # Ensure data is written to disk
print("...Saving data...")
time.sleep(3)
os.system("sync") # Save data again

while num < 5:
print(f"--- {5 - num} seconds remaining ---")
num += 1
time.sleep(1)

os.system("sudo shutdown -h now") # Execute system shutdown

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...