TKNET USB audio completeNotre réseau corse de relais TKNET utilise le logiciel AllStarLink (ASL) pour effectuer la communication entre relais et nécessite des adaptateurs USB, nommés URA ou URI ( USB Radio Adapter/Interface). Pour numériser les signaux BF pour les transporter en VoIP et les interfacer avec les équipements, j'avais développé il y a quelques années une petite interface qui utilisait une petite carte son USB à 3€ légèrement modifiée et enfichée sur la carte interface. 

A l'usage, cette solution s'est avérée parfois problématique du fait de sa fragilité et le schéma d'origine comportait quelques petites erreurs et certains signaux n'étaient pas exploités.
L'idée de développer une nouvelle carte URA avec un circuit audio USB intégré a donc germée. La retraite m'a motivé pour passer à l'action !

Le circuit intégré USB audio utilisé sur la carte son a été réutilisé, il s'agit du CM119A en boîtier LQFP-48.

Caractéristiques :

  • Carte son USB intégrée compatible USB 2.0 et échantillonnage à 48 kHz.
  • Source d'alimentation sélectionnable par cavalier via port USB ou alimentation intégrée (entrée 30V max et 3A)
  • Watchdog verrouillant la sortie PTT en cas de perte de dialogue avec l’ordinateur ou le Raspberry (évite des porteuses permanentes !)
  • Contrôle du fonctionnement par 4 LED : Heardbeat, Squelch, PTT et COMM OK.
  • Sélection par cavalier du canal audio de sortie Droite ou Gauche
  • Niveau entrée Squelch sélectionnable par cavalier, mise à la masse ou état haut.
  • Possibilité de couper par cavalier ou interrupteur la sortie PTT (test, coupure relayage, etc...)
  • 5 ports GPIO disponibles, entrées et sorties programmables par soft.

Connectivités :

  • Connecteur jack d'alimentation 2mm pour alimentation 5V interne.
  • Port USB B en entrée/sortie pour la connexion au PC ou Raspberry
  • Port USB A en sortie permettant d'alimenter une carte Raspberry ou autre via câble USB et connecteur au choix et à l'aide de l'alimentation 5V intégrée.
  • Connecteur DB9 femelle pour entrées/sorties vers radio (PTT, SQ, BF TX et BF RX)
  • Ports GPIO4 à GPIO8 disponibles sur la platine.

Fonctionnement :

La carte possède sa propre alimentation 5 V qui peut alimenter l'interface mais aussi un montage externe via le connecteur USB1.
Le 5 V est fourni par un petit module convertisseur abaisseur de tension dit "buck converter". Tension d'entrée max 30V et courant max. 3A. Un fusible F1 protège la sortie 5V.
La carte peut également être alimentée par le port USB B. La sortie USB A est alors inactive pour éviter consommation excessive.

Le cœur du montage est un circuit intégré CM119A qui effectue la numérisation des signaux BF, gère le transceiver USB et les 8 ports GPIO.
Il possède un oscillateur avec un quartz externe de 12 MHz.
La sortie LED0 (pin 12) indique le fonctionnement du circuit et l'état de la communication via le port USB. La Led fixe indique que le montage est alimenté, clignotante, qu'un dialogue USB a bien lieu.

Cette sortie LED0 est aussi utilisée pour le fonctionnement d'un Watchdog construit autour d'un NE555. Dés que l'impulsion provenant du CM119A cesse, la sortie du NE555 passe à l'état bas, la Led OK s'éteint et le transistor Q4 empêche le fonctionnement de Q3 qui ne peut alors plus relayer la fonction PTT issue du GPIO3.
Le Watchdog a pour but d'éviter toute mise en porteuse accidentelle et permanente en l'absence de dialogue avec le logiciel Asterisk.

La fonction PTT est issue de la pin 13 GPIO3 du CM119A. Le transistor Q3 commande le PTT de l'émetteur. Le cavalier JP4 permet de couper ce signal soit pour empêcher le relayage, soit pour test.
Un interrupteur sur la face avant peut alors permettre de couper l'émission. Si cette fonction n'est pas utilisée, positionner un cavalier permanent.

