a
La home page di Lorenzo
Home

FidoCAD
    Introduzione
    FidoCAD Win
    FidoCAD FAQ
    FidoCAD sources

Elettronica
    Oscilloscopio
    Misurare la potenza
    CS low-cost
    SMD for dummies
    PIC16x84
    Propic2clone
    IR-displ

Software
    EZ Tunnel
    Varie

Varie
    Segnalare lo spam

Links
Forum
Guestbook
Contattami

Ritirare le truppe italiane dall'IRAQ:

Si

No

Risultati

Introduzione

Su Internet esistono alcuni progetti di oscilloscopi digitali autocostruiti che vanno dall'abbozzo al lavoro semi-professionale. Guardate ad esempio uno dei più famosi, il BitScope; un lavoro pulito e razionale. Tutti i progetti del genere hanno però alcuni difetti, o almeno io li ritengo tali. Ad esempio sempre riferendomi al BitScope ho individuato questi:

  • Il costo. Il prezzo del BitScope varia da 290$ (kit completo da assemblare) a 400$ (dispositivo completamente assemblato). Poi ci sono da aggiungere la spedizione, i dazi doganali e via dicendo. Penso che per noi italiani il kit da assemblare verrebbe a costare perlomeno attorno ai 400 €. Non è male per un oscilloscopio doppia traccia da 50-75 MHz (anche se in ETS), ma a quel prezzo si iniziano a trovare degli oscilloscopi usati molto interessanti. Inoltre in tante occasioni potrebbe essere sufficiente disporre di un oscilloscopio di prezzo (e prestazioni) inferiore, ma con caratteristiche diverse.
  • Documentazione, schemi e descrizione del funzionamento. Gli autori definiscono il BitScope open source, ma questa è una mezza verità. È vero, perché effettivamente gli schemi sono resi pubblici; è falso, perché manca ciò che rende davvero utile un progetto open: un'estensiva ed esauriente documentazione tecnica di tutte le parti, che permetta a chiunque di estendere e migliorare il progetto a tutti i livelli o di riutilizzarne delle sezioni per i propri scopi. A parte qualche schema a blocchi di insieme e la descrizione "qualitativa" di alcuni aspetti teorici, la cosiddetta documentazione tecnica del BitScope si limita appunto agli schemi elettrici. Troppo poco.
  • Sorgenti firmware e software. Questo è un altro motivo per cui non reputo "open source" il BitScope: per stessa definizione di open source, ciascuna parte di un progetto aperto deve esserlo a sua volta. Dato che il BitScope senza il firmware della CPLD e del PIC non è altro che un innalzatore dell'entropia dell'universo, ritengo che questi elementi facciano parte del progetto a pieno titolo e debbano essere completamente documentati. Un discorso simile si può fare per il software: è vero che il protocollo di comunicazione è documentato e che quindi chiunque può sviluppare un software di pilotaggio per il BitScope, ma è anche vero che (sempre nell'ottica open) fornire dei sorgenti di riferimento per gli altri eventuali sviluppatori può essere molto utile.
  • Reperibilità dei componenti. Gli americani sono fortunati, fanno una telefonata a Digikey e in un paio di giorni gli arriva a casa il componente più strano e assurdo che l'azienda di microelettronica meno nota al mondo abbia mai fatto. Noi dobbiamo accontentarci di RS, Distrelec e Farnell, e questo la dice lunga. Nella fattispecie, parecchi componenti del BitScope non sono facilmente reperibili (almeno, io non li ho trovati con i normali canali ai quali può accedere un hobbista): la SRAM, gli ADC, alcuni operazionali, la PLD e altri ancora. E non voglio dipendere esclusivamente dal loro servizio: se mi si brucia la CPLD, cosa faccio? Me la faccio spedire dagli USA?
  • Porta seriale. Una delle scelte progettuali del BitScope è stata quella di utilizzare la porta seriale (il progetto originale risale a qualche anno fa). Ritengo che la seriale abbia fatto il suo tempo; sta scomparendo da tutti i portatili e da un po' di tempo latita persino su alcuni computer desktop. È inutile sviluppare un progetto su seriale e costringere una fetta di utenti a doversi comprare un adattatore; meglio sviluppare subito su USB, anche considerando che esistono produttori che rendono l'interfacciamento USB persino più semplice di quello seriale!
  • Due canali. Il BitScope ha due canali analogici e otto canali digitali (per l'analizzatore di stati logici). Queste due caratteristiche - specialmente la prima - possono essere limitanti in alcuni casi o sovrabbondanti in altri. Può essere necessario disporre di più canali digitali, oppure di più canali analogici, oppure di pochi canali di entrambi i tipi ma a un costo inferiore. Sviluppare una struttura modulare, che supporti potenzialmente un numero molto ampio di canali di vario genere, è una soluzione decisamente più flessibile.
  • Divertimento. Montare un BitScope è sicuramente più divertente dei soliti lavori di assemblaggio: è più complesso e ciò che si ottiene è una cosa che servirà davvero. Però progettare qualcosa da zero, o comunque conoscere il progetto fino al più piccolo dettaglio, da' sicuramente un altro grado di soddisfazione. Chi ha la fortuna di farlo per lavoro sa quanto sia gratificante vedere i suoi "pargoli" che si fanno onore in giro per il mondo... ;-)

 

Premesse

Anche se è superfluo precisare che nemmeno il mio progetto sarà esente da difetti, faccio comunque una carrellata delle caratteristiche e limitazioni principali che lo contraddistingueranno (per quanto io possa attualmente supporre):

  • Tempo: mi duole sottolinearlo così spesso, ma negli ultimi mesi sono stato parecchio impegnato col lavoro e ho avuto delle difficoltà a sviluppare diversi miei progetti aperti da sempre. Questa è una situazione destinata a protrarsi ulteriormente, almeno per qualche mese. Quindi potrebbe capitare (leggete: capiterà) che passino lunghi periodi vuoti e privi di sviluppi. Ma presumo che anche voi siate impegnati, quindi non verrete sulla mia home page esigendo tutti i giorni dei progressi, giusto? ;-)
  • Lavoro a più mani. Queste righe le butto giù anche per attirare l'attenzione di tutti quelli a cui piacerebbe dare un contributo a questo progetto. Non sono un progettista di oscilloscopi digitali, posso soltanto fare delle ipotesi sul loro funzionamento in base a qualche documento tecnico e a ciò che vedo (in particolare mi baserò molto, specialmente per quanto riguarda l'interfaccia utente, su uno degli oscilloscopi che utilizzo quotidianamente). Qualsiasi suggerimento o critica sono bene accetti; anzi, sono richiesti!
  • Hobbisti. Questo progetto è interamente pensato da hobbista e per gli hobbisti; ciò impone necessariamente delle restrizioni di carattere tecnico, logistico ed economico. Le restrizioni economiche e logistiche sono ovvie: gli hobbisti hanno pochi soldi e scarse possibilità di accesso ai canali di approvvigionamento dei dispositivi elettronici. Per me sarebbe un po' oneroso (sia in termini di costi che di tempo perso a gestire il tutto) sfruttare i canali ai quali posso attingere come professionista per passarvi ciò che non si trova comunemente in giro; cercherò quindi di avvalermi sempre di distributori che vendono anche ai privati, come RS, Distrelec o Farnell. Inoltre cercherò di evitare i componenti costosi. Il costo e la reperibilità saranno i fattori limitanti principali del progetto, ma sono convinto che anche con "quel poco" che si trova facilmente si possano fare delle ottime cose.
    Per quanto riguarda invece le restrizioni sul piano tecnico, temo che l'hobbista medio (me compreso) disponga di attrezzature insufficienti per portare avanti col massimo successo un progetto di una certa complessità. Ultimamente l'elettronica professionale si è evoluta in modo così violento da lasciare sul campo parecchie vittime; cercherò di tendere la mano a tutti questi hobbisti riducendo al minimo le operazioni che richiedono attrezzature costose (per testing, assemblaggio ecc...). Vi avverto comunque che imporrò due scelte praticamente irrinunciabili: (1) Userò estensivamente (e preferenzialmente) la tecnologia SMT; (2) Userò circuiti stampati come minimo in doppia faccia, e con via, isolamenti e spessori di pista che saranno molto difficili da ottenere con metodi casalinghi. Quest'ultima è potenzialmente l'unica situazione che potrebbe richiedere un impegno collettivo: potrà essere necessario farci produrre un certo numero di circuiti stampati da un'azienda specializzata. Comunque anche in questo caso non c'è nulla da temere, ormai i prezzi per fare una cosa del genere sono alla portata di tutti.
  • Natura "open" del progetto. Non sono così idealista da pensare che l'intero progetto si potrà definire "Open Source" in ogni sua parte, ma farò ogni sforzo possibile per farlo avvicinare il più possibile a questo status. In alcuni casi l'utilizzo di alcuni strumenti quotidiani del mio lavoro, "closed" e a volte costosi (Orcad, Visual C++, ecc...), sarà quasi irrinunciabile; cercherò in tutti i modi di fornire la possibilità di accedere o utilizzare il materiale con strumenti gratuiti o quasi (conversione di tutti gli schemi in PDF o altri formati da stabilire, strumenti di design gratuiti per le CPLD, compilatori gratuiti per il firmware, utilizzo di librerie open source per un facile porting del software sotto altri ambienti o piattaforme, ecc...).
  • Prestazioni. Questo oscilloscopio non sarà un fulmine di guerra. L'ADC scelto è da otto bit, più che sufficienti per una degna visualizzazione su un monitor o un display ma modesti per effettuare misurazioni molto accurate. Molte delle funzioni degli oscilloscopi digitali (zoom, oversampling, memorizzazione di lunghi intervalli, utilizzo degli ADC dei canali inutilizzati per aumentare la banda dei canali utilizzati, canali matematici, analisi in frequenza, ecc...) saranno implementate quando possibile via software, ma trascurate via hardware: non è che siano complesse da implementare, ma renderebbero necessaria una potenza di calcolo maggiore (leggi CPU più potenti, CPLD più capienti, ecc...) e quindi un aumento esponenziale dei costi.
  • Modularità. Come già specificato, il progetto sarà modularizzato il più possibile; sarà possibile (entro certi limiti, ovviamente) implementare il numero e il tipo di canali necessari e con le prestazioni necessarie. Questo permetterà di soddisfare ogni esigenza e ridurre i costi al minimo.
  • Linux. Anche se la piattaforma di sviluppo principale del progetto sarà Windows, cercherò da subito di utilizzare strumenti che permettano un porting il più semplice possibile verso Linux. Non ci sono veri e propri ostacoli insormontabili che rendano difficile tale porting: i driver per i dispositivi FTDI sono disponibili, ed esistono diverse librerie free per sviluppare interfacce grafiche portabili fra Linux e Windows, come pure diversi compilatori free per i microcontrollori più famosi. L'unica cosa che devo verificare è l'esistenza di strumenti di sviluppo (o almeno compilatori) per le CPLD.

 

Indice

(prossimo) Principio di funzionamento di un oscilloscopio