Pin Types


I Pin del sistema Theremino

Sono chiamati “Pin” i connettori di Input-Output a tre fili: GND / +5V / Signal

-

Il Theremino Master ha 6 Pin di Input-Output universali.

I moduli “Slave” ne hanno 10. I pin da 1 a 8 sono universali, il 9 e 10 sono solo digitali.

ATTENZIONE: anche la linea seriale usa connettori a tre vie simili ai Pin, ma non deve essere confusa con essi. La linea seriale serve solo per collegare i moduli uno con l’altro. Non si devono collegare sensori o attuatori alla linea seriale. 

- – - – - – -

I tre segnali dei Pin

Il filo “GND” porta il riferimento di tensione zero e va collegato con il corrispondente GND del sensore o attuatore.

Il filo “+5V” porta la tensione di alimentazione da cui è possibile prelevare fino a qualche centinaio di milliampere.

Il filo “Signal” porta un segnale analogico da 0 a 3.3 volt, in arrivo dai sensori o in uscita verso gli attuatori.

Correnti e tensioni massime sui fili SIGNAL dei Pin

Per i pin configurati come OUTPUT ( DigOut, Pwm8, Pwm16, Servo8 e Servo16 ) la corrente massima è +/-15mA (sia verso massa che verso il positivo)

Per i pin configurati come INPUT ( DigIn, DigInPu, Adc, Cap, Res, Counter, FastCounter ) valgono le seguenti considerazioni:

  • La tensione applicabile a qualsiasi pin di ingresso deve essere limitata nel range da VSS-0.3 a VDD+0.3
  • Non è possibile limitare la tensione con diodi P-N. Si dovrebbero usare diodi Schottky. che però hanno una capacità parassita troppo alta. Quindi la limitazione deve essere affidata ai soli diodi interni.
  • La corrente massima applicabile a diodi di protezione interni è di +/-100uA (*)
(*) Questa è la corrente massima per evitare errori di funzionamento. Durante gli eventi ESD la massima corrente può essere molto maggiore, senza alcun rischio.

I connettori dei sensori presenti sugli slave speciali, come ad esempio il CapSensor, non sono dei veri “Pin” e non vi si possono collegare i sensori e gli attuatori standard.

Errori temporanei causati da sovratensioni sui PIN di Input

A volte, toccando i PIN con le dita, il programma HAL smette di comunicare con l’hardware, scrive una riga rossa con il messaggio “disconnesso” e si deve premere “Riconosci”.

Questo si verifica se il corpo è carico di elettricità statica e emette una piccola scarica elettrica. I componenti del sistema Theremino non si rompono mai, ma anche se non si vede la scintilla, si tratta sempre di tensioni di molte migliaia di Volt. Queste scariche possono mandare in tilt sia la comunicazione seriale che la comunicazione USB.

Durante le prove si faccia attenzione a maneggiare i moduli solo da spenti oppure a toccare prima la massa (ad esempio il connettore USB) Il progetto finale dovrebbe sempre prevedere un contenitore isolante che impedisca agli utenti di toccare parti metalliche sotto tensione.

Protezione contro gli errori di connessione e le sovratensioni

I Pin sono protetti contro gli errori di connessione, è possibile collegare ad esempio un cavo della linea seriale ad un Pin di qualunque tipo oppure un Pin ad un altro, e magari invertire i collegamenti in modo che il segnale finisca a massa o viceversa e l’unico risultato che si ottiene è un non funzionamento temporaneo.

ATTENZIONE: Theremino System -I Pin sono protetti contro le sovratensioni ed è possibile toccarli con le mani senza particolari precauzioni ma non è garantito che possano resistere a tutto. Se si connette il 220 volt ad un qualunque Pin di In-Out, oppure alla linea di trasmissione seriale si ottiene un sicuro disastro e probabilmente si distrugge anche mezzo PC

