Home Forum Scrivi una domanda di elettronica Oscilloscopio

Questo argomento contiene 5 risposte, ha 2 partecipanti, ed è stato aggiornato da  electropower 3 anni, 6 mesi fa.

Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
  • Autore
    Articoli
  • #57826

    Mino_73
    Partecipante

    Sono alla ricerca di documentazione riguardante le attuali tecniche di campionamento ad elevata frequenza utilizzate negli oscilloscopi (dal Gs/s in poi), ho cercato su internet schemi elettrici di qualche oscilloscopio attuale, ma sono riuscito a trovare solamente schemi di vecchi strumenti, troppo datati per ricavarne informazioni utili.
    Le uniche informazioni recenti che ho trovato riguardano uno strumento della witting ricavati da reverse engineering del PCB, ma sono incompleti e non affidabili.
    Vorrei studiare quali sono le tecniche di campionamento e di condizionamento del segnale, mi interessa anche la parte del front-end per capirci.
    I alcuni strumenti ad esempio sono utilizzati più convertitori messi in cascata per aumentare la frequenza di campionamento, vorrei conoscere quali sono le tecniche per il controllo dei convertitori in modo da garantire il corretto allineamento temporale dei dati. Insomma se avete schemi elettrici, riferimenti a testi o altro fatemi sapere. Grazie a tutti.

    #69364

    electropower
    Membro

    Ciao Mino_73, ho letto la tua richiesa di informazioni e sinceramente credo che ti stia inserendo in un ambito progettuale tanto interessante quanto complesso (o forse complessissimo). Per quella che è la mia esperienza, ti posso dire che sicuramente per quanto riguarda il campionamento si utilizzano dei convertitori ADC flash (i più veloci che si conoscono) pilotati come hai detto tu in interleaved (praticamente alternando le fasi di campionamento su più convertitori posti in cascata)…quest’ultima tecnica è poi, tra l’altro, quella adottata negli oscilloscopi digitali con sample rate non per forza così elevati da raggiungere i giga, ma anche in quelli la cui banda passante del front-end è di qualche centinaio di MHz. Se tu usi un solo canale dell’oscilloscopio, alcuni strumenti effettuano la commutazione automatica del convertitore non adottato connettendolo in interleaved con quello del canale adoperato. Alla fine della fiera ti ritrovi il doppio come rate di campionamento sul singolo canale. Per quanto riguarda la gestione degli stadi ADC posti in cascata, dovrai disporre di tanti segnali impulsivi di campionamento quanti sono gli stadi ADC, ogni segnale deve presentare lo spike per il campionamento sfasato rispetto agli altri, altrimenti il giochetto non funge. Per farla breve, se tu metti in cascata 4 ADC, la frequenza di campionamento è 4 volte maggiore rispetto alla frequenza di campionamento del singolo stadio (ogni ADC vedrà la sua frequenza MAX che ti è però insufficiente per inseguire la banda del segnale d’ingresso, quindi metti più stadi in cascata e sequenzialmente attivati per n-uplicare il rate di campionamento). Per rendere meglio l’idea ti propongo l’immagine di questo link http://www2.spsc.tugraz.at/people/cvogel/TIADC.html …Si osserva come i segnali di campionamento di ogni singolo stadio ADC sia sfasato di un multiplo di 2pigreco rispetto agli altri. Il problema sussiste nell’atto della raccolta dei dati…bene, questa operazione la esegue un MUX ad altissima velocità (alla velocità effettiva di sampling, quindi la frequenza di campionamento del singolo stadio ADC moltiplicata per il numero di stadi ADC) e il difficile sta proprio nel reperire o progettare questo stadio perchè se il sample rate è di 20GS/s, allora il mux deve andare a 20GHz. Da qui termina la mia cultura sull’argomento. Non so se esistono trucchi furbi per ridurre la frequenza del MUX. Per quanto rigurda il front-end analgico, li devi andare di progettazione in microonde con tutte le sfighe possibili e immaginabili dovute ai parassiti e alle riflessioni del segnale in ingresso per effetto del disadattamento. Quando si va su in frequenza, è inevitabile che l’impedenza di ingresso sia 50ohm perchè questo è il valore dell’impedenza caratteristica del coassiale che costituisce la sonda. Insomma, l’mbito progettuale verso cui ti stai inoltrando è tra i più complessi e pieni di insidie che io conosca perchè prevedere gli effetti dei parassiti, ad esempio, non è assolutamente cosa facile soprattutto quando si sale su in frequenza. Se vuoi approfondire sul “time interleaved samplimg”, su google di materiale ne trovi un bel pò…di schemi funzionanti non se ne trovano, purtroppo, anche perchè non è solo una questione di schema elettrico, la frequenza alta ti impone di guardare anche e soprattutto al layout della scheda, ai materiali con cui la scheda è realizzata, ecc…

    #69366

    Mino_73
    Partecipante

    ciao electropower. Grazie per la risposta!! Sono consapevole della complessità dell’argomento per questo mi piace!! Sono già a conoscenza di parte delle problematiche che ci sono da affrontare e il link lo avevo visto, e in parte studiato. La tecnica di mettere più convertitori AD in cascata l’ho acquisita dagli schemi di un oscilloscopio che è in parte open source (welec w2000a oggi prodotto dalla witting). il problema è conoscere le tecniche utilizzate per progettare la parte del front-end e del controllo degli AD. Il resto mi preoccupa poco in quanto non voglio arrivare a 20 Gs/s ma almeno a 1 Gs/s. Nel w2000a utilizzano 4 convertitori da 250 Ms/s connessi ad una FPGA Altera il tutto gestito da una CPU Nios. Questa per me è la parte più facile!! (E’, in parte, il mio lavoro) Il mux in realtà può non esserci in quanto le uscite provenienti dai 4 AD le prendi in parallelo allargando il DataPath del sistema di memorizzazione ed elaborazione. In pratica la parte del sistema di gestione degli AD connessi all’FPGA la farei lavorare a 250MHz. La memorizzazione però può avvenire anche a 32, 64 o 128 bit riducendo ulteriormente la frequenza di lavoro necessaria. E’ chiaro che stiamo parlando di un progetto molto complesso in tutti i suoi aspetti. Per il controllo dei clock dei convertitori ho intenzione di utilizzare i PLL interni all’FPGA, ma ancora non so in che modo, visti anche i problemi nel realizzare il PCB.(compensazione dei ritardi ecc). Cerco un pò di schemi elettrici anche per vedere che componenti si utilizzano per realizzare questi sistemi. Se ti capitano fammi sapere grazie.

    #69369

    electropower
    Membro

    Grazie a te ho appreso che esiste in reteGrazie a te ho appreso che esiste in rete un progetto open source per la realizzazione di un oscilloscopio digitale e devo dire che questa è davvero una grande pensata dato che l’oscilloscopio, se vogliamo, è lo strumento più costoso all’interno di un laboratorio e purtroppo, proprio per questo suo aspetto, è poco alla portata soprattutto degli hobbisti. Costruire passo dopo passo il proprio oscilloscopio può davvero dare le sue soddisfazioni. Certo occorre una conoscenza nella progettazione elettronica che viaggia dall’analogica per la realizzazione del front end fino ad arrivare alla programmazione di microcontrollori o alla descrizione hardware su FPGA. A proposito di quest’ultime, per chi non lo sapesse, a differenza dei microcontrollori i quali eseguono sequenzialmente delle istruzioni contenute all’interno della memoria programma, le FPGA come tu stesso mi puoi confermare, racchiudono tutto il necessario (macrocelle più o meno complesse in quantità oramai sensibilmente elevate) per realizzare a conti fatti reti sequenziali e combinatorie come se fossero cablate discretamente su scheda, ma tutto questo on-chip. In questo modo si può minimizzare al massimo il contributo dei parassiti e far viaggiare la logica a frequenze di clock difficilmente sostenibili da qualunque microcontrollore. Con chiunque io abbia parlato mi è sempre stato detto che configurare le FPGA tramite VHDL è molto semplice, basta ragionare sulle funzioni che la logica deve svolgere e scrivere un codice che rappresenta la connessione hardware dei vari blocchi…io non mi ci sono mai messo ma sinceramente vorrei iniziare a provare qual cosina, giusto per prendere un po’ la mano con questa tecnologia. Per realizzare un oscilloscopio con i rate da te indicati ti serve per forza di cose una FPGA, non c’è verso. Tempo fa, su Circuit Cellar (nota rivista inglese di informatica, elettronica e tecnologia) ho letto l’introduzione ad un progetto di oscilloscopio DIY che adoperava per la gestione dei campionamenti e quindi dei i vari segnali di trigger (meglio per i vari eventi di trigger) una CPLD, padre (o madre…:D) delle FPGA. Lì però non si andava oltre i 150MS/s. Comunque ti stimo tantissimo per la tua cultura nell’ambito delle FPGA.
    Ho letto la tua soluzione per eliminare il MUX e devo dire che è geniale, certo fattibile solo con FPGA ma se questa sarà il core del tuo strumento, allora sei a cavallo. Giustamente dici che anzicchè far transitare 8bit per volta all’uscita di ogni singolo ADC, fai corrispondere ad un data path più ampio tutti i tuoi ADC, in maniera parallela. Comuque sia, in fase di ricostruzione del segnale, devi comunque sviscerare il data path e ritornare da 32bit (ad esempio 4 ADC a 8bit) a 8 bit, informazione che ti servirà per andare a visualizzare in un certo qual modo i singoli campioni sul tuo supporto di visualizzazione. Eliminare un MUX che viaggia alla frequenza del sample rate non è assolutamente una cosa che ti fa guadagnare poco, poi non so cosa può offrire una FPGA in merito a questo…Sarebbe abbastanza costruttivo aprire una community proprio qui, su Elettronica Open source, in cui ognuno può dire la sua sui vari aspetti progettuali di un oscilloscopio per poi arrivare a finalizzare una soluzione Open Source che, perché no, potremmo ritrovarla montata e funzionante e pronta per essere messa in premio nel contest “vinci DIYScope” :D!!!

    #69370

    Mino_73
    Partecipante

    Il progetto open source è in realtà della sola parte software e firmware dell’FPGA montata a bordo del w2000a. A me piacerebbe avere un qualcosa di total open source & HW.
    Un oggetto da poter personalizzare a seconda delle esigenze. In commercio si possono trovare delle buone schede di acquisizione dati, magari usate,ma i prezzi non sono proprio da hobbista!!! Qualcuno potrebbe obiettare che con cifre più che abbordabili si può comprare uno strumento decente, magari usato, da utilizzare nel proprio laboratorio. Ma vuoi mettere la soddisfazione di una realizzazione di questo tipo!!!
    Confermo in parte ciò che dici sulle FPGA, ma le frequenze a cui arrivano molti microcontrollori non sono pensabili in una FPGA. Il vanaggio di questi dispositivi sta nella versatilità. Questa versatilità implica però la necessità di avere all’interno del dispositivo una complessa rete di routing che permetta il collegamento delle risorse interne al dispositivo stesso. I ritardi introdotti da queste connessioni limitano la frequenza massima di funzionamento. Un esempio tanto per dare anche qualche numero. Prendiamo una Cyclone IV con istanziato un NiosII e qualche periferica, con l’FPGA riempita al 60% circa, si può arrivare a far lavorare la CPU a circa 120MHz, complicando un po le cose si riesce a mandare diverse sezioni del dispositivo a frequenze diverse e anche molto più alte. Da qui si aprono però molti discorsi da fare per gestire al meglio le risorse interne al dispositivo.
    Una soluzione Asic permette in realtà frequenze di lavoro molto maggiori. Per quanto riguarda le PLD, essendo più semplici, riescono a sostenere frequenze maggiori di una FPGA con la stessa tecnologia. Le risorse interne ad una FPGA comprendono memorie, moltiplicatori, PLL, e periferiche complete come PCI express. I prezzi, se non si guardano i listini di rivenditori come RS, farnell ecc, non sono poi così alti, si parte da una ventina di euro.(ma si arriva anche a qualche migliaio di euro per le famiglie più performanti).
    Per quanto riguarda il VHDL devo dire che in realtà e uno dei linguaggi più complessi che ci sia. Il VHDL NON è un liguaggio di programmazione, ma un liguaggio di descrizione. Prima di mettersi a scrivere è necessario avere ben in testa come deve essere fatto l’HW che si vuole descrivere. Questa descrizione può essere fatta in molti modi, ma solo alcuni sono poi correttamente interpretati dal sintetizzatore che interpreta quanto scritto per generare la rete logica. Purtroppo non basta solo ragionare sulla funzione logica, entrano in ballo molti altri fattori di ottimizzazione e gestione delle risorse interne. Un esempio per tutti sono la sintesi di macchine a stati. Si può anche scrivere una macchina da 100 e più stati (!!!) ma poi non si può pretendere di avere alte frequenze di lavoro.
    Per quanto riguarda la gestione dei dati da 32 a 8 bit è un problema che si può affrontare visti i tempi di aggiornamento di un display che sono dell’ordine dei ms. C’è da lavorarci, ma la cosa si può fare.
    Se possibile, può essere una bella cosa aprire uno spazio qui, per condividere e partecipare al progetto. Ma, perdonami la polemica, questo preferisco che sia fatto al di fuori di un contest a premi basato sui commenti.
    Questo progetto per ora è solo un caso di studio ma chissà magari con la partecipazione di altre persone si può anche realizzare.

    #69371

    electropower
    Membro

    Sono d’accordo con te su tutto, compreso il fatto di non speculare sull’apertura di un post di forum in sede di concorso…diciamo che ne possiamo riparlare meglio e con calma alla chiusura del contest! ;)

Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.