L'entrée Squelch permet à l'aide de Q1 de piloter la pin 48 VOLDN et de signaler au logiciel via le CM119A la présence d'un signal.
Le cavalier JP2 permet 2 fonctionnements :
SANS : le récepteur doit fournir une tension en l'absence de signal et 0V avec signal. Cette tension doit être au maximum de 5V, même si le circuit comporte une diode Zener de limitation.
AVEC : le récepteur doit alors fournir un contact fermé en l'absence de signal. Une tension de 5V fournie par la carte est alors présente sur cette entrée.

Le canal gauche ou droite en sortie de CM119A est sélectionnable par un cavalier et est dirigé vers l'émetteur par un potentiomètre de réglage de niveau RP1.
La résistance R7 en série avec le pot. RP1 permet de modifier la talon de réglage du niveau de sortie. Certains TX nécessitent très peu de niveau sur l'entrée micro et le réglage de RP1 seul est pointu. Modifier la valeur de R7 en conséquence, mais souvent elle peut être remplacée par un pont.

Le signal BF du récepteur est dirigé vers la pin 27 MICIN au travers d'un atténuateur réglable par RP2.

Réalisation :

Le circuit imprimé a été conçu en ligne avec le logiciel de CAO, EASYEDA. Les circuits imprimés ont été commandés à leur partenaire JLCPCB que j'utilise régulièrement à ma plus grande satisfaction !
L'avantage d' EASYEDA est la possibilité de pouvoir tout réaliser en ligne sans installation d'un logiciel, et donc de pouvoir travailler de n'importe où et en équipe.

Le schéma de l'interface au format PDF.

Liste des composants au format ODT avec références pour commande chez MOUSER. Certains composants ont été commandés via Aliexpress.

La platine côté composants
TKNET USB PCB components side

La platine côté soudures
TKNET USB PCB solder side

Le plus difficile est de souder le CM119A qui est un LQFP-48 et est à souder en premier pour des raisons évidentes de facilité.
Avec un petit fer à souder, du flux de soudure, une bonne vue et une main calme, on y arrive très bien ! J'y suis bien arrivé malgré mon âge avancé et ma vue basse.  ;-)
J'ai cependant vérifié la continuité de chaque pin à l'aide d'un Ohm-mètre en me référant au schéma. Bien contrôler l'absence de court-circuit entre les pins.
CM119A soldered

Comme souvent, la 1ère version du circuit imprimé comporte parfois des erreurs. Dans le cas présent, quelques petites erreurs de sérigraphie, ce qui n'est pas mal pour un 1er jet !
ATTENTION les schémas et implantations donnés dans cet article sont corrects ! Les composants concernés sont marqués d'un point rouge sur l'implantation ci-dessus.
Seuls les circuits imprimés réalisés en version 03/2021 comportent les erreurs ci-dessous.

  • Résistances R4,R9,R12,R17 470 Ohm au lieu de 1 k pour une luminosité plus importante des LEDs et corriger une erreur de R17
  • Diode D2 1N4148 inversée
  • Diode D1 BAT43 inversée
  • Résistances R10 4.7k et R11 1M permutées (autour NE555)
  • R13 et R16 passent de 10k à 2.2k

 Si le montage est prévu pour être alimenté par le port USB et n'a pas vocation à générer sa propre alimentation destinée à alimenter la carte + le contrôleur (un Raspberry dans notre cas), la partie alimentation est à omettre :

  • Connecteur d'alimentation DC1
  • Module DC/DC à LM2596 U1
  • Porte-fusible F1
  • Connecteur USB1
  • Le cavalier JP1 peut alors aussi être remplacé par un pont en position USB.

Le reste du montage n'amène que peu de commentaires. Seule la résistance fixe R7 en série avec RP1 (réglage niveau TX) est à ajuster en fonction du niveau requis sur l'entrée TX. Chez moi, remplacée par un pont.
R7 forme un pont diviseur avec RP1 et permet donc d'ajuster le "talon" de réglage.
Le condensateur C3 sur l'alimentation du port USB est facultatif et est à rajouter en cas de problème. (pas rencontré)

AVANT d'insérer le fusible et le cavalier JP1, il faut ABSOLUMENT régler la tension de sortie du module DC/DC LM2596 afin d'avoir précisément 5V en sortie ! Bien souvent, les modules venant de Chine ont la résistance ajustable en butée et la tension de sortie est >12V ce qui détruirait le circuit CM119A !!