E’ bene fare attenzione nei collegamenti perché alcune particolari inversioni possono portare a mettere in corto il 5 volt della linea USB e quindi fare intervenire la protezione dentro al PC. In altri casi è possibile connettere il 5 volt a sensori che non lo sopportano. Anche in questo caso non si rompe nulla ma è meglio evitarlo.

Sui moduli del sistema Theremino non sono presenti fusibili o componenti per la protezione che avrebbero degradato le prestazioni. Il principio che si è seguito è stato invece di usare i componenti stessi come fusibili e di fare in modo che costino poco e siano facilmente sostituibili.


I valori numerici dei Pin

I sensori e gli attuatori producono e usano valori numerici “grezzi” molto differenti tra loro. In alcuni casi si tratta di valori da 0 a 255 (8 bit), in altri da 0 a 65535 (16 bit) oppure molto piccoli (da 0 a 1), nel caso degli ingressi digitali, o molto grandi (da 0 a 16777215), per i “CapSensorHQ”. e fino a oltre 4 miliardi in alcuni casi come il “Period”.

Per facilitare le connessioni e la modularità il sistema Theremino trasforma tutti i valori grezzi, in un “range” standard da 0 a 1000

Usare valori da 0 a 1000 non limita la risoluzione a soli 1000 valori, perché si tratta di numeri di tipo “Float” (con la virgola), che hanno una risoluzione molto maggiore, di quella dei migliori sensori esistenti.

- – - – - – -

Come vengono trattati i valori numerici di Output

DigOut
Il valore letto dallo slot viene rapportato secondo “Min value” e “Max Value” e trasformato in un valore tra zero e uno. Questo valore viene filtrato con un filtro IIR (lineare o esponenziale), regolabile con “Response Speed”. Il valore di uscita del filtro viene chiamato “Normalizzato” (valore tra zero e uno e filtrato).

Se il valore normalizzato supera 0.5, viene inviato un uno al PIN hardware, che vuol dire ACCESO (3.3 Volt).

Se il valore normalizzato è inferiore a 0.5, viene inviato uno zero al PIN hardware, che vuol dire SPENTO (zero Volt).

Pwm_8 e Pwm_16, Servo_8 e Servo_16
Il valore letto dallo slot viene rapportato secondo “Min value” e “Max Value” e trasformato in un valore tra zero e uno. Questo valore viene filtrato con un filtro IIR (lineare o esponenziale) regolabile con “Response Speed”. Il valore di uscita del filtro viene chiamato “Normalizzato” (valore tra zero e uno e filtrato).

Il valore normalizzato viene poi rapportato secondo “Min time (uS)” e “Max time (uS)” e trasformato in un numero tra “0″ e “64000″. L’hardware considera questo numero come sedicesimi di microsecondo, quindi 64000 vuol dire 4 milli secondi.

I PIN di tipo “Pwm” emettono impulsi con tempo variabile tra 0 mS e 4 mS e con tempo di ripetizione fisso di 4 mS.

I PIN di tipo “Servo” emettono impulsi con tempo variabile tra 0.5 mS e 2.5 mS (se non regolati diversamente) e con tempo di ripetizione fisso di 16 mS.

Stepper
Il valore letto dallo slot, viene rapportato (con “1000 means mm” e “0  means  mm”) e trasformato in un valore tra zero e uno. Se si impostano ”1000 means mm” = 1000 e “0  means  mm” = 0, allora non viene fatta nessuna conversione di scala e il valore proveniente dallo slot viene considerato “millimetri”.

Da qui in poi il valore è sempre in millimetri. Zero indica zero millimetri e uno indica 1000 millimetri. Questo valore non è limitato tra zero e uno, ma tra due miliardi di step positivi, e due miliardi di step negativi. Se si usa “Steps per mm = 200″ i limiti sono: +10 Km e -10 Km.

