Je lisais la sonde de portée USB - demande de commentaires et d'idées , et cela m'a fait réfléchir. Ce que j'aimerais vraiment, c'est un oscilloscope à très hautes performances, qui coûterait environ 10000 $. Beaucoup d'autres personnes en voudraient sûrement aussi. Et sûrement, avec l'expertise disponible sur ce site, il devrait être possible d'en concevoir un et open-source.
Voici mon idée:
- Ce serait une sonde portative avec un câble USB sortant.
- Fonctionne sur batterie pour l'isoler de l'alimentation USB.
- L'étage d'entrée est un ampli op à grande vitesse, comme le THS3201DBVT ?
- L'ADC est quelque chose comme ASD5010 , qui est 1 Gs / s et 650 MHz de bande passante d'entrée.
- FPGA pour gérer les données 32 bits qui sortent, faire le déclenchement et les empaqueter dans l'USB.
- Logiciel open-source à exécuter sur le PC.
Est-ce une course de fou? Qu'est-ce que je rate?
Ajouté, plus de détails en réponse aux réponses:
- Cette portée ne serait pas en mesure de rivaliser avec les étendues chères de fantaisie là-bas. L'objectif principal est d'avoir quelque chose qui permettrait d'examiner les signaux à haute vitesse, tout en coûtant moins de 200 $ pour que quelqu'un se fasse.
- Bande passante USB: ce n'est pas une portée analogique, ni un LeCroy sophistiqué . Cependant, l'USB est tout à fait capable de transférer des échantillons 2k à 60 Hz. Cela le rend toujours extrêmement utile, même s'il pourrait ne pas être capable de capturer des événements transitoires entre ces trames.
- Un affichage réactif clair. Eh bien, le moniteur d'un PC est certainement clair. Mieux que presque tous les oscilloscopes sur le marché. La clarté et la taille ne posent donc aucun problème. Sensible? Tant que l'écran peut être mis à jour à 60 Hz, je pense que c'est assez réactif.
- Déclenchement: j'imaginais un simple déclenchement de niveau sur l'appareil. Encore une fois, il ne serait pas en mesure de rivaliser avec des portées fantaisies, mais rappelez-vous: cela est censé être un appareil à 200 $.
- Il n'est pas censé avoir une bande passante de 1 GHz. Où ai-je dit ça? Mais il pourrait sûrement avoir plus de 100 MHz de bande passante?
Points à emporter:
- C'est un appareil à 200 $.
- L'objectif principal de l'appareil est de permettre de voir les signaux à haute vitesse sans dépenser 10000 $.
- Il y aurait beaucoup de choses qu'il ne pourrait pas faire.
- Certes, quelque chose comme ça serait assez utile pour les gens d'ici.
- Sûrement, avec l'expertise disponible sur ce site, nous pourrions y arriver?
usb
oscilloscope
high-frequency
Rocketmagnet
la source
la source
Réponses:
Cela revient à une question de bande passante et de latence. Pour un système simple, supposons une sonde avec une bande passante de 100 MHz avec un taux d'échantillonnage de 1GS / s et un convertisseur A / N 10 bits (j'ai eu de mauvaises expériences avec des étendues 8 bits).
Je veux un affichage en temps réel sur le PC avec une fenêtre d'échantillonnage minimale de disons 10ns - 1 cycle d'une onde sinusoïdale de 100 MHz et une fenêtre maximale de (je serai généreux pour vous dans ce cas) une demi-seconde. En d'autres termes, le réglage de l'heure le plus bas sera quelque chose comme 1ns / div et le plus élevé est 0,05 s / div. Je veux également plusieurs modes de tension - plage de 100 mV jusqu'à 20 V, disons.
Quel type de débit de données cela implique-t-il?
1 Gs / s * 10 bits / échantillon = 10 Gbits / s
Ce ne sont pas des vitesses USB. Loin de là. Et je n'ai même pas pris en compte les frais généraux. Tout d'abord, vous n'avez tout simplement pas la bande passante. Et ce n'est pas seulement la bande passante. Pour votre affichage en temps réel, vous devez être cohérent. Vous devez transférer 100 bits vers votre couche d'application toutes les 10 nano secondes. Ce type de cohérence ne peut pas être obtenu à partir de l'USB. Il n'est pas conçu pour répondre à un seul appareil avec des exigences extravagantes - il est conçu comme un bus. Et vous ne pouvez pas contrôler quand vous possédez le bus - les appareils ne sont que des esclaves. Si l'hôte laisse un autre appareil parler lorsque vous devez envoyer des données, vos données sont perdues.
Vous pouvez être en train de pleurer - pourquoi transférer des données en temps réel vers l'ordinateur alors que le «temps réel» pour une personne est de 60 Hz? Si tout ce que vous avez à faire est de mettre à jour l'affichage, vous n'avez certainement pas besoin de beaucoup de données. Sauf si vous le faites - votre affichage est une combinaison linéaire de tous les échantillons que vous avez collectés. Interpolation spline cubique moyennée, quadratique moyenne, peu importe. Pour faire un joli joli affichage qui n'est pas seulement un tas de points, vous avez le plus besoin de toutes ces données et vous devez les post-traiter. Un déclenchement? Les calculs doivent être effectués sur l'hôte - au niveau de la couche application. Quelle que soit la façon dont vous le découpez, pour des affichages en temps réel à des taux de 1GS / s pour une précision qui en vaut la peine, vous devez transférer des ordres de grandeur plus de données que l'USB ne peut gérer et vous devez le faire de manière plus fiable que vous.
Quels sont les moyens de contourner cela? Ne faites pas d'affichage en temps réel. Certaines portées USB ne proposent que des modes déclenchés. Le déclenchement est géré sur l'appareil et lorsqu'un déclencheur est trouvé, les données sont collectées dans un tampon. Lorsque le tampon se remplit, la portée USB le transfère lentement à l'application, puis l'application l'affiche. Cela suffit pour beaucoup d'utilisation de la portée, mais ce n'est pas en temps réel. Et le transfert - cela prend aussi du temps. C'est gênant. Et généralement, les pilotes sont nulles. Vous pouvez dire que j'ai eu de mauvaises expériences.
Je me suis toujours demandé pourquoi Firewire n'était pas utilisé pour les oscilloscopes. Cela évite certains des maux de tête de l'USB. Il est pair à pair, offre des modes isochrones (synchronisation cohérente) et une bande passante relativement élevée. Vous pourriez être en mesure de créer une portée en temps réel de 10 MHz avec cela.
Pour traiter vos points après la modification:
La facilité d'utilisation d'une lunette augmente énormément avec le prix. Lorsque vous passez d'une portée USB de 200 $ à une portée autonome de 500 $, vous obtenez d'énormes augmentations des fonctionnalités et des fonctionnalités de base. Pourquoi dépenser seulement 200 $ alors que pour un peu plus, vous pouvez obtenir une vraie portée? Maintenant que la Chine a ouvert les vannes de portées efficaces et bon marché, il n'y a pas de raison de vouloir économiser 300 $ qui ne feront que vous frustrer plus tard. Les portées «fantaisies» qui ont ces fonctionnalités sont bon marché de nos jours.
Oui, limiter votre transfert de données pour ne fournir que quelque chose d'environ 60 Hz de données cohérentes sera plus facile avec USB, mais ce n'est toujours pas quelque chose que vous voulez faire. N'oubliez pas vos classes DSP - récupérer uniquement certaines données du flux équivaut à une décimation. Lorsque vous décimez, vous devez ajouter des filtres d'anticrénelage. Lorsque vous faites cela, vous perdez de la bande passante. Cela rend votre portée moins utile - cela limitera votre bande passante sur l' affichage en temps réel (et seulement pour les modes déclenchés en temps réel serait correct) à beaucoup moins que la bande passante de votre frontal analogique. La gestion des aspects de traitement du signal d'un oscilloscope est une affaire délicate.
Affichage réactif clair? Le PC? Pas toujours. Quelle que soit la façon dont vous procédez, vous devez mettre les données en mémoire tampon. Comme je l'ai déjà dit, l'USB ne garantit pas le débit de vos données. Je le dirai différemment: l' USB n'est pas conçu pour accueillir un transfert de données en temps réel difficile. Bien sûr, pour des quantités de données suffisamment petites à de grands intervalles, vous pouvez obtenir de bonnes performances, mais pas des performances cohérentes. Vous utiliserez la mise en mémoire tampon et de temps en temps, vous manquerez de transférer votre mémoire tampon en temps opportun. Ensuite, votre affichage saute, les données sont périmées, etc. etc. Des affichages en temps réel clairs et réactifs nécessitent des liaisons de données en temps réel, point final.
Déclenchement simple - encore une fois, nous revenons au rapport coût / complexité / réactif. Pour effectuer un déclenchement sur l'appareil afin de détecter les transitoires, votre appareil ne peut pas être simplement un canal de données stupide qui transfère des échantillons de manière irresponsable via USB. Vous devez tamponner, tamponner, tamponner les échantillons sur l'appareiljusqu'à ce que vous voyiez votre condition de déclenchement. Cela signifie que vous avez besoin de mémoire et d'intelligence sur votre appareil - soit un grand FPGA ou un grand microcontrôleur. Cela ajoute à la taille et à l'espace. Si vous utilisez un FPGA, vous devez équilibrer la quantité de logique de déclenchement avec votre besoin de beaucoup de RAM pour l'espace tampon. Votre tampon est donc plus petit que vous ne le souhaiteriez déjà. Cela signifie que vous obtenez une quantité infime de données autour de votre point de déclenchement. Sauf si vous ajoutez de la mémoire externe, vous pouvez faire plus. Cela augmente cependant la taille et le coût de votre appareil - ce ne sera certainement pas juste une sonde avec un câble USB attaché.
Vous auriez la chance d'obtenir une bande passante de 100 MHz - généralement 10 fois la fréquence d'échantillonnage est considérée comme la coupure minimale de la bande passante. Donc, si vous avez un taux d'échantillonnage de 1GS / s, vous obtenez à peine une bande passante de 100 MHz. Vous ne pouvez pas obtenir plus - une onde carrée de 200 MHz va ressembler à une onde sinusoïdale de 200 MHz. Ça craint. C'est idiot - c'est loin d'être professionnel.
Votre autre ensemble de points:
Vous vivez et mourez par votre équipement de test en tant qu'ingénieur. Si vous n'êtes pas certain de pouvoir lui faire confiance, vous perdez votre temps. Compte tenu du manque d'expertise que vous avez montrée sur la communication à haute vitesse, le traitement du signal et la puissance du traitement intégré (dans les FPGA ou les microcontrôleurs), je ne parierais pas que vous êtes en train de le concevoir vous-même et personne d'autre qui a répondu n'est rien autre qu'ambivalent.
S'il y avait un ensemble d'exigences mieux ciblées qui répondaient à un besoin réel dans la communauté qui n'était pas desservi, que je pourrais voir être techniquement faisable, je serais à bord. Mais vos exigences vagues ne semblent pas recherchées. Vous devez faire une enquête sur les options disponibles pour les amateurs - quelles portées USB et autonomes les gens utilisent, quelles sont leurs forces et leurs faiblesses, et déterminer si des niches ne sont pas remplies. Sinon, c'est juste fantasmer.
la source
Vous ne voudriez pas qu'il soit dans un format de sonde portable, car une portée à canal unique n'est pas très utile. Le coût supplémentaire de 2 canaux (même si vous multiplexez l'ADC) est un petit pourcentage de coût supplémentaire, mais une énorme augmentation de l'utilité.
À moins que vous ne vouliez tirer plus de 500mA, aucune raison d'utiliser une batterie car vous pourriez avoir un convertisseur DC-DC isolé. Cependant, l'obtention d'une bande passante élevée à travers une barrière d'isolement n'est pas anodine.
la source
Eh bien, il y a quelques problèmes ici. Si nous prenons comme standard de référence un oscilloscope analogique à 1 GHz (comme un bon Tektronix), cet oscilloscope proposé souffrira de la manière suivante:
1) l'ASD5010 est un convertisseur 8 bits. 8 bits n'est pas suffisant pour pouvoir rivaliser avec une bonne portée analogique.
2) Ne confondez pas le taux d'échantillonnage avec la bande passante analogique. Pour la puce que vous avez sélectionnée, la bande passante analogique équivalente serait probablement beaucoup plus proche de 100 MHz que de 1 GHz.
Cela ne veut pas dire qu'il n'est pas possible de construire une telle portée, on peut clairement en acheter une répondant à ces spécifications dans le commerce. Il n'est tout simplement pas trivial d'atteindre une bande passante de 1 GHz, et une ingénierie spéciale et de meilleures pièces seraient nécessaires.
la source
Les ADC 8 bits sont assez courants dans les oscilloscopes, mais la technique d'utilisation des ADC est un peu différente. Comme j'ai vu quelques étendues internes, le cas commun est d'utiliser 4 puces ADC, chacune cadencée avec un incrément de phase de 90 degrés, donc vous obtenez 4x échantillons par cycle d'horloge et c'est pourquoi la fréquence de clk est assez faible, mais la bande passante des données est haut. Quoi qu'il en soit, un tel projet finira par gaspiller plus d'argent que l'achat d'une toute nouvelle lunette :-) Cependant, cela pourrait être une bonne pratique pour l'auto-apprentissage. OTOH, pensez au côté analogique de la portée. Cette partie est sacrément difficile et très délicate à faire.
la source
Autres issues:
protection : à coup sûr, vous ne voulez pas qu'il casse le premier temps que vous avez mis par erreur 20-30 V à l'entrée;
étalonnage : même avec une précision de 8 bits, vous devez toujours contrôler l'erreur à 1/256 = 0,4%; pas banal avec des composants standard;
filtrage du bruit : il doit être blindé et filtré, et ce n'est pas suffisant car le FPGA générera probablement du bruit, vous devez donc séparer le domaine analogique et numérique.
Quoi qu'il en soit, à propos de la connexion USB, je pense qu'il est plus fonctionnel de traiter en interne les données et de les connecter directement à l'écran.
la source