Instrument Control

Tests RF et calibration avec TofuPilot

Apprenez à enregistrer les données de test et de calibration RF pour les produits sans fil avec TofuPilot, couvrant la puissance de sortie, la sensibilité.

JJulien Buteau
advanced10 min de lecture14 mars 2026

Tests RF et calibration avec TofuPilot

Tout produit sans fil nécessite des tests RF : puissance de sortie, sensibilité du récepteur, précision fréquentielle, émissions parasites. Pour les produits intégrant WiFi, Bluetooth, LoRa, cellulaire ou un RF propriétaire, ces mesures déterminent si le produit respecte les exigences réglementaires et fonctionne réellement sur le terrain. TofuPilot stocke les données de test RF pour le suivi de tendances, le suivi de calibration et la conformité.

Paramètres de test RF

ParamètreCe qu'il mesurePourquoi c'est important
Puissance TX de sortie (dBm)Intensité du signal transmisTrop élevée : violation réglementaire. Trop faible : mauvaise portée
Sensibilité RX (dBm)Signal minimum recevableDétermine la portée de réception
Erreur de fréquence (ppm)Précision du quartz/oscillateurAffecte l'interopérabilité
EVM (Error Vector Magnitude)Qualité de modulationAffecte le débit de données
Émissions parasitesSortie RF non intentionnelleConformité réglementaire
Précision RSSIIndicateur d'intensité du signal reçuAffecte la gestion de liaison

Enregistrement des résultats de test RF

Test paramétrique RF de base

rf_test.py
from tofupilot import TofuPilotClient

client = TofuPilotClient()

def rf_production_test(serial, tx_power, rx_sensitivity, freq_error_ppm, evm_pct):
    client.create_run(
        procedure_id="RF-PARAMETRIC-BLE",
        unit_under_test={
            "serial_number": serial,
            "part_number": "IOT-SENSOR-V3",
        },
        run_passed=True,
        steps=[{
            "name": "TX Performance",
            "step_type": "measurement",
            "status": 0 <= tx_power <= 4,
            "measurements": [
                {"name": "tx_power_dbm", "value": tx_power, "unit": "dBm", "limit_low": 0, "limit_high": 4},
                {"name": "freq_error_ppm", "value": freq_error_ppm, "unit": "ppm", "limit_low": -20, "limit_high": 20},
                {"name": "evm_pct", "value": evm_pct, "unit": "%", "limit_high": 30},
            ],
        }, {
            "name": "RX Performance",
            "step_type": "measurement",
            "status": rx_sensitivity <= -90,
            "measurements": [
                {"name": "rx_sensitivity_dbm", "value": rx_sensitivity, "unit": "dBm", "limit_high": -90},
            ],
        }],
    )

Test RF multi-canaux

Testez sur tous les canaux de fonctionnement pour détecter les problèmes spécifiques à un canal.

rf_multi_channel.py
# Le BLE possède 40 canaux (0-39)
# Tester un ensemble représentatif
test_channels = [0, 12, 19, 20, 38, 39]

measurements = []
for ch in test_channels:
    set_channel(ch)
    power = measure_tx_power()
    measurements.append({
        "name": f"tx_power_ch{ch}_dbm",
        "value": power,
        "unit": "dBm",
        "limit_low": 0,
        "limit_high": 4,
    })

client.create_run(
    procedure_id="RF-MULTI-CHANNEL-BLE",
    unit_under_test={"serial_number": serial},
    run_passed=all(0 <= m["value"] <= 4 for m in measurements),
    steps=[{
        "name": "Multi-Channel TX Power",
        "step_type": "measurement",
        "status": True,
        "measurements": measurements,
    }],
)

Calibration RF

De nombreux produits sans fil nécessitent une calibration RF par unité pour compenser les tolérances des composants. Le processus de calibration :

  1. Mesurer la puissance TX réelle à un niveau de référence
  2. Calculer l'écart par rapport à la cible
  3. Écrire une valeur de calibration dans la flash/EEPROM du DUT
  4. Vérifier que la sortie calibrée correspond à la cible
rf_calibration.py
def calibrate_rf(serial):
    # Étape 1 : Mesurer la puissance non calibrée
    raw_power = measure_tx_power()

    # Étape 2 : Calculer l'offset de calibration
    target_power = 0.0  # dBm
    cal_offset = target_power - raw_power

    # Étape 3 : Écrire la calibration dans le DUT
    write_cal_value(cal_offset)

    # Étape 4 : Vérifier
    calibrated_power = measure_tx_power()

    client.create_run(
        procedure_id="RF-CALIBRATION-BLE",
        unit_under_test={"serial_number": serial},
        run_passed=abs(calibrated_power - target_power) < 1.0,
        steps=[{
            "name": "TX Calibration",
            "step_type": "measurement",
            "status": True,
            "measurements": [
                {"name": "raw_tx_power_dbm", "value": raw_power, "unit": "dBm"},
                {"name": "cal_offset_db", "value": cal_offset, "unit": "dB"},
                {"name": "calibrated_tx_power_dbm", "value": calibrated_power, "unit": "dBm",
                 "limit_low": -1.0, "limit_high": 1.0},
            ],
        }],
    )

Suivi des performances RF en production

Distribution des offsets de calibration

La distribution des offsets de calibration renseigne sur la cohérence de votre matériel RF. Une distribution serrée (petits offsets) indique une fabrication PCB cohérente. Une distribution large ou dérivante suggère :

  • Variation de placement d'antenne
  • Variation d'impédance du PCB
  • Changements de lot de composants (balun, réseau d'adaptation)

Puissance TX dans le temps

Tracez la puissance TX sur l'ensemble de la production. Recherchez :

TendanceCause
Dérive progressiveDérive de calibration de l'équipement de test
Changement brusqueNouveau lot de composants, révision PCB
Variance accrueVariation du processus de fabrication
Échecs dépendants du canalProblèmes d'antenne ou de réseau d'adaptation

Surveillance de la sensibilité RX

La sensibilité du récepteur est plus difficile à mesurer en production (nécessite un environnement blindé et une source de signal calibrée). Suivez-la pour détecter :

  • Dégradation du gain du LNA
  • Désaccord de filtre
  • Augmentation du facteur de bruit due aux modifications de routage

Considérations sur les bancs de test

Les tests RF nécessitent des environnements RF contrôlés :

ConfigurationCas d'usageIsolation
Boîte blindéeTests de production60-80 dB
Chambre anéchoïqueCaractérisation d'antenne80+ dB
Câble RF (conduit)Tests au niveau carteConnexion directe

Enregistrez le type et le numéro de série du banc de test avec chaque exécution. Si les résultats de test RF changent, la calibration du banc ou l'état du câble peut avoir évolué.

Données de conformité réglementaire

La certification RF (FCC, CE, IC, MIC) exige des données de test spécifiques. Bien que les tests de certification soient réalisés dans des laboratoires accrédités, les données de pré-conformité de TofuPilot vous aident à :

  • Prédire les résultats de certification en fonction des marges de production
  • Comparer les unités de production à l'unité certifiée d'origine
  • Suivre les modifications qui pourraient invalider la certification

Plus de guides

Mettez ce guide en pratique