Il valore viene quindi filtrato con un filtro IIR (lineare o esponenziale), regolabile con “Response Speed”. Il valore di uscita del filtro viene chiamato “Filtrato”

Il valore finale che viene inviato all’hardware è un numero di STEP (pre-moltiplicato per il valore “Steps per mm”) e rappresenta la “destinazione”.

- – - – - – -

Come vengono trattati i valori numerici di Input

Digital_ln, Digital_In_Pu
Gli ingressi digitali sono di tipo Schmitt Trigger, per cui la tensione deve superare i 2 Volt, per scattare su “ON” e deve scendere sotto a 1 Volt, per scattare su “OFF”. Il valore ON viene trasmesso come “1″ e il valore “OFF” come “0″. Questi due valori vengono filtrati con un filtro FIR (lineare o esponenziale) regolabile con “Response Speed”. Il filtro può essere usato per fare la media di molti impulsi o come antirimbalzo per i contatti meccanici. Infine viene fatto un confronto. Se il valore filtrato supera 0.5 allora viene inviato allo slot il valore “Max Value”, altrimenti viene inviato il valore ”Min value”.

Adc_8, Adc_16, Cap_8, Cap_16, Res_8, Res_16
Questi ingressi misurano grandezze diverse (tensione, capacità e resistenza) e le trasformano in un numero tra 0 e 65535 (16 bit di dinamica). Questi valori vengono standardizzati tra zero e uno e filtrati con un filtro FIR (lineare o esponenziale), regolabile con “Response Speed”. Il filtro può essere usato per fare la media temporale e migliorare la stabilità delle misure. Infine il valore normalizzato viene espanso tra “Min value” e ”Max Value” e inviato allo Slot.

CapSensor
I CapSensor misurano capacità piccolissime e le trasformano in un numero a 32 bit, che rappresenta un tempo di oscillazione, in sedicesimi di microsecondo. La applicazione HAL calcola la frequenza di oscillazione, e da questa risale alle capacità fisse e variabili, e infine con una certa approssimazione, alla distanza in millimetri. Questa distanza viene normalizzata tra zero e uno, usando i parametri DistMin e DistMax e filtrata con un filtro FIR (lineare o esponenziale), regolabile con “Response Speed”. Il filtro può essere usato per fare la media temporale e migliorare la stabilità. Infine il valore normalizzato viene espanso tra “Min value” e ”Max Value” e inviato allo Slot.

Counter, Counter_Pu, FastCounter, FastCounter_Pu
Tutti i contatori generano un conteggio che va da 0 a 65535 (16 bit). Quando il conteggio supera 65535 il numero riparte da zero. Il numero del conteggio viene direttamente scritto nello Slot. Questo sistema permette a molta applicazioni di leggere il numero progressivo senza pericolo di perdere conteggi.

Period, Period_Pu
Questo ingresso legge il tempo di un ingresso digitale tra due successivi fronti di salita. Il tempo viene misurato in sedicesimi di microsecondo. Il funzionamento di questi Pin non è stato controllato e potrebbe contenere errori.

Usound_Sensor
Questo ingresso è specializzato per leggere i sensori a ultrasuoni. Il trattamento dei valori è simile a quello proveniente dagli ADC.

I pin di tipo Counter, FastCounter e Period dispongono anche di una convertiore che calcola la frequenza. Il funzionamento di questo convertitore non è stato controllato e potrebbe contenere errori.


Tipi di pin in uscita

DigOut
Uscita digitale che può essere usata direttamente per accendere un led o con adattatori più o meno complessi anche per carichi di grande potenza, eventualmente opto-isolati.

Attualmente ogni Pin di tipo “DigOut” usa 8 bit per la trasmissione dei dati, ma nelle versioni future è previsto di impaccare fino a otto pin DigOut in un Byte