Tests :

Reboucler la sortie et l'entrée BF en reliant les pins 1 & 2 sur le connecteur DB9.
Positionner le cavalier JP1 sur USB afin d'alimenter la carte par le port USB.
Raccorder la carte à un PC par un câble USB. Windows devrait détecter un nouveau périphérique son sous le nom de "USB PnP Sound Device", ainsi qu'un nouveau périphérique USB composite.
TKNET USB audio detection

A ce stade, la LED HB (heartbeat) devrait être allumée fixe indiquant que le CM119A est sous tension et la LED OK éteinte.
Ouvrir les paramètres de son et dans les périphériques de sortie/entrée, devraient apparaître les choix de la nouvelle carte son en entrée (Speaker) et sortie (Microphone).
Les sélectionner aussi bien en sortie qu'en entrée.
La LED HB doit alors clignoter et la LED OK être allumée fixe, preuve que le Watchdog fonctionne correctement.
Lire un fichier son quelconque et observer les jauges de niveau qui devraient indiquer la lecture et l'enregistrement.
Vérifier que les niveaux sont bien ajustables par les résistances ajustables RP1 et RP2.

Désélectionner la carte son, la LED HB doit être fixe et la LED OK éteinte.
Si tout est OK à ce stade, bravo !! Sinon, vérifier le câblage... :-(

Le cavalier JP2 modifie le fonctionnement du Squelch :
Sans cavalier : le signal squelch issu du récepteur doit fournir une tension à l'état bas (5V max) et 0V le squelch activé.
Avec cavalier : le signal squelch issu du récepteur doit fournir un contact fermé (transistor ou relais) à l'état inactif.
Le fonctionnement du Squelch est aussi géré par le logiciel et peut donc être inversé. L'état de la Led est alors également inversé.
Test : Mettre le cavalier JP2 en place, la LED SQ doit s'allumer. Mettre l'entrée Squelch (pin 4 DB9) à la masse, la LED SQ doit s'éteindre.

Le fonctionnement de la ligne PTT peut être testé à l'aide d'un petit utilitaire livré avec le logiciel DireWolf, à savoir CM108.EXE (page de téléchargement) qui commute le port GPIO3.
Lancé sans paramètre dans une fenêtre de commande DOS, il liste les périphériques audio.
CM108 device display

Il faut copier le HID complet de la carte son PnP détectée précédemment et lancer la ligne de commande comme suit pour le cas ci-dessus :
cm108 "\\?\hid#vid_0d8c&pid_013a&mi_03#7&27055985&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
La Led PTT devrait alors clignoter un rythme de 1s et l'écran afficher une suite de 10101010101 indiquant ce clignotement. La sortie PTT (pin 5 de la DB9) doit être activée au même rythme.

Mise en service :

Positionner le cavalier JP1 en fonction du mode d'alimentation choisi, USB ou INT. Si INT, connecter alors une source d'alimentation 8-15V sur DC1.
Positionner le cavalier JP2 en fonction du niveau de Squelch issu du récepteur (voir fonctionnement ci-dessus)
Positionner le cavalier JP3 en fonction du canal audio (LEFT ou RIGHT) utilisé par le logiciel.
Positionner un cavalier ou câbler un interrupteur sur JP4 en fonction du besoin (voir fonctionnement ci-dessus)
Raccorder le contrôleur (PC ou Raspberry) via le port USB B.
Si le contrôleur est un Raspberry, il peut être alimenté via le port USB A et un câble adéquat, mais il faut alors utiliser l'alimentation interne. Le courant demandé est trop important pour un port USB B.
Lancer le logiciel contrôleur, la Led HB doit clignoter, la Led OK doit être allumée. Vérifier le bon fonctionnement et ajuster les niveaux BF à l'aide de RP1 et RP2 et le logiciel du contrôleur.
Les réglages de niveaux sont assez "touchies". URA réglages niveaux AllStarLink

 Brochage DB9 vers RADIO :

  • 1 - BF RX venant du récepteur
  • 2 - BF TX vers émetteur
  • 4 - Signal SQUELCH venant du récepteur max 5V
  • 5 - Signal PTT vers émetteur (collecteur ouvert) max 15 V
  • 3+6+7+8 Masse
  • 9 - Inutilisée