Pwm8 e Pwm16
Uscita di segnale PWM (Pulse Width Modulation) è un tipo di modulazione digitale, che permette di ottenere una tensione media variabile, dipendente dal rapporto tra la durata dell’ impulso positivo e di quello negativo. Con l’aggiunta di un resistore e di un condensatore, si può ottenere una tensione continua regolabile tra 0 e 3.3 volt. Un led può essere collegato direttamente e la sua luce potrà essere regolata da zero al massimo. I moduli del sistema Theremino generano segnali Pwm da 0 a 4 mS. Il tempo di ripetizione è 4 mS.

Molti dispositivi collegabili alle uscite PWM, come i led e le lampade a incandescenza sono usati per essere visti dagli esseri viventi. Dato che gli occhi hanno una risposta agli stimoli di tipo logaritmico, la metà superiore del campo di regolazione apparirà compressa. Per correggere questo difetto i Pin di tipo PWM hanno l’opzione “Responso logaritmico”

Il Pwm8 ha una risoluzione minore (solo 256 livelli differenti), se la gradualità è sufficiente, è bene usare questo tipo di Pin al posto del Pwm16 per occupare solo otto bit (un byte) durante la comunicazione.

Servo8 e Servo16
Uscita di segnale specifico per i servo comandi. I servo comandi hanno solitamente una escursione di circa 180 gradi, praticamente tutti sono oltre i 150 gradi e qualcuno arriva fino a 210 gradi.

I Servocomandi normali producono la massima escursione con tempi da 0.5 mS a 2.5 mS (da 500 uS a 2500 uS). Quindi i moduli del sistema Theremino generano segnali “Servo” da 0.5 a 2.5 mS. Il tempo di ripetizione è fisso a 16 mS.

La possibilità di regolare il tempo minimo e massimo, anche al di fuori del normale range dei Servomotori (fino a 0 mS e fino a 4 mS) permette di usare Servo di ogni tipo, analogici e digitali, e di ogni costruttore. Anche se diversi dai normali standard dei radiocomandi.

Se si collegano servocomandi che hanno una forte corrente di spunto, particolarmente quelli grandi e quelli digitali, allora è bene interrompere la linea di comunicazione con un adattatore per la alimentazione esterna e un alimentatore da 5 volt da 1A a 5A a seconda di quanti e quali servo si collegano.

Il Servo8 ha una risoluzione minore (solo 256 livelli differenti), se la gradualità è sufficiente, è bene usare questo tipo di Pin al posto del Servo16 per occupare solo 8 bit (un byte) durante la comunicazione.

Caratteristiche per tutti i tipi di pin in uscita

Tensione bassa: 0 Volt
Tensione alta: 3.3 Volt
Corrente massima sink: 18 mA
Corrente massima source: 18 mA


Tipi di pin in ingresso

DigIn e DigInPu
Ingresso digitale con o senza PullUp.

Attualmente ogni Pin di tipo “DigIn” o “DigInPu” usa 8 bit per la trasmissione dei dati ma nelle versioni future dei dispositivi del sistema Theremino è previsto di impaccare fino a otto pin DigIn in un Byte

Adc8 e Adc16
Si usa questo tipo di pin per trasformare una tensione analogica in ingresso da 0V a 3.3V in un valore numerico da 0 a 65535.

Il tipo Adc8 ha una risoluzione minore (solo 256 livelli differenti) se la gradualità è sufficiente è bene usare questo tipo di Pin al posto dell’Adc16 per occupare solo otto bit (un byte) durante la comunicazione.

Il tipo Adc16 ha una risoluzione effettiva di circa 12..14 bit (vedi note alla fine di questo documento)

Cap8 e Cap16
Si usa questo tipo di pin per misurare piccole capacita, nell’ordine dei PicoFarad. L’uso principale è di leggere tastiere capacitive e controlli capacitivi di tipo “slider” ma è anche possibile creare semplici sensori di prossimità senza dover usare i costosi sensori di prossimità commerciali.

Per i sensori di prossimità e per le tastiere più “difficili” (con controlli “slider” o con isolante molto spesso) è bene usare i pin con bassa capacità parassita (vedere le note alla fine di questo documento)

Il Cap8 ha una risoluzione minore (solo 256 livelli differenti) se la gradualità è sufficiente è bene usare questo tipo di Pin al posto del Cap16 per occupare solo otto bit (un byte) durante la comunicazione.

Il tipo Cap16 ha una risoluzione effettiva di circa 12..14 bit ( vedi note alla fine di questo documento )

Res8 e Res16
Si usa questo tipo di pin per misurare il valore di resistenza di un sensore. L’uso principale è di leggere la posizione di resistori variabili e slider.

Si ottiene lo stesso risultato di un potenziometro collegato ad un pin ADC ma bastano due fili e non è necessario disporre di una tensione stabilizzata da 3.3 volt per il terzo filo del potenziometro.

Il campo di resistenza misurabile va da 0 a 50 Kohm. La misura viene effettuata con una corrente da 66 uA (+/- 20 %) che moltiplicata per 50 Kohm genera la tensione di fondo scala di 3.3 volt.

Res8 ha una risoluzione minore (solo 256 livelli differenti) se la gradualità è sufficiente è bene usare questo tipo di Pin al posto del Res16 per occupare solo otto bit (un byte) durante la comunicazione.

Il tipo Res16 ha una risoluzione effettiva di circa 12..14 bit (vedi note alla fine di questo documento)

Counter e CounterPu
Ogni Pin di tipo “Counter” o “Counter_Pu” usa 16 bit per la trasmissione dei dati.

Tutti i pin possono essere programmati come Counter o CounterPu. ma la velocità di conteggio massima è abbastanza limitata, intorno a qualche KHz, dipendente dal carico sul microcontrollore e dal duty-cycle del segnale. Se si necessita di una velocità superiore si deve usare il FastCounter.

FastCounter e FastCounterPu
Ogni Pin di tipo “FastCounter” o “FastCounter_Pu” usa 16 bit per la trasmissione dei dati.

Il conteggio veloce (FastCounter) permette di contare frequenze molto alte (fino a 50MHz) ma può essere abilitato solo sul pin 8.

Per ottenere la massima frequenza di conteggio è necessario che il duty-cycle sia del 50% con un minimo di 10nS con tensione bassa e 10nS con tensione alta.

Period e PeriodPu
Ogni Pin di tipo “Period” usa 32 bit (4 byte) per la trasmissione dei dati.

Questo tipo di Pin misura il periodo di una forma d’onda ripetitiva, da salita a salita, fino ad un periodo massimo di circa 260 secondi.

La risoluzione è di mezzo microsecondo e la precisione è del +/- 1% in un range di temperatura ambiente da 0C a 50C

Il tempo di ciclo può essere poi convertito dal programma “HAL” in una frequenza. Questa tecnica permette di misurare frequenze molto basse (fino a circa un decimo di Hertz) con altissima risoluzione.

Usound_sensor
Ogni Pin di tipo “Usound_sensor” usa 16 bit ( 2 byte ) per la trasmissione dei dati.

Molti sensori di distanza ad ultrasuoni ad esempio il modello SRF05, possono essere letti con questo tipo di Pin.

Questo tipo di pin genera un impulso di “Start” positivo ogni 33 mS ( circa ) e misura il tempo dell’impulso di ritorno da 0 a 32000 microsecondi.

Il tempo viene poi convertito dal programma “HAL” in una distanza tenendo conto della velocità del suono nell’aria.

Caratteristiche per tutti i tipi di pin in ingresso

Tensione bassa: da 0 a 1 Volt
Tensione alta: da 2.3 a 3.3 Volt
Tensione bassa minima: -0.2 Volt con 100uA massimi (Nota 1)
Tensione alta massima: +3.6 Volt con 100uA massimi (Nota 1)
Corrente di pull-up: da 100 a 400 uA
(Nota 1) Se il segnale scende sotto a -0.3 Volt o sopra 3.6 Volt si deve limitare la corrente a +/-100uA. Solitamente si limita la corrente con un resistore da 100k, in serie al filo del segnale. Il resistore deve essere posizionato vicino al pin di ingresso per minimizzare i disturbi raccolti dal filo di segnale. Il valore del resistore dipende dalla prevista extra-tensione del segnale. Come regola generale si calcolano 10 kohm per ogni volt di extra-tensione.

- – - – - – -

CapSensor
Questo tipo di pin è speciale, quindi le caratteristiche di tensione indicate in precedenza non sono valide.

Ogni Pin di tipo “CapSensor” usa 24 bit (3 byte) per la trasmissione dei dati.


Note per tutti i pin di ingresso digitale

DigIn, DigInPu, Counter, CounterPu, FastCounter, FastCounterPu, Period, PeriodPu e UsoundSensor

Gli input digitali sono di tipo SchmittTrigger con:
- Tensione di scatto bassa = 1 volt
- Tensione di scatto alta = 2 volt.


Note per la risoluzione di Adc16, Cap16 e Res16

La risoluzione di 16 bit non è raggiungibile con gli ADC dei microcontrollori ma con tecniche di sovracampionamento scritte nel firmware si arriva intorno ai 14 bit. Il sistema Theremino implementa anche la correzione degli errori e il filtraggio digitale per la riduzione del rumore. Queste tecniche combinate permettono di raggiungere una risoluzione effettiva di 16 bit con una accettabile riduzione della velocità di risposta.

Per ottenere la massima risoluzione si deve anche minimizzare il rumore curando la disposizione dei collegamenti di massa, non usando sensori con impedenza troppo alta (max 10..50 Kohm), facendo collegamenti non troppo lunghi ed evitando gli accoppiamenti capacitivi con segnali adiacenti.


Note per tutti i contatori

Per permettere a più programmi di usare contemporaneamente gli stessi dati i contatori non vengono azzerati a ogni lettura, ma continuano a crescere fino a 65535 e poi ricominciano da zero.

I programmi che li usano ottengono il nuovo conteggio facendo la differenza tra il nuovo valore e il precedente. E’ anche necessario controllare che il nuovo valore letto sia uguale o superiore al precedente e, in caso contrario, occorre correggere sommando 65536.

Tra una lettura e la seguente i programmi non devono far trascorrere troppo tempo, in modo da leggere il contatore in tempo prima che si azzeri per due volte.

Il tempo approssimativo di ripetizione, a seconda della frequenza del segnale contato, è indicato nella seguente tabella seguente.

Segnale        Tempo max di ripetizione
----------------------------------------
 50 MHz          1 mS
  5 MHz         10 mS
500 KHz        100 mS
 50 KHz          1 Sec
  5 KHz         10 Sec


Note per i PullUp

Nei tipi di pin con PullUp viene aggiunta una debole corrente positiva utile per collegare pulsanti o dispositivi open-collector senza necessità di aggiungere un resistore tra il pulsante e la tensione positiva.

La corrente di Pull-up tipica è 250 uA  (minima 50 uA, massima 500 uA).


Note per gli ADC, i Cap e Res

Gli ingressi ADC non sono disponibili su tutti i pin, vedere la tabella seguente.

Modulo

Pins validi

Pins non validi

Generic

1, 2, 3, 4, 5, 6, 9, 10

7, 8, 11, 12

Servo

1, 2, 3, 4, 5, 6, 7, 8

9, 10


Correnti di perdita e capacità dei pin

Per i sensori che forniscono una corrente molto bassa (i sensori di luce ad esempio) e per i tasti capacitivi è meglio usare i pin con minore corrente di perdita e minore capacità.

Modulo    Pins         Corrente di perdita   Capacità parassita
                       (max)                 (approssimativa)
-----------------------------------------------------------------
Master    1, 2         +/- 500 nA            30 pF
Servo     1, 2         +/- 500 nA            30 pF
Generic   1, 2         +/- 500 nA            30 pF

Servo     7, 8         +/- 200 nA            20 pF

Master    3,4,5,6      +/- 100 nA            10 pF
Servo     3,4,5,6      +/- 100 nA            10 pF
Generic   3,4,5,9,10   +/- 100 nA            10 pF


Precisione dei segnali “Servo” e “PWM”

Pin di tipo Servo

Risoluzione effettiva

Precisione

Numero passi in 1 mS

Tempo di ripetizione

Freq. di ripetizione

Servo 8 bit

8 bit

3.90 uS

256

16 mS

60 Hz

Servo 12 bit

12 bit

0.24 uS

4096

16 mS

60 Hz

Servo 16 bit

14 bit

0.06 uS

16384

16 mS

60 Hz

I segnali dei servo variano da circa 0.5 mS (minimo) a circa 2.5 mS (massimo) e il tempo di ripetizione è circa 16 mS. La precisione dei segnali dei servo è costante con qualunque numero di pin configurati come “Servo” ma decresce se nello stesso modulo si usano anche pin di tipo “Pwm”.

Tempo di ripetizione
Il tempo di ripetizione aumentava fino a 24 mS nei vecchi radiocomandi analogici prodotti da Futaba, perché il segnale completo era un treno di impulsi contenente i segnali di tutti i servo, uno dopo l’altro. Quindi con 12 servo si allungava a 24 mS  “mediamente” 24 mS = 10 mS di base + 1 mS * 12 Servo.  Per questi motivi tutti i servo accettano una ripetizione che può andare da 5…8 mS fino a 25…30 mS. Abbiamo quindi scelto 16 mS di ripetizione.
Tempi Minimo Massimo
Il segnale venne originalmente stabilito da 1 mS a 2 mS (anni 80 del 1900) ma con il passare degli anni si è ampliato di 0.5 mS per parte. I servo attuali per fare tutta la corsa (che normalmente è 180 gradi circa) hanno bisogno di un segnale da circa 0.5 mS a circa 2.5 mS. E anche i servo multigiri ne hanno bisogno per dare tutta la coppia. Abbiamo quindi reso regolabili i tempi minimo e massimo da 0 a 4 mS, per adattarci a qualunque servo.

Pin di tipo PWM

Risoluzione effettiva

Precisione

Num. passi in 4mS

Tempo di ripetizione

Freq. di ripetizione

Pwm
8 bit

8 bit

16 uS

256

4 mS

250 Hz

Pwm 12 bit

12 bit

1 uS

4096

4 mS

250 Hz

Pwm_ 16 bit

16 bit

0.06 uS

65536

4 mS

250 Hz

Quale che sia il numero dei pin usati come “Pwm”, il tempo di ripetizione è sempre 250 Hz. La precisione massima di 16 bit si ottiene configurando un solo pin “PWM” e nessun “Servo”. Aumentando il numero di segnali PWM e servo nello stesso modulo, la precisione massima dei segnali “PWM” scende gradualmente fino a 8 bit.


I2C_SDA e I2C_SCL

Il ThereminoMaster potrebbe comunicare in I2C (attraverso la porta AUX), ma non contiene il firmware necessario. Chi volesse usare l’I2C dovrebbe scrivere lui stesso il firmware e anche modificare la applicazione HAL, per ricevere questi dati via USB. Si consiglia quindi di non usare dispositivi che comunicano con questo protocollo. 

Tutti i sensori I2C hanno un corrispondente analogico che, collegato ai nostri ADC, fornisce migliori caratteristiche. I sensori analogici sono anche più economici e possono essere collegati con cavi schermati lunghissimi (centinaia di metri), senza perdere precisione.

Inizialmente pensavamo di implementare questo protocollo, ma in seguito abbiamo scoperto che i dispositivi I2C non seguono uno standard comune. Per cui gli utenti dovrebbero programmare un firmware diverso per ogni sensore. Inoltre la comunicazione I2C è lenta e gli ADC integrati nei sensori sono di basse caratteristiche, spesso solo a 8 bit e senza possibilità di oversampling. E infine i sensori I2C non si possono collegare a grande distanza, perché la capacità del cavo degrada i fronti digitali e produce errori di trasmissione.

I2C è un sistema di comunicazione seriale bifilare progettato per la comunicazione tra circuiti integrati, a breve distanza, generalmente sulla stessa piastra o nello stesso apparecchio elettronico (comunicazioni lente nei Televisori). I2C può comunicare con una catena di dispositivi (fino a 128). Il numero di fili effettivamente necessari per il collegamento è quattro perché è necessario portare anche la massa e la alimentazione. La velocità di comunicazione è modesta e scende notevolmente aumentando il numero di dispositivi collegati.


Mca_8, Mca_16 e Mca_32

La documentazione su questi tipi di pin è superata – rimane come riferimento e per eventuali sviluppi futuri.

Inizialmente pensavamo di implementare la Spettrometria con i velocissimi ADC dei PIC. Ma ulteriori ricerche hanno dimostrato che più della velocità dell’ADC è importante il rapporto segnale rumore e in questo le schede audio sono imbattibili. Per cui probabilmente questi tipo di Pin non verranno mai usati.

Per maggiori informazioni sulla spettrometria leggere qui:
- Schemi elettrici e piani di montaggio: www.theremino.com/technical/schematics
- Software: www.theremino.com/technical/schematics
- Spettrometria Gamma: www.theremino.com/blog/geigers-and-ionchambers
- Hardware, autocostruzione e kits: www.theremino.com/contacts/producers
- Immagini e Video: www.theremino.com/video-and-images

—————–

Questi tipi di pin implementano le funzioni hardware di un Multichannel Analyzer con cui è possibile costruire un apparecchiatura per la Spettrometria Gamma delle radiazioni nucleari.

La spettrometria permette di distinguere tra le varie sostanze che emettono radiazioni, tra cui le più comuni sono Uranio, Torio, Potassio, Americio, Radio, Cesio e Cobalto.

Il suffisso 8, 16 e 32 di questi tipi non indica i Bit ma i Byte per cui i tipi Mca usano molta banda nella linea seriale.

Il tipo Mca_32 usa ben trentadue byte ad ogni rinfresco, come 32 pin di tipo Adc_8, e dimezza il numero di dispositivi di altro tipo sulla stessa linea (ADC, DigIn, DigOut, Pwm etc…)

Il tipo Mca_32 permette il più veloce aggiornamento del display MCA, cioè 1024 canali fino a 15 volte al secondo.


Ottenere i moduli del sistema

Il team del sistema Theremino si occupa solo di ricerca e non vende hardware. Il sistema è completamente “Freeware”, “Open Source”, “No Profit” e “DIY”, ma esistono produttori che possono fornire i moduli assemblati e collaudati a un ottimo prezzo. Difficilmente si potrebbe auto-costruirli spendendo meno. Un elenco dei produttori in questa pagina: www.theremino.com/contacts/producers


Donazioni
 

Il codice sorgente dei nostri programmi non contiene note sul copyright, nomi degli autori e link al nostro sito, per cui potete farne ogni uso, senza limitazioni di alcun genere. Non chiediamo di specificare la fonte originale o il nostro sito ma se sarete contenti del nostro software ricordatevi di noi e fate conoscere questo sito ai vostri amici. Eventuali donazioni, anche piccole, sono molto gradite e possono aiutarci a mantenere il software “free” ed a produrne sempre di nuovo.

Comments are closed.