Fe244 102005 PDF
Fe244 102005 PDF
Fe244 102005 PDF
n° 244 • Anno 21
LINUX
NEI SISTEMI
EMBEDDED
E REAL-TIME
Poste Italiane Spa - Spedizione in abbonamento Postale - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma1, DCB Milano. In caso di mancato recapito, restituire all'editore che si impegna a pagare la relativa tassa presso il CPM di Roserio - Milano
MIKROBASIC
Generazione
di melodie, note,
effetti sonori
e musica con il PIC
LA TECNICA DDS
Generatore
di toni DTMF
ALIMENTATORI
SWITCHING
Switching flyback
multi-uscita
VITAMINA C EDIZIONI
Tecniche di debug
Usare gli amplificatori
operazionali € 5,50
Note dalla redazione
Conoscere
ed usare...
Quanti gesti facciamo quotidianamente senza renderci conto che fanno parte del nostro
bagaglio di conoscenze. Pensate ad esempio alla scrittura, un gesto apparentemente spontaneo,
ma che è in realtà il risultato di un percorso iniziato anni prima, dall’apprendimento dell’alfabeto
al formulare pensieri coerenti per poi unirli per formare un discorso compiuto. Per tutti, nei
primi anni delle scuole elementari, la sfida era semplicemente riuscire a scrivere nello stesso rigo…
Il fatto che oggi siamo qui a leggere una rivista di “cultura elettronica applicata” la dice lunga sul
percorso fatto da quei quaderni a righe. Leggiamo di microprocessori, di algoritmi, formule e
tutto quello che l’elettronica chiede di conoscere per essere plasmata alle proprie necessità. Il
fatto che Fare Elettronica si fregi di essere una rivista di cultura elettronica applicata non
deriva semplicemente da una decisione presa alla leggera, ma da un percorso durato 20 anni.
Un percorso che ci ha portato oggi a proporvi la rivista che tanto apprezzate.
Conoscere ed usare: è questo il trucco. Conoscere a fondo gli strumenti che si hanno a dispo-
sizione è l’unica strada per poter raggiungere un risultato certo. L’alternativa è procedere per
tentativi… ma quanto costa in termini di tempo e di denaro? E alla fine, a risultato raggiunto,
abbiamo imparato qualcosa?
Molti di noi hanno iniziato a fare elettronica semplicemente con un saldatore, lo stagno e un
“cercafase”, ma quante ore abbiamo speso per capire che il transistor non sarebbe mai andato
in conduzione con quella resistenza così alta! L’elettronica è una materia quanto mai vasta,
abbraccia tanti campi ed una conoscenza di base è necessaria al fine di raggiungere anche il
più piccolo risultato in breve tempo. Ricevo molte lettere di lettori che si congratulano con noi
per il fatto di dare tanto spazio alla formazione e che grazie a questo sono riusciti a capire
come funziona il circuito che hanno realizzato e sono in grado di modificarlo per adattarlo alle
proprie esigenze. Il fatto che abbiamo scelto “Rivista di cultura elettronica applicata” come
linea guida di Fare Elettronica e “Conoscere ed usare” come titolo della nostra collana di libri,
non è casuale: il nostro scopo è darvi gli strumenti necessari affinché arriviate al risultato
con cognizione di causa, non a tentativi.
Ed è proprio per continuare sulla strada che ci contraddistingue, vi proponiamo un nuovo
corso: CPLD By Example. Le CPLD, ormai largamente utilizzate, rimangono un oggetto
pressoché sconosciuto, alla fine di questo corso anche voi potrete utilizzarle con successo
nelle vostre applicazioni.
Un numero questo che ha davvero dell’incredibile, ben 16 pagine di contenuti in più rispetto
al nostro formato convenzionale ed un bellissimo CD in omaggio.
Infatti, solo Fare Elettronica vi offre in esclusiva la versione italiana di Proteus, il famoso
CAE/CAD professionale. Nel CD trovate due versioni: LITE (perfetta per uso hobbistico) e
DEMO. In questo numero, inoltre, troverete la prima puntata del corso che vi guiderà passo
passo all’utilizzo di questo fantastico programma.
Voglio anche segnalarvi la presenza in edicola, a partire dal 15 Novembre, di un bellissimo
numero speciale di Fare Elettronica: 100 idee di progetto per 1000 applicazioni. Questo
speciale, in omaggio per gli abbonati, è una raccolta di soluzioni circuitali che non può
mancare nel vostro laboratorio, prenotate la vostra copia per non rischiare di perderla!
Non mi resta molto spazio per descrivere i restanti articoli che comunque rispecchiano gli alti
standard a cui siete ormai abituati, vi auguro quindi una piacevole lettura e vi rinnovo
l’appuntamento in edicola a Novembre.
Tiziano Galizia
[email protected]
ELENCO INSERZIONISTI
Alterlogix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 25
Via Giotto, 19 - 64026 Roseto degli Abruzzi (TE)
w w w. f a r e l e t t r o n i c a . c o m Tel 0858933615 - www.alterlogix.com
Artek Electronics Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 13
DIRETTORE RESPONSABILE
Piazza Pirazzoli, 2 - 40020 Sasso Morelli (BO)
Antonio Cirella
Tel 0542.643192 - www.artek.it
DIRETTORE DI REDAZIONE
A.R.I. Sezione di Pescara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 31
Tiziano Galizia
Via Delle Fornaci, 2 - 65125 Pescara
DIRETTORE TECNICO Tel 085.4714835 - www.aripescara.org
Maurizio Del Corso
Blu Nautilus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 19
HANNO COLLABORATO IN QUESTO NUMERO Piazza Tre Martiri, 24 - 47900 Rimini
Giovanni Di Maria, Riccardo Nicoletti, Salvatore Torrisi, Tel 0541.53294 - www.blunautilus.it
Enrico Raffone, Antonio Di Stefano, Romano Bernarducci,
Compendio Fiere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 15-57
Nico Grilloni, Agostino Rolando, Massimo Divito.
Via Sereni, 12 - 51018 Pieve a Nievole (PT)
DIREZIONE • REDAZIONE • PUBBLICITÁ Tel 02.7562711 - www.compendiofiere.it
INWARE srl - Via Cadorna, 27/31 - 20032 Cormano (MI)
Comprel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 111
Tel. 02.66504794 - 02.66504755 - Fax 02.66508225
[email protected] - www.inwaredizioni.it Via Saragat, 4 - 20054 Nova Milanese (MI)
Redazione: [email protected] Tel 0572521000 - www.comprel.it
Comune di Scandiano (ufficio fiera) . . . . . . . . . . . . . . . . . . . . . pag. 43
PROGETTO GRAFICO E IMPAGINAZIONE
Graficonsult - Milano Piazza Prampolini, 1 - 42019 Scandiano (RE)
Tel 0522.764290 - www.fierascandiano.it
STAMPA
ROTO 2000 - Via L. da Vinci, 18/20 - 20080, Casarile (MI) E V R Electronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 17
Via Saronno, 15 - 21053 Castellanza (VA)
DISTRIBUZIONE
Tel 0331.502978 - www.c-project.com
Parrini & C. S.p.a. - Viale Forlanini, 23 - 20134, Milano
Elettrimpex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 105
UFFICIO ABBONAMENTI
Via Console Flaminio,19 - 20134 Milano
PARRINI & C. S.p.a. - Servizio abbonamenti
Tel 02.210111230 - www.elettrimpex.it
Viale Forlanini, 23 - 20134 Milano
Per informazioni, sottoscrizione o rinnovo dell’abbonamento: Elettroshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 27
[email protected] Via Cadorna, 27/31 - 20032 Cormano (MI)
Tel. 02.66504794 - Fax. 02.66508225 Tel 02.66504794 - www.elettroshop.com
L'ufficio abbonamenti è disponibile telefonicamente
E.R.F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 65
dal lunedì al venerdì dalle 14,30 alle 17,30
L.go Fiera della Pesca, 11 - 60125 Ancona
Poste Italiane S.p.a. - Spedizione in abbonamento Postale Tel 071.58971 - www.erf.it
D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma1, DCB Milano.
Farnell Italia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 83
Abbonamento per l’Italia: € 45,00
Corso Europa, 20-22 - 20020 Lainate (MI)
Abbonamento per l’estero: € 115,00
www.farnellinone.com
Gli arretrati potranno essere richiesti, per iscritto, al seguente costo:
Futura Elettronica . . . . . . . . . . . . . . . . . . . . . . . . . . pagg. 11-53-97-119
Numero singolo: € 7,50
Numero doppio: € 9,00 Via Adige, 11 - 21013 Gallarate (VA)
Numero con allegato: € 8,50 Tel 0331.792287 - www.futuranet.it
Grifo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II cop.
Autorizzazione alla pubblicazione del Tribunale di Milano n. 647 del 17/11/2003.
Via dell'Artigiano, 8/6 - 40016 San Giorgio Di Piano (BO)
Iscrizione al R.O.C. n. 11035 19/11/2003
Tel 051.892052 - www.grifo.it
© Copyright - Tutti i diritti di riproduzione o di traduzione degli articoli pubblicati
Idea Elettronica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
sono riservati. Manoscritti, disegni e fotografie sono di proprietà di INWARE srl.
Via S. Vittore 24/A - 21040 Oggiona con S.Stefano (VA)
È vietata la riproduzione anche parziale degli articoli salvo espressa autoriz-
zazione scritta dell’editore. I contenuti pubblicitari sono riportati senza re- Tel 0331.502868 - www.ideaelettronica.it
sponsabilità, a puro titolo informativo. Millennium Dataware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 35
Corso Repubblica 48 - 15057 Tortona (AL)
Privacy - Nel caso la rivista sia pervenuta in abbonamento o in omaggio, si
rende noto che i dati in nostro possesso sono impiegati nel pieno rispetto del Tel 0131.860254 - www.mdsrl.it
D.Lgs. 196/2003. I dati trasmessi a mezzo cartoline o questionari presenti Netwaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 73
nella rivista, potranno venire utilizzati per indagini di mercato, proposte Via Cadorna, 27/31 - 20032 Cormano (MI)
commerciali, o l’inoltro di altri prodotti editoriali a scopo di saggio. L’interessato
Tel 02.66504794 - www.netwaves.it
potrà avvalersi dei diritti previsti dalla succitata legge. In conformità a quanto
disposto dal Codice di deontologia relativo al Trattamento di dati personali Precma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 103-109
art. 2, comma 2, si comunica che presso la nostra sede di Cormano Via Via Fontanino 4 - 23871 Lomagna (LC) - IT
Cadorna 27, esiste una banca dati di uso redazionale. Gli interessati potranno Tel 039.5300590 - www.precma.it
esercitare i diritti previsti dal D.Lgs. 196/2003 contattando il Responsabile del
Scuola Radio Elettra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV cop.
Trattamento Inware Srl ([email protected]).
Via Biturgense, 104 - 00185 Cerbara di Città di Castello (PG)
RICHIESTE DI ASSISTENZA
Tel 075.862911 - www.scuolaradioelettra.it
Per richiedere assistenza o chiarimenti sugli articoli pubblicati, vi preghiamo di
contattare direttamente l’autore. Se questo non fosse possibile, utilizzate il S.V.M. Elettronica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 29
modulo di contatto che trovate sul nostro sito web www.farelettronica.com. Via Sempione, 24 - 21057 Olgiate Olona (VA)
Tel 0331.640569 - www.svmelettronica.com
COLLABORARE CON FARE ELETTRONICA
Le richieste di collaborazione vanno indirizzate all’attenzione di Tiziano Galizia Telecontrolli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pag. 47
([email protected]) e accompagnate, se possibile, da una breve Via Valla, 16 - 20141 Milano
descrizione delle vostre competenze tecniche e/o editoriali, oltre che da un Tel 02.84742360 - www.telecontrolli.com
elenco degli argomenti e/o progetti che desiderate proporre.
Pratica
La tecnica DDS: 32
Generatore di toni DTMF
di Salvatore Torrisi
Mikrobasic per PICmicro (sesta parte): 50
Musika maestro! Generazione di melodie,
note, effetti sonori e musica con il PIC
di Giovanni Di Maria
CPLD by Example (prima parte): 68
Evoluzione dei componenti programmabili pag. 68
di Agostino Rolando
Usare PROTEUS (prima parte): 92
Editor di ISIS - Piazzamento e collegamento
dei componenti
di Maurizio Del Corso
Modulatore TV 114
di Masssimo Divito
Sommario
Teoria
Elettronicando (nona parte): 20
Usare gli amplificatori operazionali
di Riccardo Nicoletti
L’amplificatore operazionale 84
dalla A alla Z (settima parte): pag. 114
L’operazionale in corrente alternata
di Nico Grilloni
Alimentatori switching (decima parte): 100
Switching flyback multi-uscita
di Romano Bernarducci
Vitamina C (ventiduesima parte): 120
Tecniche di debug
di Antonio Di Stefano
Risorse
PROTEUS: Il CD-ROM allegato 6
Mailbox 8
Prima pagina 12 pag. 50
Notepad 16
Gli appuntamenti di Ottobre 2005 48
Riflettori su...
MikroC: un nuovo compilatore C 128
per PICmicro
Speciale 244
Ottobre
2005
PROTEUS
maniera molto semplice grazie alle librerie di programmi all’interno dei micro, ma non è con-
oltre 8000 componenti circuitali comprendenti sentito variare la topologia del circuito.
resistori, condensatori, diodi transistors, circuiti Per consentire ai lettori di Fare Elettronica di
integrati e moltissimi componenti interattivi usare questo strumento per la realizzazione dei
come LED, pulsanti potenziometri e molto altro propri progetti, abbiamo incluso anche la versio-
ancora. Le connessioni elettriche vengono effet- ne Lite. Questa non dispone di tutte le funzioni
tuate automaticamente semplicemente cliccan- della versione completa, ma consente il salvatag-
do sui due estremi della connessione. Gli stru- gio e la stampa dei vostri progetti. Trovate la ver-
menti di simulazione vengono utilizzati diretta- sione Lite nella cartella LITE del CDROM.
il CD-ROM
allegato
Ovviamente non potevano mancare i
contenuti speciali, per cui troverete
le versioni dimostrative dei CD di
Fare Elettronica quali le annate 2003
e 2004 e gli altri CDROM preparati
per voi.
Non meno importante, la possibilità
di acquistare il pacchetto PROTEUS a
condizioni vantaggiose.
INSTALLAZIONE
7
DI PROTEUS
Risorse
Il CDROM è predisposto per l’avvio
automatico e qualora non si avvias-
se, potete lanciare manualmente
l’interfaccia grafica cliccando sul file
start.exe presente nel CD.
Una volta accettate le condizioni di
utilizzo del CD, si accede al menu
principale da cui è possibile lanciare
l’installazione di Proteus cliccando
sulla relativa icona.
Se volete installare la versione LITE,
dovrete navigare manualmente il CD
e lanciare il file eseguibile presente
nella cartella LITE del CDROM.
Essendo la prima versione in italiano,
è possibile che vi siano alcune impre-
cisioni o comunque possibili miglio-
rie. Potete dunque inviare tutti i
vostri suggerimenti e le vostre segna-
lazioni all’indirizzo [email protected].
Sul sito www.farelettronica.com è stato allestito
un forum dedicato a PROTEUS sul quale vi noti-
ficheremo gli eventuali aggiornamenti e modifi-
che relative alla traduzione del programma e
FARE ELETTRONICA - OTTOBRE 2005
REQUISITI DI SISTEMA
Per utilizzare PROTEUS è necessario disporre di
un PC con Windows 2000/XP, 256MB di RAM,
200MB di spazio su disco. Per qualsiasi segnala-
zione, problema o suggerimento contattate pro-
[email protected].
RISORSE SPECIALE PRATICA TEORIA
Scrivete a:
Mailbox
MAILBOX
REDAZIONE DI
FARE ELETTRONICA
Inware s.r.l.
Via Cadorna, 27/31
20032, Cormano (MI)
Risorse
il livello di sensibilità del circuito quindi deter-
minare l’azionamento del buzzer in funzione
della distanza tra il corpo e la placchetta sensi-
bile. Ovviamente il buzzer può essere sostituito
Figura 3 Amplificatore in classe A
con un relé.
Mailbox - 244
Rubrica di
notizie e novità Prima
pagina
dal mondo
dell'elettronica.
244-01 NUOVA FAMIGLIA DI Fino a 4 Kbyte di RAM dati - Due moduli USART
MICROCONTROLLER PIC FLASH ®
potenziati per l’interfacciamento seriale RS232,
A 8-BIT RS485 e LIN - Due moduli Master Synchronous
Microchip annuncia i primi dieci modelli della Serial Port, ciascuno con supporto per interfac-
sua famiglia di microcontroller Flash high-pin- ce Master I2C o SPI - Cinque Timer/Counter (3 x
count, con memoria ad alta densità 16-bit, 2 x 8-bit) - Analog-to-Digital Converter a
PIC18F87J10. I nuovi prodotti raddoppiano le 10-bit da 15 canali con temporizzazioni di auto-
prestazioni low-voltage garantendo fino a 10 acquisizione - Due comparatori analogici - Tre
12
MIPS a 3V. Poichè le differenze prestazionali tra moduli potenziati di Capture/Compare/PWM
(con supporto drive H-bridge per motori) - Due
Risorse
Risorse
pari a 2kV, il livello più elevato nel settore per taggio superficiale (SMT) basato sulla tecnolo-
uno switch SPDT, e isolamento di 34 dB a 1GHz, gia RGB per il controllo ottimizzato di colore e
un valore eccezionale per uno switch nel sottile luminosità, che include un dispositivo PLCC-4
package SC-70 a 6 lead. Tra le caratteristiche (plastic leaded chip carrier) standard a basso
aggiuntive: punto di compressione P1dB di +32 profilo, offre un bianco brillante e un angolo di
pannelli strumentali, sistemi di navigazione e rumore, disponibili i dizioni in diverse lingue tra
commutazione e strumentazione medica. cui l’italiano, compressione ad alta qualità 2.4-
Il design dell'SMLC RGB presenta un circuito 10.8 kbps ed effetti sonori grazie alla tecnologia
interno a tre chip che utilizza tre die LED a indi- SX, Speaker Verification (riconoscimento biome-
rizzamento indipendente. trico di password vocali), sintetizzatore musicale
Quando il dispositivo è spento, la lente è traspa- MIDI compatibile ad 8 voci e sintesi Touch Tone
rente. Il design RGB a tre chip comprende un (DTMF), Audio Wakeup dalla modalità a basso
die AllnGaP e due die InGaN/SIC, con lunghez- consumo.
za d'onda di picco rispettivamente di 625, 568 Caratteristiche tecniche: RSC-4128 Speech
e 430 nm. Il risultato è un display programma- processor & 1Mbit Flash, 128Kb serial
bile bianco o a colori estremamente brillante, in EEPROM dati, 14.3MHz (main) & 32KHz (time
grado di soddisfare esigenze di visualizzazione keeping) clocks, 24 linee I/O, preamplificatore
specifiche. Il valore nominale massimo assoluto microfonico con AGC, uscita audio in PWM),
della corrente diretta è 200 mA (Peak If). Altri uscita audio DAC. Consumi: VDD = 2.70V –
modelli della famiglia SMLC comprendono ver- 3.6V, Iact= 26mA @ 3V, Isleep = <20uA @ 3V.
sioni con chip a uno o due colori: rosso, verde,
blu e giallo, e i colori ultra e HE quali il verde
puro 395 UV - 525 nm. Altre combinazioni di
colore sono disponibili su richiesta.
La configurazione PLCC-4, che comprende una
base metallica a 4 tamponi per la dissipazione
del calore, ha un'altezza di soli 1,9 mm e un
ingombro ridotto: 2,8 mm x 3,5 mm.
FARE ELETTRONICA - OTTOBRE 2005
244-04 VR STAMP
IL NUOVO MODULO PER
IL RICONOSCIMENTO VOCALE
Sensory Inc. ha presentato il nuovo modulo
VR Stamp che consente la semplice imple-
mentazione di funzionalità per riconoscimen-
to vocale, sintesi vocale e sintesi musicale e
touch-tone.
In formato DIP40 VRStamp consente di sfrut-
RISORSE SPECIALE PRATICA TEORIA
Notepad
Dal blocco note
di Fare Elettronica
una raccolta
di idee da tenere
sempre a portata
di mano.
Risorse
CONTROLLO DI VELOCITÀ PER
VENTOLE DI RAFFREDDAMENTO
Il TDA21801 è un controllore di velocità per
ventole di raffreddamento che necessita di
FARE ELETTRONICA - OTTOBRE 2005
RISORSE SPECIALE PRATICA TEORIA
Notepad - 244
18
Risorse
AMPLIFICATORE PER
STRUMENTAZIONE CON 2 OPAMP
Lo schema circuitale di figura permette di otte-
nere un amplificatore differenziale per strumen-
tazione utilizzando solamente due amplificatori
operazionali. L’elevato valore dell’impedenza di
ingresso è garantito dalla configurazione non
invertente dei due operazionali, mentre la con-
figurazione invertente per Vref, garantisce un
alto valore per la reiezione del modo comune. Il
guadagno è dato da:
Gain = 1+(R4/R3)+(R4+R1)/RG
PROGRAMMAZIONE IN-CIRCUIT
DEI PIC16CXXX
Per programmare i PIC16Cxxx sfruttando la pro-
grammazione IN-Circuit è necessario garantire
che i segnali ICSP abbiano fronti di salita suffi-
cientemente ripidi e che venga fornita corrente
sufficiente per la scrittura del dispositivo.
FARE ELETTRONICA - OTTOBRE 2005
Ottava parte
Elettronicando
n° 243 - Settembre 2005
L’amplificatore operazionale
Nona parte
n° 244 - Ottobre 2005
Usare gli amplificatori
operazionali
Decima parte
n° 245 - Novembre 2005
Il Timer 555
21
Figura 3 Simulazione dell’amplificatore invertente di figura 1
Teoria
ALTRI CIRCUITI CON
OPERAZIONALE
Inseguitore
Il circuito insegui-
Figura 4 Simulazione dell’amplificatore non-invertente di figura 2 tore è disegnato in
figura 7. L’uscita
reazione. Abbiamo – ovviamente – evidenziato “insegue” l’ingres-
che il primo circuito sfasa la tensione di uscita so e quindi si ha
rispetto all’ingresso (figura 3), mentre il secon- sempre Vout=Vi, cioè
do no (figura 4). Ecco perché il primo si chiama un’amplificazione
“invertente”. positiva unitaria. Figura 7 Circuito inseguitore con A.O.
Figura 5 Circuito per la simulazione di funzionamento in modo comune Figura 8 Simulazione di un circuito inseguitore con A.O.
TEORIA RISORSE SPECIALE PRATICA
modo comune Acm dell’operazionale è molto basso, solitamente può essere di qualche unità.
Questo fatto lo si può simulare con un circuito che possieda ai due ingressi dell’operazionale
lo stesso segnale (figura 5).
In figura 6 è riportata la simulazione e si noti il valore della tensione di uscita, praticamente nullo.
L’A.O. gradisce molto segnali diversi applicati sugli ingressi, lavora bene quando la “differen-
za” tra i due segnali è diversa da zero, preferisce quello che si chiama il “modo differenziale”.
Il guadagno ad anello aperto AOL è di per sé un “guadagno differenziale”. Il CMRR si ottiene
facendo il rapporto dei due:
Rivelatore di picco
Un’applicazione interessante del circuito inse-
guitore è come parte di un rivelatore di picco. Vi
ricordate il rivelatore realizzato con diodo e con-
FARE ELETTRONICA - OTTOBRE 2005
Teoria
La presenza dell’operazionale annulla la ten- e con basse correnti di bias (un A.O. con ingres-
sione di soglia del diodo, portandolo in con- so a FET, come l’LF355 o l’OPA111 possono
duzione già con Vin>0. Il diodo collegato andar bene), il diodo deve avere una corrente di
all’A.O. come in figura prende il nome di leakage molto bassa ed il condensatore deve
“diodo di precisione”. possedere basse perdite al fine di mantenere la
carica acquisita.
Il condensatore C viene caricato dalla forma Tale circuito è il nucleo da cui parte la realizza-
d’onda Vin presente in ingresso. Il diodo con- zione di un dispositivo campionatore
duce solo quando la tensione di ingresso Vin Sample&Hold.
supera il valore a cui si è caricato il condensa- In figura 11 è riportata una simulazione. La
forma d’onda inferiore rappresenta la tensione
sul carico; il mantenimento del valore può esse-
re ulteriormente migliorato con una opportuna
scelta del condensatore.
Amplificatore differenziale
Il circuito di figura 12 rappresenta un circuito
amplificatore di tipo differenziale. Utilizzando le
“regole d’oro” enunciate per studiare i circuiti
Figura 11 Simulazione del rivelatore di picco con A.O.
FARE ELETTRONICA - OTTOBRE 2005
In figura 13 si ha una simulazione del funziona- Figura 15a Circuito amplificatore sommatore invertente con due ingressi
mento del circuito di figura 12, quando V1 è
diverso da V2: la loro differenza è diversa da zero
e viene quindi amplificata. In figura 14, invece,
è mostrato il caso V1=V2 (l’uscita è pressoché
nulla, i pochi millivolt che si misurano sono
24
dovuti alla tensione di offset dell’operazionale!).
Teoria
e se R2=R1
Vout = - (V4 + 2 • V3 + =
= 4 • V2 + 8 • V1)
Teoria
poniamo V1=1 V, V2=1 V, V3=0 V, V4=0 V.
Otteniamo:
26
e quindi la corrente I non risente della resisten-
za connessa in serie col generatore V.
Teoria
NOVITÁ
w w w. e l e t t r o s h o p . c o m
Tel. 02 66504794 - Fax 02 66508225
[email protected]
TEORIA RISORSE SPECIALE PRATICA
Il circuito è utilizzato nel generatori di forma Uno schema di circuito derivatore è quello di
d’onda e negli strumenti elettronici di misura, in figura 26. In figura 27 è mostrata una simulazio-
quanto consente di ottenere una rampa da un ne. L’ingresso Vin è una forma d’onda quadra;
28
segnale costante, una parabola da una rampa, e l’operazione di derivazione, applicata ad un’on-
da quadra, consente di rivelarne i fronti di salita
Teoria
29
Teoria
Figura 25 Simulazione dell’integratore invertente, con ingresso
ad onda quadra Figura 26 Amplificatore derivatore invertente
S.V.M. ELETTRONICA
Vendita per corrispondenza Tel./Fax 0331/640569
Caratteristiche tecniche e vendita on-line www.svmelettronica.com
PROSSIMA PUNTATA
Nella prossima puntata ci occuperemo di un com-
ponente molto famoso: il 555. Tale dispositivo,
30
dalle applicazioni svariate, sarà illustrato nelle sue
configurazioni principali. Come al solito il simula-
Teoria
Figura 27 Simulazione amplificatore derivatore invertente tore CadLogix, del quale apprezziamo in ogni
puntata la potenza e la semplicità d’uso, ci aiute-
rà nella comprensione del suo funzionamento.
BIBLIOGRAFIA
Molte applicazioni degli amplificatori operazio-
nali sono illustrate magistralmente in:
P. Horowitz, W. Hill – “The Art of Electronics”,
Cambridge University Press, II ed., 1989.
Figura 28b Rete RC nel circuito comparatore con A.O. Figura 29 Simulazione circuito comparatore
PRATICA TEORIA RISORSE SPECIALE
La tecnica
DDS
U n generatore di toni DTMF
standard con selezione a
tastiera è presentato in
F1\F2
697
1209
1
1336
2
1477
770 4 5 6
quest’articolo come applicazione 852 7 8 9
della tecnica DDS (Direct Digital 941 * 0 #
32 Synthesys), mediante un Tabella 1 Matrice delle frequenze (in Hz) per toni DTMF standard
microprocessore. Caratteristiche
Pratica
principali del progetto sono TAST.asm per la gestione della tastiera 4x3
I toni generati sono quelli standard DTMF. Le
l’utilizzo di un microprocessore frequenze (in Hz) relative alle righe e alle colon-
della famiglia 16FXX, il numero ne sono mostrate nella tabella 1.
esiguo di componenti esterni e di
Caratteristiche tecniche del circuito
linee di programma. (XTAL = 8 MHz)
Tensione d’alimentazione: 2.7-5V
Frequenza Toni: DTMF standard
La tecnica DDS, della quale abbiamo ampia- Durata toni: Variabile
mente parlato nel numero 240 (Giugno 2005) Precisione della generazione: ±1.7 Hz
di Fare Elettronica, nasce come soluzione Altre caratteristiche elettriche sono riportate sul
“digitale” ai problemi tipicamente di natura datasheet del PIC16F84A.
analogica quali la generazione d’alte frequen-
ze con elevata stabilità e con altissime risolu- Descrizione del progetto
zioni che hanno evidenziato i limiti dei circuiti In figura 1 è riportato lo schema elettrico del
PLL, VCO, ecc. In questo articolo è presentato generatore di toni DTMF a tecnica DDS. Il cir-
il primo progetto che utilizza questa tecnica, cuito è costituito dal PIC16F84A e da pochi
per mezzo di un PICmicro, nell’ambito della componenti passivi. Per la sua realizzazione pos-
bassa frequenza: generatore di toni DTMF con sono essere usati altri microcontrollori della
selezione a tastiera. famiglia PIC16FXX.
FARE ELETTRONICA - OTTOBRE 2005
33
Pratica
Figura 1 Schema elettrico del generatore di toni DTMF
accumulatori di fase a 16 bit. I bit 15 dei singo- complessi quindi il circuito stampato è utilizza-
li accumulatori sono convogliati mediante una bile per la realizzazione del solo generatore.
funzione "OR" nella stessa uscita (pin RB7 della
porta B) che rappresenta l’uscita del circuito. In Dopo aver realizzato il circuito stampato e sal-
cascata è applicato un filtro LPF che elimina le dato i vari componenti (si consiglia di utilizzare
componenti in frequenza non desiderate. uno zoccolo per il PIC) si passa alla programma-
zione del micro mediante i ben noti software e
La tastiera programmatori.
La tastiera utilizzata per il circuito è una sempli-
ce tastiera a matrice con tre colonne e quattro Taratura e Collaudo
righe. Si possono utilizzare altre tastiere, anche La taratura del circuito è semplice ma importan-
FARE ELETTRONICA - OTTOBRE 2005
a 5 righe e 4 colonne, avendo cura di mantene- te per la qualità della generazione. Per la taratu-
re le corrispondenze tra tasti, riga e colonna. ra è necessario avere un frequenzimetro. Dopo
aver collegato il probe del frequenzimetro sul
Montaggio pin 15 del PIC, mediante un cacciavite per RF,
Il montaggio del circuito è estremamente sem- bisogna agire su C4 ruotandolo in modo da leg-
plice e nessun particolare accorgimento deve gere la frequenza del quarzo utilizzato più vici-
essere preso. na al suo valore nominale. Se per qualche moti-
Le figure 2 e 3 riportano il circuito stampato lato vo non si riesca ad ottenere il valore del quarzo,
rame e lato componenti del generatore. Il cir- si può cambiare i valori di C3 o C4.
cuito può essere parte integrante di progetti più Per ascoltare i toni in uscita si può collegare
PRATICA TEORIA RISORSE SPECIALE
l’uscita ad un piccolo amplificatore (le casse del Nella prima sezione “DTMF_DDS: DEFINIZIONI E
PC vanno bene). FORMULE” sono riportate le formule necessarie
Per testare la qualità dei toni generati collegare per il calcolo delle parole di controllo ovvero
l’uscita ad un circuito decodificatore. A tal FCW1 e FCW2 (Frequency Control Word) a 16 bit
scopo si può usare il software DTMF TONE in funzione frequenze d’uscita F1 e F2, compo-
DECODER (vedi sezione Web Link) che usa la nenti il tono (vedi tabella 1), in funzione del valo-
scheda audio del PC. re del quarzo usato XTAL e del numero di cicli
macchina per 1 ciclo completo di generazione.
LE ROUTINE DEL PROGETTO Le formule sono (vedi speciale sul DDS):
La routine DTMF.asm
Il file DTMF.asm è il programma principale in cui ● F1 = FCW1 * CLK / 2^N
sono fatti vari settaggi, richiamate le varie routi- ● F2 = FCW2 * CLK / 2^N
ne e definito il ciclo di generazione dei toni. ● CLK = XTAL/(4*Ncycle)
re DDS a 16 bit. Questa routine può essere uti- scopo un foglio di calcolo (table_calc.xls) è stato
lizzata in altri progetti laddove si richiede la realizzato per il calcolo della tabella di corri-
generazione di toni DTMF. spondenza utilizzata per la generazione.
Le variabile d’ingresso della routine sono la riga Nella sezione “VARIABILI: DEFINIZIONI” sono
e colonna relative al tasto premuto: ROW e COL. definite le variabili usate nel programma e la
Di seguito le varie sezioni della routine saranno loro posizione nella RAM. Essendo le grandezze
esaminate ai fini didattici per una migliore com- in gioco a 16 bit necessita definirle mediante
prensione del progetto. due byte, quindi possiamo definire quanto
segue nella tabella 2.
Elenco componenti
Sigla Valore
R5 1 KΩ 1/4 W
C1 100 nF poliestere
C2 100 µF 16 V elettrolitico
C4 4-20 pF compensatore
C5, C6 1 µF 16 V elettrolitico
FARE ELETTRONICA - OTTOBRE 2005
U1 PIC16F84A
tp = X * Ncycle * 4 / XTAL
da cui si ricava
X = tp * XTAL/ 4* Ncycle
H_FCW1 L_FCW1 H_FCW2 L_FCW2 H_ACC1 L_ACC1 H_ACC2 L_ACC2 H_TIMER L_TIMER
Tabella 2 Variabili usate nella routine
legano le variabili ROW e COL con i valori rire nella routine DTMF_DSS.asm. Fissati i valori
delle variabili H_FCW1, L_FCW1, H_FCW2, del quarzo Xtal e il numero di bit N (solitamen-
L_FCW2. Il valore riportati nelle tabelle sono te N=16) e calcolato il parametro Ncycle (se non
calcolate in funzione d’alcuni parametri: Xtal, sono apportate modifiche alla routine è pari a
Ncycle, N (Numero bit). 18) il foglio di calcolo fornisce (sezione in gial-
lo) la parte di programma da copiare ed incolla-
La routine Tast.asm re nel file DTMF_DDS.asm nella parte relativa
Con questa routine si gestisce una tastiera 4 alle tabelle ovvero nella sezione TABELLE PER
righe x 3 colonne mediante un processore PIC. FCW1 e FCW2.
Nel file Tast.asm sono riportate tutte le informa-
zioni necessarie per una completa comprensio- WEB LINK
36
ne del suo funzionamento. La tastiera di riferi- Il decoder DTMF TONE DECODER necessario per il
mento è definita nella tabella 3. collaudo del circuito presentato in questo artico-
Pratica
H_PULSE_TIME EQU 14
L_PULSE_TIME EQU 8F
Conoscere
ed usare
EDIZIONI
Linux nei
Sistemi Embedded
Speciale
SISTEMI OPERATIVI NELLE l’azienda costruttrice, oppure si utilizzavano
APPLICAZIONI EMBEDDED sistemi commerciali, come per esempio
Un sistema embedded è caratterizzato dal fatto VxWorks, Neutrino, LynxOS, Integrity, uC/OS-II,
di essere inserito in un dispositivo con uno ecc. specificamente progettati per sistemi dalle
scopo specifico e predefinito. Molte volte si risorse limitate in termini di memoria, o assenza
accomuna i sistemi embedded con i sistemi di memoria di massa ecc.
real-time. Un sistema real-time è caratterizzato Ancora oggi può risultare valida la scelta di tali
dall’essere dimensionato in modo da essere in S.O., le motivazioni di tale scelta sono sicura-
grado di garantire che un ben determinato mente legate al fatto che si riescono a ottene-
compito venga eseguito entro un certo tempo. re con una certa facilità prestazioni in tempo
Quanto tempo non è un parametro obbligato- reale anche molto spinte, una migliore ottimiz-
rio, nel senso che il requisito di essere real-time zazione degli applicativi e soprattutto la possi-
è un sinonimo di tempo deterministico e non di bilità di usufruire del fatto, che tali S.O. sono
prestazioni. Quindi si intuisce che un sistema certificati per applicazioni in ambiente aero-
embedded può essere anche di tipo real-time, spaziale, difesa o semplicemente la possibilità
ma i due concetti spesso non sono richiesti di avere certificazione POSIX (Portable
implementati contemporaneamente. Operative System Interface), tale certificazione
legata allo standard definito dall’IEEE e ricono-
SISTEMI OPERATIVI OPEN sciuto a livello mondiale, assicura la portabilità
SOURCE E PROPRIETARI
Nel mondo embedded la scelta circa l’utilizzo di
un sistema operativo risulta legata ai requisiti
del problema da risolvere con il sistema da pro-
gettare, il caso estremo di assenza del S.O. di
FARE ELETTRONICA - OTTOBRE 2005
del codice tra i sistemi e molto spesso è richie- tali sistemi stanno facendo molta strada perfino
sta nei contratti di fornitura soprattutto dalle in ambito governativo, ad esempio anche pres-
istituzioni governative. so il Pentagono; il comitato tecnico del proget-
to “Future Combat System” dell’esercito degli
Negli ultimi anni si sta diffondendo sempre di Stati Uniti, ha scelto Linux come S.O. di riferi-
più l’utilizzo di sistemi operativi open source, mento. Il successo dell’Open Source è legato al
fatto che un sistema operativo di questo genere
si mostra più economico in quanto privo di
royalties, flessibile nell’utilizzo in quanto risulta
semplice “ritagliare” dal tutto solo quello che
serve per la propria applicazione embedded, in
più sistemi operativi open source come Linux
aggiungono anche doti di robustezza, affidabili-
tà, flessibilità, bassi costi, possibilità di persona-
lizzazioni ed interventi a basso livello sul codice,
insomma un po’ tutte quelle che sono le carat-
40
teristiche più importanti richieste da un’applica-
Speciale
zione industriale.
Ma molto importante risulta talvolta capire cosa
un determinato codice esegue e quindi prende-
re spunto per soluzioni personali. Al di là del-
l’abbattimento dei costi per le royalties, Linux è
abbastanza diffuso e conosciuto da un grosso
Figura 3 Schermata di uClinux
numero di sviluppatori “Linux-literate”.
FARE ELETTRONICA - OTTOBRE 2005
Linux come piattaforma embedded è, come già (come Solaris, AIX, HPUX, SCO, etc.) ma è stato
sottolineato più volte, il fatto di essere un siste- scritto per essere compatibile con le specifiche
ma operativo “open source”. Cerchiamo di POSIX, in più include estensioni proveniente dai
chiarire proprio questo ultimo concetto, con sistemi System V e BSD.
tale definizione ci si riferisce al fatto che si tratta Linux in se stesso è costituito solo dal Kernel, il
di software “libero”, cioè tale software non è di nucleo centrale del sistema operativo che con-
proprietà esclusiva di qualcuno e può essere trolla il funzionamento di tutto il computer. La
pertanto modificato attraverso l’accesso al codi- maggior parte delle applicazioni di contorno al
ce sorgente. sistema sono sviluppate dalla GNU.
L’utente ha la possibilità di studiare, manipola- Il kernel di Linux è stato ideato da Linus
re, migliorare il software secondo le proprie Torvalds, uno studente finlandese. Attualmente
necessità, ma anche eseguirlo e distribuirlo a contribuiscono allo sviluppo di Linux migliaia di
chiunque e ovunque per estenderne i vantaggi programmatori sparsi in tutto il mondo. Tutto il
anche a singoli o gruppi. Tutto questo senza lavoro viene coordinato tramite l'uso di internet.
pagare alcuna concessione o farsi carico del- I sorgenti del kernel sono disponibili in rete sia
l’onere di licenze “runtime” per singola macchi- nella versione stabile (che termina con un
na o processore, normalmente previste per l’uso numero pari), che nella versione di sviluppo
di sistemi operativi proprietari. (che termina con numero dispari).
È importante che il sistema operativo open Il primo rilascio del kernel è avvenuto nel 1991.
source includa il codice sorgente, perché può La prima release del kernel della serie 2.2.x è
capitare che in stato rilasciata agli inizi di febbraio del 1999. Il
talune distribuzio- kernel di Linux è funzionalmente equivalente a
ni questo non sia quello di Unix, quindi molto più complesso
compreso. In tal rispetto al nucleo della maggior parte dei siste-
FARE ELETTRONICA - OTTOBRE 2005
di due categorie:
Definito il quanto di tempo e la priorità passia-
mo alle “epoche”. Il tempo di utilizzo della CPU ● SCHED_FIFO: processi real-time con quanto di
è suddiviso in periodi, detti epoche, che si ripe- tempo illimitato. Questi processi lasciano la
tono ciclicamente. All’inizio di ogni epoca, a cia- CPU solo se:
scun processo viene assegnato un quanto di ● Si bloccano
rispondenti a 210 millisecondi). Il quanto di ● Un processo a priorità più alta passa nello
Speciale
Secondo la prima soluzione abbiamo due tipi di
Descritti i meccanismi principali dello schedu- modifiche (patch) praticate al kernel di Linux,
ling di Linux, è importante sottolineare che: chiamate rispettivamente “preemption patch” e
“low-latency patch”, la prima patch allarga l’in-
● Linux è un sistema preemptive per quanto sieme di possibili situazioni in cui il cambio di
riguarda i processi: questo significa che ad un contesto è possibile, mentre la seconda seg-
processo può essere levato il controllo, secon- menta i cammini troppo lunghi del codice del
do quanto descritto sopra, anche se il proces- kernel, introducendo nell’ambito del codice del
so stesso non lo richiede esplicitamente. kernel chiamate esplicite allo scheduler.
● I processi di sistema, quindi quelli del kernel In seguito tali tecniche si sono fuse, ma in ogni
non possono essere sottoposti a prerilascio caso risultano soltanto poter lenire il problema
(preemption), in quanto lo scheduler può fun- senza risolverlo.
zionare solo in certi momenti predefiniti Il secondo filone è rappresentato dal progetto
oppure quando il kernel volontariamente ne RTAI (www.rtai.org).
invoca l’esecuzione. Tale progetto presenta un componente softwa-
Questo significa che anche un processo “real- re, Adeos che si occupa di fare una selezione tra
time” deve attendere che lo scheduler gli eventi significativi per poi passarli al kernel RTAI
assegni la CPU e questo può avvenire con o al kernel Linux.
tempi massimi (deadline) non predicibili Questo filtraggio permette di separare effettiva-
(“soft” real-time). mente le componenti effettivamente in tempo
reale da quelle non real-time così da ottenere il
In particolare lo schedulatore Linux può interve- rispetto dei requisiti.
nire solo in tre precise situazioni:
FARE ELETTRONICA - OTTOBRE 2005
La conseguenza principale di questo è che se c’è ● Sono stati inseriti dei punti di “preemption”
un processo real-time e qualche periferica nel kernel, cioè punti nei quali può girare lo
richiede continuamente attenzione con una scheduler.
serie di richieste di interruzione che fanno scat- ● È stato ottimizzato lo scheduler, implemen-
tare routine di servizio del sistema operativo, lo tando algoritmi più efficienti in modo da
SPECIALE PRATICA TEORIA RISORSE
ridurre l’overhead introdotto dal S.O., soprat- pia comunità di sviluppatori, grazie anche
tutto in presenza di molti “task”. all’ampio uso che ne viene fatto per la didatti-
● Il sistema può girare anche su sistemi privi di ca e le ricerca.
memoria virtuale (allargando di molto la base ● Sono disponibili “porting” su molte CPU
di processori supportati, cioè tutti quelli sprov- differenti.
visti di MMU). ● Assicura una completa manutendibilità, un
● Sono state introdotte nuove primitive di sin- completo controllo del codice da parte del
cronizzazione, che permettono di usare i progettista, permettendo di svincolarsi da
“mutex” senza ricorrere a chiamate di sistema. produttori specifici.
● Sono stati introdotti nel kernel il supporto per ● È estremamente “ritagliabile” e configurabile
le segnalazioni e per i timer ad alta risoluzione e quindi può essere reso relativamente picco-
POSIX (oltre ad una ottimizzazione del mecca- lo, almeno rispetto alle caratteristiche e pre-
nismo dei thread POSIX). stazioni che fornisce.
● È abbastanza rispondente agli standard
È inoltre possibile eliminare completamente il POSIX.
codice per gestire video, tastiera, eccetera, ove L’ambiente di sviluppo è disponibile gratuita-
46
●
questi non risultino necessari. mente e sono presenti tools e librerie parago-
nabili in molti casi a quelli commerciali.
Speciale
rare come S.O. per un sistema embedded, in cazioni embedded - Seminario: Linux e le
quanto: sue applicazioni industriali, nei sistemi
embedded e real-time, Ordine degli
● Ha caratteristiche di robustezza, sicurezza ed Ingegneri di Bologna. Novembre 2004.
affidabilità. ● Stefano Pozzi - Linux e le sue applicazioni
● Abbatte i costi perchè privo di royalties ed è industriali - Seminario: Linux e le sue appli-
eventualmente scaricabile gratuitamente da cazioni industriali, nei sistemi embedded e
internet. real-time, Ordine degli Ingegneri di Bologna.
● È abbastanza diffuso e conosciuto da un’am- Novembre 2004.
Leader nella progettazione e produzione di circuiti ibridi con tecnologia in film spesso
gli appuntamenti
1 2 3 4 5 6 7/8 9 10 11 12
Quinta parte
n° 243 - Settembre 2005
PWM con il PIC
Sesta parte
n° 244 - Ottobre 2005
Musika maestro! Generazione
di melodie, note, effetti sonori
Mikrobasic
per PICmicro
e musica con il PIC
Settima parte
n° 245 - Novembre 2005
Pilotiamo i motori passo-passo
musicali al fine di rendere i nostri presa tra 20 Hz e 20.000 Hz. (almeno per l’esse-
re umano). A seconda della frequenza, si usa
progetti più accattivanti e catalogare il suono in sette note (DO, RE, MI, FA
professionali. SOL, LA, SI) distribuite tra diverse ottave.
Infine la musica è l’arte del combinare assieme le
note al fine di produrre una sensazione piacevo-
In questa puntata studiamo qualcosa di diverso le di ascolto e, chiaramente, tale fenomeno è
dal solito. Come si legge dal titolo, parliamo puramente soggettivo.
appunto di musika (proprio con la lettera k) in Non addentrandoci comunque in discorsi trop-
onore del nostro Mikrobasic della po tecnici, da un punto di vista acustico: dicia-
mikroElektronika, che da questa puntata ci offre mo solo che un suono è caratterizzato da una
la nuova versione 2.0 (almeno alla data della specifica forma d’onda; in altre parole la varia-
stesura dell’articolo), piena di novità e di molte zione che segue l’ampiezza nel tempo disegna
potenzialità. Invitiamo pertanto i lettori a scari- effettivamente un grafico, di cui si possono stu-
care l’ultima release dal sito omonimo. diarne le caratteristiche.
Dal momento che il nostro microcontrollore è 500 (da qui la formula T=1/F) e nel nostro caso
capace di generare solamente due livelli di ten- otterremo il risultato 0,002 secondi (ossia 2 mil-
sione (5 Volt e 0 Volt), l’unica forma d’onda che lesimi di secondo, di cui 1 millesimo in stato ON
possiamo tirare fuori è l’onda rettangolare, e 1 millesimo in stato OFF). Con qualche grafi-
ossia un treno di impulsi che, se supera una co il concetto viene meglio chiarito (figura 2).
certa frequenza, genera un rumore udibile dal-
l’uomo. Eseguiremo svariati esempi per com- Un’onda rettangolare di 500 Hz ha un periodo
prendere bene tutto ciò. di 1/500=0,002 secondi, di cui la parte attiva
51
dura solamente 1 ms. e altrettanto la parte “a
Pratica
T = 1 / F riposo”. Se non vi fosse questo alternarsi di stati
Vediamo adesso, con la teoria, come sia possibi- non potrebbe esistere una produzione di vibra-
le ottenere dal nostro micro, tutti i suoni udibili zione e quindi di suono.
(e anche quelli non udibili …).
Partiamo da un semplice esempio: occorre OTTAVE
generare una nota di 500 Hz per la durata di un
secondo. Cosa vuol dire? Semplicemente che in NOTA 2 3 4 5 6 7
un “solo” secondo la sua forma più semplice si Do 65,4 130,8 261,6 523,3 1046,5 2093
ripete completamente (dall’inizio alla fine) per
500 volte. Dal momento che la nostra nota ha Do# 69,3 138,6 277,2 554,4 1108,7 2217,5
una forma puramente rettangolare, si ripeterà
Re 73,4 146,8 293,7 587,3 1174,7 2349,3
nel tempo una commutazione da uno stato
logico ALTO ad uno stato logico BASSO per 500 Re# 77,8 155,6 311,1 622,3 1244,5 2489
volte. Se poi vogliamo sapere quanto tempo
dura un singolo evento (denominato anche Mi 82,4 164,8 329,6 659,3 1318,5 2637
periodo o ciclo) basterà dividere 1 secondo per
Fa 87,3 174,6 349,2 698,5 1396,9 2793,8
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
main:
trisb=0 'Definisce la PORTB in uscita
FARE ELETTRONICA - OTTOBRE 2005
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
Pratica
Tabella 2 Frequenza e durata di ogni nota
Fantastico, sembra proprio di avere tra le mani plicando semplicemente il risultato per
un vero telefono. Commentiamo le parti salienti. 1.000.000 (un milione) quindi: P = 0,002353
Dopo aver configurato la variabile e impostata * 1.000.000 = 2353 microsecondi.
in output la PORTB, all’interno di un ciclo infini- 3. Calcolare il tempo dell’onda rettangolare in
to (WHILE/WEND) sono generati i toni di ON e il tempo in OFF semplicemente divi-
cadenza e le pause. dendo per due tale periodo, quindi avre-
Riprendiamo un attimo il metodo di generazio- mo: T-ON e T-OFF = 2353 /2 = 1176
ne di frequenza. Si tratta di applicare “piccoli” microsecondi.
concetti di matematica legati al tempo. 4. I due stati logici appena calcolati devono
PRATICA TEORIA RISORSE SPECIALE
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
Pratica
de all’interno del PIC, ma contribuisce soprat- moltiplicandolo semplicemente per un
tutto a risolvere e superare gli ostacoli che que- milione, quindi 1136,3636 us.
ste funzioni di libreria potrebbero causare. c. Dividere tale risultato per dieci e arro-
tondare, in quanto la funzione lo esige,
Le funzioni quindi 114.
Le funzioni supportate dal Mikrobasic, almeno d. Abbiamo quindi ottenuto il primo
nella versione attuale sono due: parametro.
2. Secondo parametro (durata)
Sound_init(porta,pin) a. Dal momento che la frequenza desiderata
Sound_play(periodo/10,n. periodi) è di 880 Hz (cicli al secondo) è ovvio che
per durare un secondo tale nota ha
La prima predispone il microcontrollore ad bisogno di 880 periodi. Per ottenere
accettare su una porta (es. PORTA o PORTB) un tempi maggiori o minori bisogna calcolare
dispositivo sonoro di output (altoparlante o proporzionalmente tale dato e in questo
buzzer). Tale dispositivo deve essere collegato caso moltiplicare 880 per 4 (secondi)
sul pin specificato dal secondo parametro. Per quindi 3520.
esempio la funzione Sound_init(PORTB,0) prepa- b. Abbiamo quindi ottenuto anche il secon-
ra la PORTB, e precisamente il pin RB0, ala pro- do parametro.
duzione di suoni.
Invocando pertanto la funzione
La seconda invece si occupa della vera e propria Sound_play(114,3520) otteniamo un suono della
riproduzione della nota, generando un’onda frequenza di 880 Hz della durata di 4 secondi.
quadra di opportuna frequenza. Il suo utilizzo In ogni caso, per il calcolo dei suddetti parame-
potrebbe essere inizialmente un po’ complicato. tri, consiglio vivamente l’adozione e l’utilizzo di
FARE ELETTRONICA - OTTOBRE 2005
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
generare facilmente una nota. Il primo svantag- generano le note. Semplice vero? Un’ultima
gio consiste nell’impossibilità di riprodurre nota: non è stato necessario configurare il regi-
“tutte” le frequenze udibili dall’uomo, infatti il stro TRISB in quanto la funzione SOUND_INIT
range d’azione spazia da un minimo di 393 Hz se ne fa carico completamente.
ad un massimo di 100.000 Hz. Come vedete il
limite superiore può andare benissimo, un po’ FINALMENTE LA MUSICHETTA
meno il limite inferiore… Adesso che abbiamo tutti gli “ingredienti” e le
Il secondo svantaggio sta nel fatto che alcune conoscenze per produrre suoni e note, ci pos-
note prodotte subiscono una “leggerissima” siamo cimentare nell’arduo compito di pro-
stonatura per via di sofisticati calcoli matemati- grammare il microcontrollore per l’esecuzione
ci eseguiti all’interno del compilatore. di una famosissima melodia.
sound_play(152,165)
wend tabella 2 abbiamo calcolato, di tutte le note, i
due parametri fondamentali (nelle caselle in
end. grassetto).
Essa è formata da 9 colonne che andiamo ad
Come si nota, non abbiamo usato alcuna varia- illustrare:
bile. Dopo la definizione del PIN 0 di PORTB, al
quale occorre collegare un piccolo altoparlante, 1. La prima colonna contiene semplicemente il
all’interno di un ciclo infinito WHILE / WEND il testo e le parole “cadenzate e ritmate” della
PIC esegue sequenzialmente le istruzioni che canzone (vedi spartito).
Fare Elettronica
sta preparando per te
un nuovo bellissimo
Numero Speciale
lo troverai in tutte le edicole a Gennaio*
* Se sei abbonato a Fare Elettronica richiedi la tua copia del Numero Speciale "FIRMWARE",
ti sarà recapitata comodamente a casa a soli €3 anzichè €6.
Telefona subito allo 02-66504794 oppure manda un’email a [email protected]
PRATICA TEORIA RISORSE SPECIALE
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
Pratica
sound_play(96,628)
main: delay_ms(600) ' PAUSA FINALE DI SILENZIO
wend
sound_init(PORTB,0) 'Inizializza la RB0
end.
rem Il PIC Inizia a SUONARE
rem ... e non la smette piu' ..... È stata molto dura ma ce l’abbiamo fatta. Il
while true nostro microcontrollore è adesso capace di
sound_play(128,314) riprodurre “fedelmente” la musichetta di augu-
sound_play(128,157) rio, senza sbagliare mai una sola nota e per un
sound_play(114,528) numero illimitato di volte.
sound_play(128,470) Il listato, seppur lungo, non ha assolutamente
sound_play(96,628) bisogno di commenti.
sound_play(101,593) Occorre solo impiegare il tempo per calcolare
delay_ms(600) ' PAUSA DI SILENZIO tutti i valori necessari ma, ripetiamo, con un
sound_play(128,314) software di foglio elettronico il compito sarà
sound_play(128,157) sicuramente agevolato.
FARE ELETTRONICA - OTTOBRE 2005
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
Figura 7 Schema di contatore up-down con due pulsanti n/a con beep
PRATICA TEORIA RISORSE SPECIALE
Sesta parte Mikrobasic per PICmicro: Musica maestro! Generazione di melodie, note, effetti sonori e musica con il PIC
[Listato 7]
rem Display Contatore con tasti BEEP
program suono07
main:
end.
in quanto è specificata una condizione vera (true) display attraverso il comando portb=display[k]
che non potrà mai cambiare. che assegna alla PORTB il valore di codifica del
Con la prima istruzione IF viene processato il numero. Infine riveste tantissima importanza lo
tasto su RB0 che è adibito all’incremento del stato di attesa finale, attraverso il comando
numero. Per aumentare di una unità la cifra, Delay_ms(100) che elimina completamente l’ef-
occorre il verificarsi di tre condizioni, ossia: fetto rimbalzo, semplicemente rallentando l’ese-
cuzione del programma a livelli più “umani”.
1. Che venga premuto il tasto (porta.0=1).
2. Che il contatore non si trovi al limite del suo CONCLUSIONI
conteggio (k<9). Siamo arrivato alla fine anche di questa punta-
3. Che il tasto stesso non sia già premuto (per ta. Sarebbero ancora tantissime le cose da dire
evitare l’effetto repeat). ma lo spazio a disposizione è finito. Inventate da
voi gli esercizi e i prototipi più disparati per veri-
Solo così il programma può aumentare di una ficare praticamente ciò che abbiamo imparato e
unità la variabile k (k=k+1). Inoltre, all’interno ricordate che se un programmatore scrive un
dello stesso blocco IF/THEN, è presente l’istru- programma e questo funziona subito, è stato
67
zione che genera il beep, ossia un tono di 1000 bravo, ma se scrive un programma che non fun-
Pratica
Hz della durata di 100 ms. grazie alla funzione ziona e poi scopre e corregge gli errori, allora è
sound_play(100,100). stato doppiamente bravo!
Il tasto di decremento segue la stessa filosofia di Alle prossime puntate dunque con tanti interes-
ragionamento, con le ovvie variazioni del caso. santi esperimenti e studi, per utilizzare al meglio
Il valore della variabile k è così visualizzato sul il microcontrollore PIC. Vi aspettiamo.
Software Mikrobasic
Un potente
compilatore Basic
per PICmicro
✔ Code Editor
✔ Code Explorer
✔ Debugger
FARE ELETTRONICA - OTTOBRE 2005
✔ Statistiche
Tutto in un ambiente
Windows facile ed intuitivo
Prima parte
n° 244 - Ottobre 2005
CPLD
Evoluzione dei componenti
programmabili
Seconda parte
n° 245 - Novembre 2005
by Example
Utilizzare le CPLD XC9500 e
l'ambiente di sviluppo Xilinx
Terza parte
n° 246 - Dicembre 2005
Sistema hardware di sviluppo
pre in relazione a circuiti applicativi di esempio. dispositivi a un livello tale da farli diventare
alternative molto appetibili rispet-
In questa prima puntata ci soffer- to alle logiche fisse discrete.
meremo in particolare sull’evolu- Ma, al di là delle semplici ragioni
zione dei componenti program- di costo, vi sono altri fattori parti-
mabili. Vedremo poi le caratteri- colarmente rilevanti che rappre-
stiche principali di alcune famiglie sentano notevoli vantaggi a favore
di CPLD e le architetture elaborate delle CPLD: la flessibilità costituita
dai diversi produttori, per arrivare dalla riprogrammabilità, la rapidità
Figura 1 Alcuni esemplari Xilinx
infine ai prodotti Xilinx che usere- nell’ apportare le modifiche, la
Evoluzione
dei componenti
programmabili di Agostino Rolando
[email protected]
69
Pratica
Figura 2 Primi circuiti logici Figura 4 Logica nand TTL
integrati logici tradizionali. La Texas, agli inizi degli anni anni '60 commer-
Anche nel campo hobbistico l’utilizzo di questi cializzò alcuni dispositivi DTL, tra cui possiamo
componenti è molto promettente. ricordare la serie 930, a cui fece seguito la serie
SN73 / 53, che rimase in produzione fino alla
UN PO’ DI STORIA metà degli anni '70.
Oltre quattro decenni fa i circuiti logici digitali La SN53 era specifica per le applicazioni milita-
venivano interamente realizzati con resistenze, ri, con un range di temperatura operativa da -
diodi e transistor. 55 a +125 gradi centigradi. La serie SN73, inve-
A questo proposito possiamo ricordare le solu- ce, era indirizzata alle applicazioni industriali,
PRATICA TEORIA RISORSE SPECIALE
Pratica
ture regolari, quali memorie e logiche program- mente e i campi di applicazione sono sempre
mabili, hanno consentito di incrementare ulte- più estesi.
riormente le prestazioni raggiunte nei circuiti
logici complessi, come i microprocessori. Quando la serie 74 fu introdotta, il prezzo di
partenza medio per un singolo dispositivo era di
In particolare, le tecnologie basate sul MOSFET circa 1000 $ (1963). Con il procedere della tec-
(CMOS) attualmente sono preponderanti nel mer- nologia nel corso degli anni, il prezzo scese a
cato dei semiconduttori e l’utilizzo delle tecnologie circa 25 $ (1968).
bipolari è limitato a particolari applicazioni. Allo stato attuale, i progressi nei processi di fabbri-
cazione dei semiconduttori e nelle tecniche di pac-
Costi kaging hanno fatto sì che oggi, per un circuito con
Tipicamente, per chip di grandi dimensioni i oltre circa 8 integrati discreti TTL, sia più economi-
costi sono elevati a causa del fatto che i wafer di camente conveniente utilizzare una CPLD (figura
silicio possono avere delle difettosità e la proba- 10) rispetto all’equivalente set di chip.
bilità che un difetto si verifichi entro un chip è
tanto più alta quanto più è estesa l’area che lo
stesso chip occupa sul wafer. Così, oltre un certo
limite, il costo di un chip di grandi dimensioni
FLUSSO CAD PER dei ritardi che possono provocare errori, allora si
PROGRAMMABILI SPLD andrà a rivedere la descrizione in HDL e si ripe-
Quando ci si accinge a progettare un circuito terà il processo.
che fa uso di componenti programmabili, è
essenziale disporre di un sistema di sviluppo La fase di simulazione è utile, per non dire
software che supporti i componenti utiliizzati. I essenziale, per verificare la correttezza del pro-
tools CAD sono importanti non solo per i dispo- getto prima ancora di averlo fisicamente realiz-
sitivi complessi, come le CPLD o le FPGA, ma zato. L’utente può da qui rientrare più volte alla
anche per i più semplici SPLD (Simple PLD). fase di entry per eliminare gli eventuali errori e
Un tipico sistema CAD per SPLD consiste in un ottimizzare il funzionamento del circuito logico.
ambiente che include gli strumenti software
per effettuare i seguenti passi: l’immissione o Quando infine il progetto si riesce a simulare
entry del disegno, l’ottimizzazione logica, il fit- correttamente, si può procedere al trasferimen-
ting entro il dispositivo, la simulazione e infine to verso l’unità di programmazione, dove si pro-
la configurazione. gramma la SPLD.
Il flusso di progetto è illustrato in figura 11 e I passi di progetto per realizzare circuiti logici
indica i passaggi da uno step all’altro. entro le CPLD, come vedremo nel seguito, sono
La entry del progetto può essere fatta per molto simili a quelli per le SPLD, ma gli stru-
mezzo di un applicativo grafico di schematica o menti software sono molto più sofisticati.
mediante una descrizione testuale in un lin-
guaggio di descrizione dell’ hardware Il massimo della complessità si raggiunge con i
(Hardware Description Language, HDL). Il lin- dispositivi FPGA. Non ci occuperemo di FPGA in
FARE ELETTRONICA - OTTOBRE 2005
INWARE SRL
Via Cadorna, 27/31 Tel.: +39 02.66504794 - 02.66504755 [email protected]
20032, Cormano, MI - Italy Fax: +39 02.66508225 www.netwaves.it
PRATICA TEORIA RISORSE SPECIALE
Figura 12a Struttura interna della PAL16R8 Figura 12b Struttura interna della PAL22V10
piani AND e OR di maggiore ampiezza. Nella 7000, poichè è ampiamente utilizzata ed offre
EP610 le uscite possono essere registrate e i flip- capacità e prestazioni in velocità tipiche dello
flop sono configurabili di tipo D, T, JK o SR. stato dell’arte attuale.
La serie MAX 5000 rappresenta la tecnologia
Oltre alle SPLD che abbiamo appena citato vi più datata ed ha la maggiore convenienza eco-
sono molti altri prodotti, messi a disposizione da nomica, mentre la MAX 9000 è più simile alla
diversi fabbricanti. Tutte le SPLD presentano MAX 7000 ed offre una capacità superiore in
caratteristiche simili, come il fatto di avere una termini di gates equivalenti. L’architettura di
struttura a "piani logici" (AND,OR,NOR o NAND), Altera MAX 7000 è riportata in figura 13.
ma ciascun prodotto ha caratteristiche uniche che
possono renderlo interessante per particolari Essa contiene una matrice di blocchi, chiamati
applicazioni. Tra i vari produttori di SPLD ricordia- Logic Array Blocks (LAB) e piste di interconnes-
mo AMD, Altera, Lattice, Cypress, Atmel, ecc.. sione denominate Programmable Interconnect
Array (PIA). La struttura del PIA consente di col-
CPLD COMMERCIALI legare tra di loro le porte di ingresso e uscita dei
Prendiamo ora in considerazione alcuni tra i più LAB. Inoltre, permette di connettere gli ingressi
75
noti fabbricanti di CPLD. Come abbiamo accen- e le uscite del chip direttamente ai LAB.
Pratica
nato in precedenza, la CPLD consiste di più Un LAB può essere pensato come una struttura
blocchi di tipo Simple PLD riuniti su un singolo SPLD complessa, cosicchè l’intero chip si può
chip. Tuttavia, i dispositivi CPLD sono molto più considerare come una matrice di SPLD.
sofisticati di quanto non siano le SPLD stesse,
anche già a livello dei blocchi elementari simil- I dispositici MAX 7000 sono disponibili in tecno-
SPLD di cui sono composte. In questo paragra- logia EPROM o EEPROM. Fino a poco tempo fa,
fo vedremo alcune delle più classiche CPLD i chip potevano essere programmati soltanto
commerciali e considereremo i campi di appli- "out-of-circuit" e con un programmatore appo-
cazione tipici di questi dispositivi. Teniamo pre- sito. Dal ’96 Altera ha prodotto la serie 7000 S,
sente che, data la rapida evoluzione in questo che è programmabile "in-circuit".
settore, per avere informazioni aggiornate è
bene consultare i siti web dei vari produttori. CPLD di Advanced Micro Devices
(AMD)
CPLD di Altera Prima della cessione a Lattice della Divisione
Altera ha sviluppato tre famiglie che rientrano Logiche Programmabili, AMD metteva a disposi-
nella categoria delle CPLD: MAX 5000, MAX zione una serie di CPLD comprendente 5 sotto-
7000 e MAX 9000. famiglie denominate MACH 1, fino a MACH 5.
Consideriamo in particolare la famiglia MAX Ognuno di questi dispositivi contiene dei bloc-
FARE ELETTRONICA - OTTOBRE 2005
Figura 12c Struttura della macrocella 22v10 Figura 13 Serie Altera MAX 7000
PRATICA TEORIA RISORSE SPECIALE
chi PAL-like: i tipi MACH 1 e 2 contengono bloc- a 5000 gates, con ritardi di circa 10-15 nsec. La
chi PAL del tipo 22V10, mentre MACH 3 e 4 funzionalità della serie 3000 è molto simile a
dispongono di blocchi tipo 34V16. La serie quella della serie Mach 4 della AMD.
MACH 5 è simile, ma offre prestazioni superiori La serie 3000 supporta gli stili di progetto più
in velocità. moderni, come quello del boundary scan.
Tutte le sotto-famiglie MACH si basano su tec- La struttura generale di un dispositivo pLSI o
nologia EEPROM e forniscono un ampio range ispLSI è indicata in figura 15. Al contorno del
di chip, dai più piccoli a basso costo, ai più chip si trovano le porte di I/O bidirezionali, che
potenti e costosi. Analizziamo in particolare la sono connesse sia ai Generic Logic Blocks (GLB)
struttura della serie MACH 4. In figura 14 vedia- che al Global Routing Pool (GRP).
mo raffigurati i blocchi tipo PAL-34V16 e le I GLB sono blocchi PAL-like che contengono un
interconnessioni che fanno capo alla matrice di piano AND, l’area che interessa i termini di pro-
connessione detta Central Switch Matrix. dotto e le macrocelle. Il GRP contiene le piste
che si svolgono attraverso l’intero chip e servo-
Il chip ha una taglia che va da 6 a 16 blocchi no a collegare le linee di ingresso e uscita dei
PAL-like, che corrisponde a circa 2000 ÷ 5000 GLB tra loro.
76
gates equivalenti ed è programmabile in-circuit.
Pratica
Figura 14 Struttura della CPLD AMD MACH 4 Figura 15 Struttura della CPLD Lattice pLSI
CAMPAGNA ABBONAMENTI
2005
1 ANNO, 11 RIVISTE
A SOLI 45,00 EURO INVECE DI
60,50 EURO
25%
Abbonati subito!
Compila oggi stesso il coupon che trovi in ultima pagina o abbonati su
www.farelettronica.com/abbonamento
PRATICA TEORIA RISORSE SPECIALE
Pratica
La recente serie XC9500 offre prestazioni ulte- tato fornisce prestazioni in velocità più predici-
riori: programmabilità in-system, ritardo garan- bili di quanto non si abbia nel caso di un pro-
tito di 5 nS pin-to-pin e capacità fino a 6400 getto suddiviso in tante piccole porzioni circui-
gates logici. tali. La predicibilità della implementazione di un
circuito è uno dei principali vantaggi dell’archi-
APPLICAZIONI DELLE CPLD tettura delle CPLD.
Diamo ora un’occhiata ai campi di applicazione
tipici cui si adattano bene le architetture delle CRITERI DI SCELTA
CPLD. Grazie all’elevata velocità e all’ampio Innanzi tutto, per scegliere la CPLD giusta per le
spettro di prestazioni, le CPLD sono utilizzabili nostre esigenze è utile porsi prima alcune
in un vasto assortimento di applicazioni, dalla domande sulle caratteristiche di cui abbiamo
semplice Glue Logic (termine usato per indicare bisogno, così da individuare la famiglia di pro-
la logica discreta che fa da "collante" al resto del dotto più adatta per la nostra applicazione. I cri-
circuito), alla prototipazione di piccoli gate teri di scelta possono essere i seguenti:
array. Uno degli impieghi industriali più comu-
ni, che rappresenta anche una forte motivazio- Densità: ogni famiglia di CPLD possiede una
ne alla crescita di questo mercato, è la conver- propria capacità, espressa in termini di gates
sione di progetti che contengono gates obsole- equivalenti, che dà una stima della densità
ti di standard logic, oppure parecchie SPLD, del chip.
verso soluzioni composte da un piccolo numero
di CPLD (figura 18).
Le CPLD possono realizzare funzioni piuttosto
FARE ELETTRONICA - OTTOBRE 2005
Numero di flip-flop: si fa una stima del nume- Questi dispositivi supportano la programmazio-
ro di flip-flop di cui si ha bisogno per il proget- ne in-system, che permette di effettuare innu-
to: contatori, macchine a stati, registri, latch. Il merevoli cicli di modifica durante le fasi di pro-
numero di macrocelle del dispositivo dovrà totipazione. È possibile quindi effettuare decine
essere tale da coprire questo fabbisogno. di migliaia di cicli di programmazione/cancella-
zione. Le prestazioni in velocità sono elevate e il
Numero di pin di I/O: quanti pin di ingresso e ritardo di propagazione è contenuto a 5 ns.
uscita ci servono? Si possono considerare di complemento alle
FPGA Xilinx, "sorelle maggiori" ad alta densità,
Requisiti di velocità: qual’è il percorso combi- tanto che l’ambiente di sviluppo sofware è il
natorio più veloce del nostro disegno? La rispo- medesimo. Il tool è già da alcuni anni scaricabi-
sta a questa domanda determina il tempo di le gratuitamente dal web e si chiama ISE
propagazione (Tpd), in nanosecondi, del dispo- Webpack. Il sito, all’indirizzo www.xilinx.com, è
sitivo da scegliere. Qual’è il più veloce circuito veramente una miniera di informazioni, sia per
sequenziale richiesto? La risposta ci indica quale quanto riguarda i data sheet dei componenti,
frequenza massima (Fmax) scegliere. sia per gli strumenti software di sviluppo, per i
80
quali esiste una ricca collezione di tutorials e di
Package: abbiamo dei requisiti di carattere elet-
Pratica
li di prodotti CPLD, identificate nelle serie La famiglia di CPLD XC9500 contiene sei dispo-
XC9500 e CoolRunner. sitivi, da 36 a 288 macrocelle di capacità, in
Le famiglie di CPLD XIlinx XC9500 sono intese un’ampia varietà di package. La tabella 1 ci
per impieghi ad alte prestazioni e basso costo, mostra una panoramica di questi componenti.
in sistemi che richiedono sviluppi rapidi di pro- I pin di I/O si possono interfacciare a sistemi sia
getto, lunga vita e robustezza intrinseca. a 3.3 che a 5 Volt e arrivano a supportare fino a
La serie XC9500 presenta densità che vanno da 192 segnali.
36 a 288 macrocelle ed è disponibile nelle ver-
sioni a 2.5 Volt (XC9500XV), 3.3 Volt Architettura flessibile del pin lock
(XC9500XL) e 5 Volt (XC9500). Nel caso di modifiche l’architettura del chip,
insieme al software, è tale da consentire di con- La famiglia a 3.3V XC9500XL
servare l’assegnazione iniziale del pinout, fissata I componenti della famiglia di CPLD XC9500XL
nelle fasi iniziali di progetto, anche in presenza sono indirizzati a sistemi avanzati che richiedono
di consistenti cambiamenti nel codice. sviluppi rapidi di progetto, lunga durata e necessi-
tà di upgrade sul campo. Questa famiglia di dispo-
Supporto JTAG IEEE 1149.1 sitivi ISP (dotati cioè di In System Programming)
La famiglia XC9500 è supportata da parecchi fornisce ottime prestazioni e costi tra i più bassi nel
tool di sviluppo e di debug, che servono a svilup- settore. Le caratteristiche principali di questa fami-
pare vettori di test per istruzioni del Boundary glia sono le seguenti: bassi costi per macrocella,
Scan allo scopo di analizzare, testare e debugga- architettura a pin-lock avanzata, ritardo di 5 nS,
re gli eventuali malfunzionamenti del sistema. frequenza massima di 178 Mhz, tre ingressi di
XC95288XV
XC95288XL
XC95144XV
XC95144XL
XC9536XV
XC9572XV
XC9536XL
XC9572XL
XC95288
XC95108
XC95144
XC95216
XC9536
XC9572
81
Caratteristiche
Pratica
5,
5, 7, 5, 7, 5, 10, 6, 6,
6, 5, 5, 7, 10, 5,
Speed Grades 7, 10, 7, 10, 7, 10, 15, 20 15, 7, 7,
10, 7 7 15, 20 7
10 15 10 15 10 20 10 10
15
Max I/O 34 36 36 72 72 72 108 133 117 117 166 192 192 192
Vcc (Volts) 5 3.3 2.5 5 3.3 2.5 5 5 3.3 2.5 5 5 3.3 2.5
Package type
VQ44 34 34 34 34 34
PC44 34 34 34 34 34 34
CS48 34 36 36 38 38
VQ64 36 52
PC84 69 69
TQ100 72 72 72 81 81 81 81
PQ100 72 81 81
CS144 117 117 117 117
TQ144 117 117
PQ160 108 133 133
FARE ELETTRONICA - OTTOBRE 2005
clock globali, ridotti tempi di programmazione e La serie contiene due dispositivi: la XPLA3 (con
cancellazione, eccetera. core a 3,3 V) e la Cool-Runner-II, alimentata a
1,8 V. L’architettura della XPLA3 consente di
La famiglia a 2,5V XC9500XV potersi interfacciare con dispositivi a 5V.
La caratteristica principale di questa famiglia è La tabella 2 riassume le caratteristiche di questi
rappresentata dall’alimentazione del core a 2,5 componenti.
V, che pertanto offre consumi ridotti del 30%
rispetto alla famiglia XL e costi inferiori. ALCUNE CONSIDERAZIONI
Ne è prevista una futura versione a 275 Mhz. PRATICHE
Per quanto riguarda le sperimentazioni hobbisti-
LA SERIE COOL RUNNER che, sono preferibili quelle CPLD che si possono
Le famiglie di CPLD Xilinx della serie montare su zoccolo e che si riescono ad ordinare
CoolRunner sono particolarmente interessanti. anche in quantità limitate e a costi contenuti.
Caratterizzate dai consumi estremamente ridot- La nostra serie di riferimento sarà la XC9500, in
ti, impiegano la tecnologia Fast Zero Power™, package PLCC a 44 pin.
che porta ad assorbire meno di 100 uA in stan- Come tool software per la sintesi prenderemo in
82
dby mode. In una dimostrazione ho visto ali- considerazione ISE Webpack, la cui disponibilità
mentare una di queste CPLD con una batteria
Pratica
CS144 108
TQ144 108 120 118
PQ208 164 172 180
FT256 164 212 212
CS280 164
FG324 220 260
Tabella 2 Serie Cool-Runner
TEORIA RISORSE SPECIALE PRATICA
Sesta parte
n° 243 - Settembre 2005
L’op-amp invertente L’amplificatore
Settima parte
n° 244 - Ottobre 2005
L’operazionale in corrente
alternata
operazionale
A Z
Ottava parte
n° 245 - Novembre 2005
L’amplificatore differenziale dalla alla
L a versatilità dell’op-amp
trova una esaltazione
nelle innumerevoli possibilità
di impiego in alternata.
E in entrambe le configurazioni
84 non invertente e invertente.
Teoria
7.1 GENERALITÀ
L’amplificatore operazionale quale componente Figura 7.1 Amplificatore con op-amp non invertente in c.a.
base nelle applicazioni lineari, viene utilizzato
sia in continua che in alternata. Nel primo caso, 7.2 AMPLIFICATORE CON
come si è visto negli articoli precedenti, la con- OP-AMP NON INVERTENTE IN
nessione fra la sorgente di segnale e l’ingresso ALTERNATA
dell’operazionale, così come fra l’uscita del- La figura 7.1 mostra una prima configurazione
l’operazionale e il carico, è diretta. dell’op-amp non invertente in alternata. Il con-
Nel secondo caso le stesse connessioni vengono densatore C1, unitamente alla resistenza R1, che
realizzate tramite condensatori di opportuna oltre a fornire il ritorno a massa per la corrente
capacità. di polarizzazione dell’input (+), fissa col suo
Questi condensatori fissano la frequenza di valore la resistenza di ingresso, costituisce un fil-
taglio inferiore fL della banda passante B il cui tro passa-alto con frequenza di taglio:
limite superiore, ossia la frequenza di taglio fH, è
in genere fissato da un altro condensatore in [7.2]
parallelo alla resistenza Rf. Si ha comunque:
Per il valore da attribuire alla capacità C1 si avrà
B = fH - fL [7.1] quindi:
[7.5]
Teoria
C1 ≥ 0,159 / (20 X 100000) = 79,5 nF
Figura 7.2 Risposta in frequenza dello stadio amplificatore
di cui alla figura 7.1
Co ≥ 0,796 / (20 X 5000) = 7,96 µF
C2 = 0,159 / (20000 X 10000) = 795 pF
Normalizzando, si porrà C1 = 82 nF e Co = 8,2 µF.
Le resistenze Rf e Ri del canale di reazione si cal- Il valore normalizzato inferiormente più prossi-
colano come già si è visto in precedenza. Qui mo è 680 pF. In assenza della capacità C2, la
sono state calcolate per un guadagno ACL = 10 e frequenza di taglio superiore dipenderà sol-
quindi posta la Rf = 10 kΩ, essendo ACL = 1 + (Rf tanto dal guadagno assegnato allo stadio
/Ri), si è calcolata la Ri: amplificatore (ossia dal valore attribuito alle
resistenze Rf e Ri) e dal guadagno ad anello
Ri = Rf / (ACL – 1) = 10000 / 9 = 1,1 kΩ aperto dell’operazionale utilizzato. La figura
7.2 riporta la risposta in frequenza dello sta-
L’integrato utilizzato in simulazione è l’LF353 il dio di cui alla figura 7.1. La frequenza di taglio
cui stadio differenziale di ingresso è a Fet. inferiore fL è di circa 20 Hz (Xb = 19,31 Hz) e la fre-
Ricorrendo a un op-amp con lo stadio di ingres- quenza di taglio superiore fH è di circa 22 kHz (Xa
so a BJT si sarebbe dovuta porre la R1 pari al = 22,3 kHz). La distanza fra il tratto orizzontale
parallelo della Rf con la Ri (~ 1 kΩ) e ricalcolare della curva di risposta e il livello 0 dB corrispon-
quindi C1 (più avanti si vedrà come sia possibile dente al livello del segnale di ingresso, ossia l’or-
svincolare il valore della resistenza R1, dai valori dinata Yd = 20 dB indica il guadagno dello stadio:
attribuiti alle resistenze Rf e Ri).
Il condensatore C2 limita la banda superiormen-
te e il suo valore va quindi calcolato in funzione
della frequenza di taglio fH. Essendo:
FARE ELETTRONICA - OTTOBRE 2005
[7.6]
Per Rf = 10 kΩ e fH = 20 kHz (limite superiore Figura 7.3 Risposta in ampiezza dello stadio amplificatore
di cui alla figura 7.1
della banda audio) si ricava:
TEORIA RISORSE SPECIALE PRATICA
La figura 7.3 riporta quindi l’andamento delle C3 = 0,159 / (fL · Ri) [7.7]
tensioni Vi e Vo. Alla prima è stato attribuito un
valore di 1 V da picco a picco. Il valore così ricavato, che discende dall’egua-
L’amplificazione dello stadio porta la tensione Vo glianza fra la reattanza di C3 e la resistenza Ri, si
di uscita a 10 V da picco a picco indicati dalla moltiplica almeno per cinque (o sei) in modo
posizione reciproca dei marker orizzontali c e d. che la stessa reattanza sia trascurabile rispetto al
È, infatti, (c – d) = 10,07 V. valore della resistenza Ri. Con riferimento allo
stadio della figura 7.4, per fL = 20 Hz, si ha:
86
7.2.1 Per rendere minimi Ios e Vos
C3 = 0,159 / (20 X 1100) = 7,22 µF
Teoria
e le correnti di polarizzazione
L’amplificatore in alternata presenta il vantag-
gio di rendere ininfluenti, o quantomeno tra- Moltiplicando per sei questo valore e normaliz-
scurabili, la corrente di offset e la tensione di zando al valore superiore si può porre C3 =47 µF.
offset. Come si è detto queste grandezze sono
continue e pertanto i condensatori C1 e Co 7.2.2 La resistenza R1 d’ingresso
azzerano la possibilità, il primo, di risentire di Si è già affermato che, prevalentemente nel
eventuali componenti continue o dal genera- caso si utilizzino amplificatori operazionali
tore, o da uno stadio che preceda lo stadio con stadio di ingresso a BJT, è necessario
amplificatore, e il secondo, di inviare compo- attribuire alla resistenza R1 un valore pari al
nenti continue a uno stadio successivo. Non parallelo delle resistenze Rf e Ri al fine di dimi-
rimane che da “tagliare” l’eventuale compo- nuire la tensione di offset dovuta alle corren-
nente continua di corrente che fluisce nella ti di polarizzazione.
resistenza Ri. A questo fine è sufficiente dispor- Con riferimento, per esempio, all’amplificato-
re, come mostra la figura 7.4, un condensato- re con guadagno pari a 10 di cui alla figura
7.1 nel quale è R1 = 100 kΩ, poiché per R1 vale
l’espressione:
Si ha per Rf:
Ri > R1
Teoria
Per esempio, per fL = 20 Hz, si ha:
Ma come si è già chiarito, è opportuno conte-
nere il valore della resistenza Rf dal momento C1 ≥ 0,159 / (20 X 10000) = 0,79 µF
che la tensione di offset è ad essa direttamen- => C1 = 1 µF
te proporzionale.
D’altra parte, ponendo, per esempio, Rf = 10 Per il calcolo della capacità Co valgono l’espres-
kΩe Ri = 1,1 kΩ per avere sempre un guada- sione [7.4] e le medesime considerazioni in
gno pari a 10, dovendo essere la resistenza R1 merito all’incremento da dare al valore teorico
eguale al parallelo della Rf con la Ri, si avrebbe calcolato. Si avrà quindi:
R1 = 990 Ω. Questo valore fornisce una resi-
stenza di ingresso piuttosto bassa (RiCL = R1) e Co ≥ 0,159 / (20 X 5000) = 1,59 µF
del tutto inaccettabile nel caso in cui la sor- => Co = 3,9 µF (o 4,7 µF)
gente di segnale dovesse avere una resistenza
interna non trascurabile. Ove sia opportuno limitare superiormente la
Da qui la necessità di svincolare la R1, che fissa banda passante ad una frequenza fH prestabilita,
il valore della resistenza di ingresso dello sta- si porrà in circuito il condensatore C2 per la cui
dio, dal valore delle resistenze Rf e Ri. capacità si ricorrerà all’espressione [7.6].
La soluzione è esposta nella figura 7.5 dove una Supponendo una fH = 20 kHz si ha:
resistenza R2 = R1 è posta fra l’ingresso inverten-
te e il punto di congiunzione della Rf con la Ri. C2 ≤ 0,159 / (20000 X 100000) = 79,5 pF
In tal modo entrambi gli ingressi vedono verso => C2 = 68 pF
massa una resistenza pressoché eguale.
L’ingresso (+) vede la R1, mentre l’ingresso (–) La resistenza Rp si porrà, per quanto già detto,
vede la resistenza [R2 + (Ri//Rf)] il cui valore è eguale al parallelo delle resistenze Rf e Ri (se Rf
FARE ELETTRONICA - OTTOBRE 2005
ta è in opposizione di fase rispetto alla tensione adattamento, ma, essendo il guadagno espres-
d’ingresso. so dal rapporto Rf/Ri, si avrebbe un eccessivo
L’amplificazione è indicata dalla posizione dei valore per la Rf che, come si è detto, dev’essere
marker orizzontali c e d. È infatti (c – d) = =10,01 sempre contenuto. Per esempio, se dovesse
V. La posizione reciproca dei marker verticali a e essere Rs = 200 kΩ, si dovrebbe porre per Ri, un
b indica la frequenza: è (a – b) = 1 kHz. valore di resistenza non inferiore a qualche MΩ,
ma per un guadagno, per esempio, eguale a 10,
si dovrebbe attribuire alla resistenza Rf un valore
pari a 10 volte Ri. Il risultato sarebbe senz’altro
inaccettabile.
Una soluzione efficace del problema è riportata
nella figura 7.9. Lo stadio amplificatore, per
esempio lo stadio della figura 7.6, è qui prece-
duto da un inseguitore di tensione che, quale
intrinseca caratteristica, ha una resistenza di
ingresso altissima ed è quindi in grado di evita-
re le perdite dovute a una resistenza elevata
della sorgente.
Nell’amplificatore di cui alla figura 7.6, si è fatto
Figura 7.6 Amplificatore con op-amp invertente in c. a.
FARE ELETTRONICA - OTTOBRE 2005
Figura 7.7 Risposta in frequenza dello stadio amplificatore Figura 7.8 Risposta in ampiezza dello stadio amplificatore
di cui alla figura 7.6 di cui alla figura 7.6
uso, in simulazione, dell’op-amp LF353 che, in La resistenza Rp di bilanciamento delle correnti
simulazione, ha presentato una resistenza di di polarizzazione di ingresso deve essere egua-
ingresso Rin = 24 GΩ e un guadagno AOL ad le a [(R1//R2) + R1]//Ri. Con i valori riportati in
anello aperto pari a 105 (100 dB). Poiché la figura si ha Rp = 3389 Ω. Si può porre Rp =3,3
resistenza di ingresso dell’inseguitore di tensio- kΩ. La figura 7.11 riporta, infine la curva di
ne è data dall’espressione: risposta in frequenza. L’ordinata Yd = 15 dB
indica il guadagno dell’amplificatore. A 15 dB
RiCL = Rin · AOL corrisponde un guadagno pari a 5,62. Questo
valore si era già ricavato per via analitica tra-
per la resistenza di ingresso del voltage follo- mite la [7.10].
wer che, nella figura 7.9, precede lo stadio La configurazione della figura 7.10 è talvolta
amplificatore, si ottiene: definita circuito moltiplicatore della resisten-
za di ingresso.
RiCL = 24 X 109 X 105 = 2,4 X 1015 = 2,4 PΩ
Esempio 7.1
(dove 1 PΩ = 1 Petaohm = 1015 Ω). Un’altra con- Si dimensioni un amplificatore in configurazio-
89
figurazione che consente elevata impedenza di ne invertente con guadagno pari a 50 e resi-
Teoria
ingresso e ampia possibilità di modificare il guada- stenza di ingresso RiCL = 100 kΩ.
gno pur con valori contenuti della resistenza Rf, è
riportata nella figura 7.10. Qui la rete a T posta fra Soluzione
l’uscita e l’ingresso invertente dell’operazionale è Poiché si richiede una resistenza di ingresso di
del tutto identica alla corrispondente della confi- 100 kΩ, è necessario porre Ri = 100 kΩ.
gurazione non invertente della figura 7.5. La resi- Ricorrendo al circuito classico riportato nella
stenza Rf in questo caso, è fornita dall’espressione: figura 7.6 per ACL = 50 e Ri = 100 kΩ, si dovreb-
[7.9]
[7.10]
Poiché l’ingresso invertente dell’op-amp posto R3 = R1, condizione non essenziale posta
“vede” una resistenza equivalente [(R1//R2) + nell’amplificatore di cui alla figura 7.12, ha
R1]//Ri = 32,18 kΩ, lo stesso valore, o un valo- espressione:
re molto prossimo (33 kΩ), deve essere attri-
buito alla resistenza Rp. [7.12]
La figura 7.12 riporta l’amplificatore qui dimen-
sionato, mentre la figura 7.13 fornisce la relati- Mentre la resistenza equivalente Rf è, in linea del
tutto generale, data dall’espressione:
[7.13]
[7.14]
Teoria
Ciò significa che la presenza del ramo Ci-R1,
almeno in parte vanifica il fine per il quale il vol-
tage follower era stato posto a monte dello sta-
dio amplificatore che era di disporre di una resi-
stenza di ingresso molto elevata.
Per ovviare a questo inconveniente si può ricor-
rere alla configurazione bootstrap, già molto
frequente negli amplificatori a BJT e a Fet. Figura 7.14 Voltage follower con op-amp in alternata
Prima parte
n° 244 - Ottobre 2005
Editor di ISIS - Piazzamento e
collegamento dei componenti
Seconda parte
Usare PROTEUS:
n° 245 - Novembre 2005
ISIS - Creazione dei componenti
ed editing avanzamento
Terza parte
n° 246 - Dicembre 2005
ARES - Tecniche di base per il
piazzamento e lo sbroglio di PCB
I SIS è il modulo di PROTEUS per griglia usando il comando Griglia nel menu
Visualizza, oppure premendo “G”, o ancora,
la stesura degli schemi elettrici. cliccando sull’icona Griglia nella barra strumen-
In questo tutorial vedremo come ti. La griglia è un utilissimo strumento che per-
mette di allineare perfettamente i componenti
utilizzarlo al meglio illustrando le
e i vari collegamenti. Al di sotto della finestra
funzioni principali. Ovviamente si Anteprima trovate l’Object Selector per mezzo
presuppone che il pacchetto del quale è possibile selezionare componenti,
92
simboli e altri oggetti dalla libreria di parti.
PROTEUS sia stato installato
Pratica
Prelevare i Componenti
UN RAPIDO SGUARDO Cliccate sul pulsante P in alto a sinistra del
ALL’EDITOR DI ISIS Object Selector come mostrato in figura 1. Ciò
L’ampia area di disegno nella finestra di ISIS è causa l’apertura della finestra di dialogo
chiamata area di Editing - in tale area saranno Sfoglia Librerie.
posizionati e collegati i componenti o le parti. Potete anche aprire la suddetta finestra di dia-
L’area più piccola in alto a destra è chiamata logo tramite l’icona sfoglia librerie oppure
Anteprima. Normalmente l’Anteprima visualiz- mediante la sequenza di tasti appropriata (per
FARE ELETTRONICA - OTTOBRE 2005
za, come il nome stesso suggerisce, un’antepri- default il tasto è “P”, anche se questo può esse-
ma dell’intero disegno - il riquadro blu mostra re ridefinito tramite il comando Imposta map-
i contorni del foglio di disegno, mentre il riqua- patura tastiera nel menu Sistema). Il passo suc-
dro verde indica l’area del foglio visualizzato cessivo è quello di
attualmente nell’area di Editing. Tuttavia, quan- trovare il compo-
do ISIS è nella modalità di selezione compo- nente desiderato
nente tramite Object Selector, l’Anteprima visua- nelle librerie.
lizza l’anteprima del componente stesso, come La ricerca del com-
vedremo più avanti. ponente può esse-
Figura 1 Il pulsante Sfoglia Librerie
Nell’area di Editing è possibile visualizzare una re effettuata in
Editor di ISIS:
piazzamento
e collegamento
dei componenti di Maurizio Del Corso
[email protected]
molti modi. Nel caso il nome della parte stessa che contengono i termini della ricerca che
sia conosciuto è generalmente consigliabile ini- avete effettuato. Per i nostri scopi il compo-
ziare da questo. Provate quindi ad inserire nente “MINRES12K” sarà più che sufficiente -
“741” nel campo di ricerca Parole chiave. selezionatelo dalla libreria allo stesso modo
Troverete naturalmente molte parti in cui è visto in precedenza.
contenuta la stringa “741”, sia nel nome che Potremmo usare a questo punto lo stesso pro-
nella descrizione, tuttavia è possibile restringe- cedimento per i rimanenti resistori, tuttavia cer-
re il campo di ricerca selezionando la categoria cheremo di scoprire altre tecniche per la ricer-
93
“Operational Amplifiers”, così come mostrato ca dei componenti disponibili. E’ ragionevole
Pratica
in figura 2: pensare che la stessa logica e convenzione sia
comune a tutte le parti in libreria. Infatti, se
usiamo la chiave di ricerca “MINRES1” noi non
facciamo altro che filtrare il risultato in modo
tale da ottenere tutti i resistori MINRES che ini-
ziano per 1 e quindi poter prelevare con facili-
tà i valori da 1k, 10k, 15k e 100k.
Un altro metodo più generico è quello di cerca-
re la parte desiderata attraverso il sistema di
indici di categoria.
Ciò è utile quando elencando la lista delle parti
disponibili non siete sicuri del nome della parte
o della sua descrizione. Provate quindi a cancel-
lare il testo dal campo Parole chiave e seleziona-
te la Categoria “Resistors”. Scorrendo i risultati
Figura 2 Finestra di Dialogo Sfoglia librerie
verso il basso dovreste vedere la serie di resisto-
ri MINRES. Selezionate e prelevate i valori da
Finalmente, prelevate il componente “741” 56k e 68k all’interno del vostro circuito nel
cliccando due volte sulla corrispondente riga modo ormai consueto ed infine chiudete la
della lista dei risultati. Il nome della parte appa- finestra di dialogo.
rirà nel Object Selector. Val la pena di notare come si possa ricorrere a
Abbiamo selezionato il “741” per il nostro cir- queste tecniche in tandem. Ad esempio, potre-
cuito, ora abbiamo bisogno di alcuni resistori. ste aver introdotto “1k” nel campo di descrizio-
FARE ELETTRONICA - OTTOBRE 2005
Nella fattispecie, abbiamo necessità dei valori ne e poi aver selezionata la categoria Resistors
1k, 10k, 12k, 15k, 56k, 68k e 100k. Ciò ci per- per rifinire i risultati così ottenuti.
mette di familiarizzare con i vari meccanismi di La descrizione fornita (per completezza) dei
ricerca accessibili mediante la finestra di dialo- vari metodi di ricerca di un componente non
go Sfoglia librerie. deve spaventare; troverete velocemente il
Una tecnica utilissima per trovare una parte in meccanismo a voi più consono ed il prelievo
libreria è la ricerca mediante una chiave di dei componenti dalla libreria per i vostri cir-
ricerca coerente con la parte stessa. Provate a cuiti diventerà un problema di secondaria
cambiare il testo della chiave in “12k resi- importanza.
stor”. Dovreste vedere una lista di risultati Ora che abbiamo prelevato i nostri componen-
PRATICA TEORIA RISORSE SPECIALE
Pratica
minale di R1 seguendo lo schema elettrico. “-12V” ed infine collegato al pin 4 dell’op-amp.
Provate inoltre ad evidenziare un componente Ora, posizionate il terminale Ground, assicuran-
per poi spostarlo, osservando come WAR ripo- dovi che la sua anteprima sia correttamente
siziona i collegamenti in accordo alla nuova orientata, e posizionatelo esattamente sotto R1.
posizione dei componenti stessi. Selezionate il terminale Default dalla lista e
Se non siete soddisfatti del percorso che WAR posizionate due terminali come da schema, eti-
ha scelto per il collegamento, potete anche edi- chettandoli come “DAC1” e “DAC2”. Infine
tarlo manualmente. collegate il terminale di massa al pin inferiore di
Per farlo, evidenziate il collegamento (il concet- R2 e i due terminali Default ai vertici dei colle-
to è simile ad ogni oggetto evidenziato di ISIS, gamenti che entrano nell’op-amp. ISIS posizio-
quindi puntate il collegamento e cliccate il pul- nerà le giunzioni quando necessario automati-
sante destro del mouse) provando poi a trasci- camente, verificando che tre collegamenti si
narlo inizialmente dagli angoli e quindi dalla incontrano in questi punti.
posizione mediana.
Se volete collegare manualmente (evitando ETICHETTE
WAR), potete semplicemente cliccare con il Avrete notato che tutte le parti posizionate
pulsante sinistro sul primo pin e ancora per cia- finora sullo schema hanno un numero di riferi-
scun punto, lungo il percorso, in cui volete un mento unico ed un valore. Il riferimento unico
vertice, e infine terminare cliccando sul secon- è impostato da una caratteristica di ISIS chia-
do pin da collegare. Dopo un po’ di pratica, mata Annotazione in tempo reale che può esse-
avrete la netta sensazione di quando WAR può re trovata nel Menu Strumenti e che risulta abi-
essere usato utilmente e quando, viceversa, è litata per default.
più utile evitarlo. Quando abilitata, essa annota i componenti
FARE ELETTRONICA - OTTOBRE 2005
Per completare la prima sezione del circuito, così come questi vengono posizionati nello
dovrete ancora piazzare e collegare alcuni ter- schema, risparmiando tempo e sforzo nel farlo
minali. Nello specifico, abbiamo bisogno di due manualmente.
terminali generici, una massa e un terminale di E’ possibile controllare sia la posizione che la
alimentazione. Selezionate l’icona terminali - visibilità di tali etichette - potete cambiarne i
l’Object Selector dovrebbe mostrare l’elenco dei valori, spostarne la posizione o nasconderle se
terminali disponibili come indicato in figura 5. reputate non sia necessario visualizzarle.
Ora posizioneremo e cableremo l’alimentazio- La discussione che segue spiega in dettaglio
ne dell’Op-amp. Selezionate il terminale Power, come manipolare le etichette di un particolare
assicurandovi che esso sia correttamente orien- componente.
PRATICA TEORIA RISORSE SPECIALE
Editare le Etichette dei Componenti Anche se il Real Time Snap di ISIS è in grado di
Se ingrandite uno dei resistori posizionati sullo localizzare pin e collegamenti posti non esatta-
schema, noterete che ISIS lo ha etichettato con mente sulla griglia, lavorare in modo coerente
un riferimento di parte unico (es. “R1”) ed con lo stesso valore di snap e griglia aiuta a
anche con un Valore (es.”1k”). Potete editare tenere ordinati e puliti gli schemi.
entrambi i valori e la visibilità di tali campi tra-
mite la finestra di dialogo Modifica EDIT DI INTERE SEZIONI
Componente. A tale scopo selezionate l’icona CIRCUITALI
Modifica e cliccate con il pulsante sinistro su Avrete notato che la sezione di circuito che
uno dei resistori. Appare una finestra di dialogo avete disegnato finora è localizzata al centro
mediante la quale potete editare sia il numero dello schermo, mentre essa dovrebbe essere
di riferimento parte che, come in questo caso, nell’angolo in alto a sinistra.
il valore di resistenza. Per spostare la sezione in quel punto occorre
Di maggior interesse sono comunque le opzio- evidenziare tutti gli oggetti che avete posizio-
ni sulla visibilità. Può essere utile, specialmente nato tracciando intorno ad essi un rettangolo
in schemi ad alta densità di componenti, di selezione: a tale scopo puntare il primo ver-
96
nascondere alcuni dettagli a lato dei compo- tice del rettangolo in alto a sinistra di tutti gli
nenti stessi - il compromesso è che dovrete poi
Pratica
modalità Shift Pan (ovvero tendo premuto il riferimento (rammentate di selezionare dalla
tasto SHIFT e sbattendo il puntatore sui bordi libreria parti un “1n5 Ceramic Capacitor”) in
dell’aera di editing). modo da avere quattro filtri in totale, corri-
spondenti, cioè, al circuito di riferimento usato
LA PRATICA RENDE PERFETTI nel presente tutorial. Come in precedenza, allo
Ora che avete acquisito i rudimenti, potete scopo di conformarvi al circuito di riferimento,
migliorare disegnando la sezione circuitale dovrete sostituire nelle nuove sezioni appena
incentrata sull’op-amp U2:A e riportata in copiate i resistori aventi valore diverso.
figura 7. Completati e posizionati i quattro filtri, ultima-
Iniziate selezionando dalla libreria di parti il te i collegamenti tra loro e posizionate sullo
condensatore e il TL074 usando i metodi schema un deviatore SW-SPDT (SW1).
discussi in precedenza. Per aiutarvi, diremo che
usiamo dei condensatori ceramici nello sche- ANNOTARE UNO SCHEMA
ma, quindi cercate nella libreria un “ceramic ISIS fornisce quattro possibili modi per annota-
220pF capacitor”. Usate le varie tecniche di re (denominare) componenti:
editing che avete imparato fino ad ora in
98
modo che tutti i componenti siano posiziona- ● Annotazione Manuale - È il metodo che avete
ti nel modo corretto. già usato per etichettare il primo op-amp e il
Pratica
Una volta terminata la sezione del filtro in resistore. Qualsiasi oggetto può essere edita-
modo soddisfacente, evidenziate l’intera sezio- to sia selezionando l’icona Modifica cliccan-
ne usando il procedimento noto e la funzione dovi sopra con il pulsante sinistro del mouse,
Copia Blocco per farne una seconda copia che che cliccando prima con il tasto destro (evi-
posizionerete a destra. Notate che nel circuito denzia) e poi con quello sinistro nella moda-
di riferimento le due sezioni sono identiche ad lità standard di posizionamento.
eccezione di alcuni resistori. Selezionate quindi Qualunque modo voi scegliate, apparirà una
“MINRES12k” dall’Object Selector e spostate il finestra di dialogo che userete per introdurre
puntatore del mouse sul resistore da sostituire le relative proprietà come Riferimento parte,
di 15k, posto nella sezione di destra appena Valore e così via.
copiata. Premete il pulsante sinistro del mouse ● Strumento Assegnazione proprietà (PAT) -
dentro il corpo del resistore esistente allinean- Questa opzione permette di generare eti-
done i pin - ciò sostituirà la MINRES15k esisten- chette per qualsiasi oggetto di ISIS e consen-
te con la MINRES12k selezionata, mantenendo te anche di generare sequenze di etichette
i collegamenti già in essere. sia nel foglio di lavoro attuale che in tutti i
Potete fare la stessa cosa sostituendo il resisto- fogli del progetto.
re da 100k con uno da 10k. ● Annotazione Automatica - permette di annota-
Ripetete tale procedimento con le due sezioni re automaticamente il circuito più complesso,
di filtro rimanenti poste in basso nel circuito di in un attimo. L’opzione considera natural-
mente anche quelle parti a sezione multipla
come ad esempio la porta TTL NAND 7400,
annotando le varie porte in modo opportuno.
FARE ELETTRONICA - OTTOBRE 2005
Pratica
ISIS fornisce l’opzione di annotazione automa-
Strumento di Assegnazione tica che deciderà per voi i riferimenti unici di
Proprietà (PAT) parte dei componenti nel vostro schema. Esso
Supponiamo di voler annotare alcuni resistori può essere usato per annotare tutti i compo-
da R5 in avanti usando il comando PAT. Avremo nenti o solo quelli che non lo sono ancora -
quindi bisogno di generare una sequenza che quelli, cioè, con un “?” nel campo riferimento.
inizia da R5 in poi (R5, R6, R7, ecc.). Lo strumento di Annotazione Automatica ha
Selezioniamo allora l’opzione Strumento due modalità operative:
Assegnazione proprietà nel Menu Strumenti. Nel Incrementale: ha effetto su quei componenti
campo Stringa, digitare REF=R, quindi spostia- (progetto o foglio attuale) che non sono stati
mo il cursore sul campo successivo Valore e ancora annotati. Totale: Tutti i componenti
digitiamo il valore 5. Assicuriamoci che l’opzio- (progetto o foglio attuale). Tutti i componenti,
ne Al Click sia selezionata ed infine clicchiamo eccetto quelli aventi sezioni eterogenee multi-
sul pulsante OK oppure premiamo ENTER. ple saranno annotati. Poiché non abbiamo
Ogni volta che PAT assegna una stringa all’og- parti di questo tipo nel nostro schema useremo
getto da annotare, il carattere cancelletto (“#”) lo strumento Annotazione Automatica in moda-
nel campo Stringa sarà sostituito dall’attuale lità Totale. Per far ciò, chiamiamo il comando
valore digitato nel campo Valore e successiva- Annotazioni nel Menu Strumenti, selezioniamo
mente questo sarà automaticamente incremen- l’opzione Totale, e finalmente clicchiamo su
tato. Ciò è mostrato nella figura 8. OK. Lo schema sarà ridisegnato e rifletterà le
ISIS imposta automaticamente la modalità modifiche appena effettuate.
Modifica in modo che possiate annotare la parte
cliccando semplicemente con il pulsante sinistro NEL PROSSIMO NUMERO
FARE ELETTRONICA - OTTOBRE 2005
del mouse su di essa. Puntate ad esempio su R7 Nel prossimo numero ci occuperemo della
e premete il pulsante sinistro del mouse. PAT creazione di nuovi dispositivi, della definizione
annota il resistore in R5 e la parte è ridisegnata. dei loro terminali, e dell’associazione ad uno o
Fate lo stesso con il vecchio resistore denomina- più contenitori (package) da usare nella realiz-
to ancora R5 e notate come il campo Valore del zazione del circuito stampato. Nei numeri suc-
PAT si incrementa and annota il resistore in R6. cessivi vedremo come realizzare un PCB utiliz-
Potete ora annotare i resistori rimanenti. Provate zando gli strumenti di piazzamento e sbroglio
questo strumento fintanto che non vi è chiara la automatici, come estrarre i file gerber e vedre-
modalità di funzionamento - anche se un po’ mo come simulare un circuito utilizzando il
macchinoso all’inizio, PAT è uno strumento VSM di Proteus.
TEORIA RISORSE SPECIALE PRATICA
Nona parte
n° 243 - Settembre 2005
Alimentatori
Switching flyback e l’isolamento
ingresso-uscita
Decima parte
n° 244 - Ottobre 2005
switching:
Switching flyback multi-uscita
Undicesima parte
n° 245 - Novembre 2005
Analisi di uno switching off-line
(parte I)
off-line. Infine, sfrutteremo quanto rente, che è semplicemente data dalla corrente
totale divisa per la sezione:
detto per realizzare un interessante
alimentatore a 3 uscite, +5V, d=I/S
d in A/m , I in Ampere, S in m2 (sezione)
2
+12V, -12V. Buona lettura!
La densità di corrente deve essere minore
oppure uguale ad un limite standard.
diventa facile calcolare la densità di corrente valori di corrente massima, a seconda della sezio-
consigliata: ne del filo in mm2, per entrambe le due densità
citate, quella standard e quella più “prudente”.
d = 500 * 5,067e-4 = 0,253 mm2/Ampere
(500 circular mils/Arms) ISOLAMENTO INGRESSO-USCITA:
CONSIDERAZIONI AVANZATE
oppure Nella scorsa puntata ho appena accennato
all'estrema importanza dell'isolamento tra le
101
d = 700 * 5,067e-4 = 0,355 mm2/Ampere tensioni di ingresso e di uscita, in un alimenta-
Teoria
(700 circular mils/Arms) tore switching. L'isolamento diventa assoluta-
mente indispensabile, in applicazioni consumer
Il secondo valore è estremamente conservativo: (es. DVD, televisori, PC) quando il nostro ali-
onde evitare grossi avvolgimenti noi useremo la mentatore è del tipo off-line, cioè collegato
prima delle due espressioni precedenti. direttamente alla rete elettrica.
In pratica questa espressione dice che per ogni
Ampere di corrente che vogliamo far scorre nel- Esaminiamo in figura 1 lo schema di principio di
l'avvolgimento, dobbiamo avere almeno 0,253 uno switching off-line, in topologia flyback. Per
mm2 di sezione di filo. Alternativamente si può prima cosa, incontriamo sulla sinistra un classi-
affermare che, attraverso un filo di sezione pari a co rettificatore a doppia semionda, seguito dal
1mm2, possiamo far scorrere una corrente massi- condensatore di livellamento che trasforma la
ma di 1 / 0,253 = 3,947A. La tabella 1 fornisce i tensione pulsante a 100Hz in una quasi-conti-
Diametro filo Sezione filo Corrente max “standard” Corrente max “prudente”
[mm] [mm2] [Arms] [Arms]
0,10 0,008 0,03 0,02
0,20 0,031 0,12 0,09
0,30 0,071 0,28 0,20
0,40 0,126 0,50 0,35
0,50 0,196 0,78 0,55
0,60 0,283 1,12 0,80
FARE ELETTRONICA - OTTOBRE 2005
nua. Calcoliamo la tensione quasi-continua senta l'incremento percentuale del 15% della
disponibile, supponendo una tensione di rete VAC nominale. Quindi:
nominale di 230VAC. Ai neofiti ricordo che per
valore nominale della tensione di rete, si inten- la tensione di lavoro del condensatore di
de sempre la tensione alternata efficace o ingresso in uno switching off-line per la tensio-
RMS. Per ottenere la tensione di picco, occorre ne di rete nominale di 230VAC, deve essere
moltiplicare la tensione efficace per una costan- pari ad almeno 375V.
te pari alla radice quadrata di 2, che vale circa Per garantire un certo margine di sicurezza
1,4142. Otteniamo quindi: ed incrementare la vita operativa del con-
densatore, è comune scegliere tensioni di
VPICCO,NOM = VRMS * 1,4142 = lavoro di 400V.
= 230 * 1,4142 = 325VDC
Dopo questa necessaria premessa, riprendiamo
che rappresenta il valore nominale dell'alta ten- la figura 1. Facciamo un elenco dei vincoli che
sione continua, presente sul collegamento evi- un tale schema di principio, seppur semplice, si
denziato in rosso in figura 1. Ho volutamente porta appresso:
102
trascurato la caduta di tensione sui diodi del
ponte, che vale 2 * VD = 2V circa, ininfluenti 1. Il controller (ad esempio di tipo PWM) deve
Teoria
rispetto a 325. Notate che per la tensione alter- essere alimentato per poter funzionare cor-
nata di rete, è buona norma considerare una rettamente. Sinora il controller è stato sem-
tolleranza di +-15% rispetto al valore nominale. pre alimentato dalla tensione di ingresso.
Nel caso peggiore avremo quindi sul condensa- Purtroppo in questo caso abbiamo a
tore di ingresso, una tensione continua pari a: disposizione una tensione di ingresso
enormemente più alta di quella massima
VPICCO,MAX = VRMS * 1,15 * 1,4142 = di funzionamento dei circuiti integrati.
= 230 * 1,15 * 1,4142 = 374VDC Quest'ultima vale di norma 30/40V, e solo in
casi particolari può arrivare a 60V o più. È
Ricordo che il fattore moltiplicativo 1,15 rappre- necessario quindi generare una “bassa”
FARE ELETTRONICA - OTTOBRE 2005
Teoria
occorre aggiungere la corrente necessaria per
caricare/scaricare, alla frequenza di switching, il Assolutamente non accettabile, a meno di non
gate del MOSFET. voler costruire una..stufa!!
Ipotizziamo a spanne un consumo totale di Ok, possiamo costruire un alimentatore di sup-
40mA, alla tensione di funzionamento tipica del porto, a bassa potenza, di tipo lineare per sem-
controller, pari ad esempio a VCC = 20V. plicità, che fornisca i 20V a bassa corrente,
Se avete pensato ad una semplice resistenza tra come in figura 2.
l'alta tensione (375V) e il controller...la risposta è
NO! Vediamo perchè applicando la legge di Ohm: Questa soluzione viene realmente impiegata
Figura 2 Schema di principio di uno switching off-line non isolato, con alimentatore ausiliario
TEORIA RISORSE SPECIALE PRATICA
in alcuni alimentatori di alta potenza (dell'ordine Per la sua costituzione, il trasformatore può solo
dei kW), in quanto torna utile avere una tensio- trasportare un segnale in AC, e questo lo esclu-
ne di servizio, sempre disponibile anche quando de immediatamente dal novero delle possibilità,
lo switching principale è spento. Tuttavia non è per gli schemi di figura 1 e 2. L'unica possibilità
ancora accettabile in un alimentatore “consu- rimasta è l'optoisolatore, ed infatti è quello che si
mer”, per i quali il costo finale del prodotto è usa normalmente, come in figura 3.
determinante. Ciò non diminuisce la sua validi-
tà per i vostri alimentatori hobbistici... vedremo Cosa è un
comunque più avanti altre alternative.
optoisolatore
Vincoli 2 e 3: È un dispositivo costituito da una sor-
Questi due vincoli sono contrastanti...vogliamo gente luminosa a LED, in genere infra-
che le masse siano isolate e contemporanea- rosso (quindi non visibile), che emette
mente riportare al controller l'informazione sul- verso un dispositivo fotosensibile, come
l'entità della tensione CONTINUA di uscita. un fotodiodo, un fototransistor, eccete-
In generale, l’isolamento galvanico può essere ra. In genere i due dispositivi sono
104
ottenuto in due modi: inglobati in un contenitore plastico tipo
Teoria
Figura 3 Schema di principio di uno switching off-line ISOLATO, con alimentatore ausiliario
TEORIA RISORSE SPECIALE PRATICA
Il LED interno all'optoisolatore viene attivato dal comporta come un secondario, cioè si attiva
comparatore quando la tensione di uscita supe- quando il primario è OFF, notate i “pallini”), il
ra un valore predefinito. La luce emessa, colpen- quale durante il funzionamento fornisce dei pic-
do il dispositivo fotosensibile, lo attiva. chi di tensione, che rettificati e livellati da un
Nel caso di figura 3, il fototransistor NPN chiu- condensatore, alimentano il controller.
derà verso massa il piedino di feedback del con- Questo avvolgimento, per ovvi motivi, viene
troller, trasferendogli così l'informazione sul spesso indicato come avvolgimento ausiliario
livello della tensione di uscita. (auxiliary winding in inglese).
Tutto ok?
NOTA Ebbene, ancora no! Ci si presenta la versio-
L’inserimento dell'optoisolatore nell'anello ne elettronica del dilemma dell'uovo e della
di feedback, altera considerevolmente i cal- gallina: il controller ha bisogno di oscillare
coli sulla stabilità, che diventano ancora più per generare la tensione che serve a farlo
complicati rispetto al caso standard, senza funzionare! Niente paura, il problema viene
optoisolatore. risolto brillantemente con un piccolo aiuto
Per i più esperti segnalo che trattazioni analiti- “esterno”, come in figura 5.
106
che sono reperibili sul Web.
L'aiuto è costituito dalla resistenza Rstart, indica-
Teoria
A questo punto abbiamo soddisfatto tutti i vin- ta nel cerchio rosso... Confusi?
coli precedenti, ma resta il problema della scar- A differenza di quanto discusso a proposito
sa ottimizzazione... Come fare? del Vincolo 1, dove avevamo mostrato che
Beh, pensate che, durante il funzionamento, una soluzione siffatta, con una resistenza
avete a disposizione delle bellissime oscillazioni verso l'alta tensione, era impraticabile, ora la
sul primario del trasformatore... perchè non uti- resistenza può avere un valore molto più
lizzarle per realizzare l'alimentatore ausiliario? elevato (quindi poca potenza dissipata), in
È quello che viene fatto in figura 4. quanto deve solo fornire la poca corrente
necessaria alle prime oscillazioni. Una volta
Come vedete, basta aggiungere un altro avvol- partita l'oscillazione primaria, l'energia
gimento dal lato del primario (che in realtà si necessaria per il funzionamento del con-
FARE ELETTRONICA - OTTOBRE 2005
Figura 4 Schema di principio di uno switching off-line ISOLATO, SENZA alimentatore ausiliario
107
Teoria
Figura 5 Schema di principio (I) di uno switching off-line ISOLATO
Importante
Mi auguro che tra i miei lettori ci siano anche molti neofiti. Particolarmente a questi, ma non
solo, mi permetto di fornire i sequenti consigli:
Non eseguite prove o misure su switching off-line se non siete più che esperti negli
aspetti di sicurezza elettrica.
I condensatori di filtro possono restare carichi anche per diversi secondi dopo lo spegni-
mento del dispositivo, e l'alta tensione residua può risultare mortale.
Ricordate sempre di interrompere ambedue i collegamenti dello switching alla rete
(interruttore doppio). Collegate una spia luminosa a valle dell'interruttore, in modo da
avere l'immediato feedback visivo dello stato di alimentazione dello switching.
Ricordate che non potete collegare un oscilloscopio direttamente all'ingresso dello swit-
ching off-line (ad esempio per osservare le forme d'onda sui pin del controller), perchè in
genere lo chassis dell'oscilloscopio, che di norma è a terra, coincide con la massa
FARE ELETTRONICA - OTTOBRE 2005
(*) Trasformatore con rapporto spire tra primario e secondario pari a 1. Non altera quindi il valore della tensione di rete, ma
isola galvanicamente il carico. Vari modelli, che si differenziano in genere per la potenza disponibile, sono reperibili sui catalo-
ghi RS e Distrelec.
puntata precedente, il secondario del flyback viene
attraversato da corrente solo quando il primario è
OFF. In parole semplici, durante la fase ON, la
“pompa” del primario carica il serbatoio magneti-
co, poi si scollega e subito dopo il serbatoio si
“svuota” sul secondario. Supponiamo che il con-
troller regoli alla perfezione una tensione di 5V sul
secondario numero 1, composto da 10 spire. È
evidente che, se avvolgiamo un altro seconda-
rio da 20 spire sullo stesso nucleo, vale la rego-
la dei trasformatori: ai suoi capi comparirà il
doppio della tensione del primo, cioè 10V.
VIN,NOM = 24VDC ±25%, cioè:
È normale che la regolazione (stabilità alle VIN,MIN = 18VDC
variazioni del carico, ad esempio) delle uscite VIN,MAX = 30VDC
non controllate sarà molto peggiore dell'unica
109
uscita controllata; tuttavia nella maggioranza dei VOUT1 = 5VDC
Teoria
casi questo non è un problema. Nell'alimentatore IOUT1,MAX = 1A
triplo che presenterò più avanti, la tensione di 5V,
usata ad esempio per alimentare un microproces- VOUT2 = 12VDC
sore, sarà regolata dal controller, mentre le altre IOUT2,MAX = 0,2A
due tensioni di +-12V potranno servire per ali-
mentare degli op-amp, che non richiedono noto- VOUT3 = -12VDC
riamente un'elevata stabilità. IOUT3,MAX = 0,2A
“FLYBACK” MULTIUSCITA:
PARAMETRI DI PROGETTO TIPOLOGIA “FLYBACK”
Supponiamo di voler realizzare un alimentatore MULTIUSCITA: CALCOLI
switching, di tipo “flyback”, multiuscita, avente 1. Calcoliamo la potenza di uscita massima per
le seguenti caratteristiche: ciascuna uscita:
POUT1,MAX = VOUT1 * IOUT1,MAX = 5 * 1 = 5W come al solito, se alla fine questa ipotesi dovesse
POUT2,MAX = VOUT2 * IOUT2,MAX = 12 * 0,2 = 2,4W risultare troppo distante dalla realtà, sarà possi-
POUT3,MAX = |VOUT3| * IOUT3,MAX = 12 * 0,2 = 2,4W bile tornare a questo passo sostituendo il valore
più corretto. Nel caso di utilizzo di tipologia di
La potenza totale sarà data semplicemente controllo Current Mode, utilizziamo il valore
dalla somma delle precedenti: massimo del 45% per il duty-cycle, quindi TON =
0,45 * (1 / fSW), e sostituendo otteniamo:
POUT,MAX = POUT1,MAX + POUT2,MAX + POUT3,MAX =
= 5 + 2,4 + 2,4 = 9,8W PIN,MAX = 0,5 * (18 – 1)2 * 0,452 * (1 /fSW)2 * fSW / Lp
2. Ipotizziamo l'efficienza η pari al 75% e calco- Questo valore deve essere maggiore o
liamo la potenza massima assorbita dall'in- almeno uguale al valore desiderato, cioè
gresso: 13,067W. Effettuando i calcoli e semplifican-
do, si ottiene la:
PIN,MAX = POUT,MAX / η = 9,8 / 0,75 = 13,067W
Lp * fSW ≤ 2,239
110
3. Ad ogni ciclo ON, l'energia immagazzinata
nel trasformatore (cioè nell'induttanza del Ormai sapete a memoria cosa fare: tabuliamo i
Teoria
primario) si calcola con la: risultati per varie frequenze (tabella 2).
BMAX = VIN * TON / (N * Amin) ≤ BSAT 0,5mm, alla solita frequenza di 80kHz.
Il primario sarà ancora costituito da numero
dove VIN = VIN,MIN = 17V, TON = 0,45 * (1 / fSW), Amin 16 spire, ma la corrente di picco aumenterà
= 31,6mm2 per il nucleo E20. Supponiamo che BSAT fino a 3,415A. Per questo motivo la Rsense
possa raggiungere al massimo 0,2 Tesla, cioè 200 deve scendere al valore di almeno 0,27Ω
mT. Riportiamo le densità di flusso calcolate, per (nello switching singolo della puntata prece-
ciascun nucleo/frequenza, in tabella 4. dente era pari a 0,47Ω). Analogamente il
valore del condensatore C1 è incrementato
Notate come il nucleo con gap = 0,25mm, per sopportare il maggiore carico.
entri in saturazione a qualunque frequenza! Con questa corrente di picco (che è sicura-
mente maggiore della RMS, ma lasciamo un
Useremo quindi il nucleo con gap pari a certo margine di sicurezza), la tabella 1 forni-
30 74,6 21 27
40 49,8 17 22
50 44,8 16 21
60 37,3 15 19
70 32,0 14 17
80 28,0 13 16
90 24,9 12 15
100 22,4 11 15
Tabella 3 Numero di spire necessarie per ogni nucleo e frequenza
Teoria
nua di 5V. Questo implica che la tensione di zione delle tipologie di pratico utilizzo per lo
picco, ai capi del trasformatore e prima del scopo di questo corso base. Ciò non vuole dire
diodo D2, sarà pari a 5 + 0,5 = 5,5V. che abbiamo esaurito tutte le possibilità! Anzi,
2. Se Ns1 = 5 spire corrispondono a 5,5V, quan- possiamo dire di avere solo cominciato, ma il
te spire saranno necessarie per ottenere 12 + tempo e lo spazio sono tiranni...Nelle ultime
0,5 = 12,5? due puntate del corso descriverò in dettaglio un
Usiamo il valore di 12,5V in modo da tenere alimentatore off-line commerciale, scendendo
conto della caduta sui diodi D1 e D3. nei dettagli della componentistica utilizzata,
3. Il calcolo si traduce è una semplice propor- pezzo a pezzo. Vi chiedo quindi un ultimo sfor-
zione: 5 : 5, 5 = Ns2 : 12,5 da cui si ricava zo, ne varrà la pena. Alla prossima!
Modulatore
anche per “diffondere” il segnale sull’intero 5 volt e di quella per il diodo varicap di 30
impianto antenna della nostra abitazione, in volt. Per quest’ultima abbiamo preferito uti-
modo da vedere le immagini in diverse stan- lizzare, invece di un alimentatore con uscita
ze anche distanti tra di loro. 30 volt, un piccolo elevatore che trasforma la
L’utilizzo di questo circuito va però oltre le tensione di base del circuito da 5 a 30 volt
applicazioni descritte sopra: immaginate ad per permettere l’uso del modulatore anche in
esempio di voler diffondere le immagini di “portatile”.
una microcamera posta sopra la vostra porta La tensione in ingresso (pari ad almeno 9
di ingresso oppure in giardino in modo da volt) attraversa prima, tramite il diodo D1,
tenere tutto sotto controllo da qualsiasi uno stabilizzatore ti tensione (IC2) che la
TV
di Massimo Divito
[email protected]
porta a 5 volt utile ad alimentare IC1 ed il switch SW1 e, dopo aver verificato che sia
modulo, e poi tramite l’impedenza-filtro L2 compreso tra il 21 ed il 69, invia al modulo,
raggiunge IC3 che si occupa, come già tramite il bus i2c, il comando per impostare
detto, di elevare la tensione dai 5 ai 30, volt la frequenza prescelta e conferma la corretta
necessari al modulo per coprire l’intera impostazione tramite l’accensione del diodo
gamma TV UHF. led DL1; i comandi I2C inviati dal PIC rag-
All’accensione del circuito IC1 si preoccupa giungono il circuito integrato TDA8722 pre-
di leggere il canale impostato tramite il dip- sente nel modulo che ha il compito di gene-
115
Pratica
FARE ELETTRONICA - OTTOBRE 2005
Modulatore TV
C9 22 µF 16 V elettrolitico L1 220 µH
C12 47 µF 16 V elettrolitico L2 1 mH
Pratica
29 OFF ON OFF ON OFF OFF ON 54 ON OFF ON OFF ON OFF OFF
Modulatore TV
scaricare dal sito di Fare Elettronica binaria, collegati secondo lo schema in figu-
(www.farelettronica.com). ra 5, sui quali sarà possibile “leggere” diret-
Per mezzo del dip-switch SW1 è possibile tamente il canale impostato.
impostare la frequenza di trasmissione, rife-
rendosi alla tabella 1; in alternativa si posso- Ricordate sempre che il modulo è di tipo “a
no utilizzare due commutatori con codifica doppia banda laterale”, per cui, oltre alla
portante a +5,5 MHz, ne presenta un’altra a
–5,5MHz, è quindi consigliabile lasciare libe-
ro un canale al disotto della frequenza che si
va ad utilizzare onde evitare fastidiose inter-
ferenze; in alternativa potete utilizzare un fil-
tro trappola o un passa canale.
CONCLUSIONI
Appena montato il circuito dovrebbe funzio-
nare immediatamente. Collegate il segnale
118
audio/video al connettore CN2, l’alimenta-
zione al connettore CN1 (attenzione alla
Pratica
Ventunesima parte
Vitamina C:
n° 243 - Settembre 2005
Ottimizzazione del codice
Ventiduesima parte
n° 244 - Ottobre 2005
Tecniche di debug
Ventitreesima parte
n° 245 - Novembre 2005
La gestione
delle interruzioni in C
considerazione, già dalle prime fasi di sviluppo del ni in cui esso si verifica in molti casi è il presuppo-
programma. Infatti, solo in questo modo è possi- sto fondamentale per potere risolvere il problema.
bile limitare il suo impatto sui tempi di sviluppo (e Molti dei metodi e degli strumenti presentati di
quindi sui suoi costi). A tal fine è anche fonda- seguito infatti, in ultima analisi, hanno proprio lo
mentale conoscere ed utilizzare gli strumenti ed i scopo di consentire un’osservazione più diretta e
metodi più appropriati per portare a termine que- controllata dell’esecuzione del programma.
sto compito, ed avere una discreta esperienza per
individuare gli errori dai sintomi riscontrati. I pros- Sintomi tipici
simi paragrafi analizzano proprio questi aspetti. Alcuni tipi di errori hanno delle manifestazioni
Tecniche
di debug di Antonio Di Stefano
[email protected]
Teoria
memoria senza poi liberarla. Non bisogna pensa- esplicita delle variabili. In questo caso si possono
re soltanto alla malloc, lo stesso effetto si può veri- verificare degli errori nei dati (dovuti ad una per-
ficare anche con funzioni apparentemente più dita di coerenza), comportamenti diversi dopo
“inoffensive”, quando queste sono richiamate un ogni reset, o il blocco del programma in alcuni
grande numero di volte (ad esempio quando si loop (se alle variabili vengono assegnati valori non
usano tecniche di ricorsione). In genere in questi previsti si potrebbe non verificare la condizione di
casi la memoria si esaurisce, oppure vengono uscita).
sovrascritte delle aree che contenevano dati, codi- Una volta individuato il tipo di errore, un buon
ce o addirittura lo stack, con conseguente blocco metodo per isolare il problema è quello di prova-
del programma. Ovviamente non c’è modo di re ad escludere le sezioni di codice sospette (ad
accorgersi di questo problema fino a quando non esempio commentandole, quando possibile).
si verifica un blocco apparentemente “casuale”. Escludendo prima sezioni più grandi (intere fun-
Un altro errore di memoria simile, è quello gene- zioni), e poi più piccole (blocchi di codice e istru-
rato dall’esaurirsi dello spazio dedicato allo stack zioni), si può localizzare con precisione l’origine
(stack overflow). Nei sistemi più semplici questa del problema.
condizione non è evidenziata in nessun modo, Non sempre però è possibile capirne le ragioni e
l’unico effetto visibile è che i risultati improvvisa- risolverlo, se non analizzando il flusso d’esecuzio-
mente diventano errati, il programma esegue ne nel suo complesso.
operazioni non previste, ed infine può bloccarsi.
Anche l’uso scorretto dei puntatori può portare a Prevenire gli errori
conseguenze simili a quelle viste prima, anche se Sicuramente prevenire gli errori è molto più con-
in genere più circoscritte. Se sono state fatte delle veniente che doverli trovare e correggere in segui-
assegnazioni sbagliate, o si è commesso qualche to. Questa affermazione può sembrare ovvia, ma
errore di sintassi, è probabile che venga letta o non lo è affatto, in quanto richiede uno sforzo
FARE ELETTRONICA - OTTOBRE 2005
scritta un’area di memoria sbagliata. aggiuntivo in fase di scrittura del codice, che non
Questo può causare o degli errori persistenti nei sempre si è propensi a spendere. Tuttavia esso
dati, o il cattivo funzionamento del programma risulta indispensabile, soprattutto nel caso di pro-
stesso (se viene sovrascritta una sua sezione). getti molto grandi, le cui parti sono sviluppate in
Quando invece il programma sembra funzionare parallelo da più programmatori. In questo caso
correttamente, ma i risultati sono errati, chiara- può risultare molto costoso, se non impossibile,
mente è stato commesso un errore nella scrittura procedere per tentativi una volta terminato lo svi-
dell’algoritmo. In molti casi, escludendo errori luppo dell’intero programma.
concettuali nell’implementazione dell’algoritmo, È quindi necessario assicurarsi che tutto il codice
TEORIA RISORSE SPECIALE PRATICA
prodotto funzioni bene da subito. Per fare questo tamenti imprevisti dovuti al fatto che in memoria
è necessario in primo luogo che il programma sia è rimasto il valore precedente al reset.
sviluppato secondo un approccio top-down, cioè Infine molta attenzione deve essere dedicata
partendo da funzioni più piccole e semplici, che all’uso dei puntatori. È consigliabile verificare con
poi vengono unite per formare via via funzioni più cura le sezioni di codice che li utilizzano, ed assi-
complesse. Il vantaggio di questo approccio con- curarsi anche di gestire i casi in cui ad essi possa-
siste nel fatto che è possibile testare in modo no essere assegnati valori non validi (molte funzio-
abbastanza completo le singole funzioni elemen- ni di libreria ad esempio restituiscono un puntato-
tari, e quindi avere la certezza che funzioneranno re a NULL in caso di errore, e questo ovviamente
quando poi verranno usate in un programma più non deve essere usato come puntatore valido).
complesso. Trovare un errore in una funzione ele-
mentare è molto più facile che trovarlo nel pro- METODI DI DEBUG
gramma completo! Quando un programma è stato completato e
Ovviamente anche le interazioni tra le varie fun- deve essere eseguito sulla macchina target si
zioni elementari devono essere testate poi, ma riscontrano subito alcune difficoltà: è difficile
questo in genere risulta meno problematico. capire se il programma sta funzionando bene, e
122
Quando si scrive il codice si dovrebbe cercare di sapere in ogni momento cosa sta eseguendo e
Teoria
seguire sempre uno stile pulito e leggibile, in que- come. Infatti in molti casi non basta sapere solo
sto modo sarà più semplice trovare degli errori, se i risultati finali sono corretti, ma occorre
perfino a chi non ha scritto il codice in prima per- anche seguire l’evoluzione del programma e le
sona. Inoltre la chiarezza del codice aiuta ad evi- singole operazioni.
tare molti errori dovuti proprio alla confusione del Questo problema è particolarmente sentito quan-
testo (parentesi mancanti o chiuse male, operato- do si programmano dei sistemi embedded, che
ri con precedenza sbagliata…). interagiscono con segnali e periferiche molto
Anche l’uso di molti commenti facilita il debug, velocemente, ed in maniera poco visibile dal-
infatti gli errori possono essere individuati sempli- l’esterno.
cemente verificando che il codice esegua le fun- Per ricavare maggiori informazioni si possono uti-
zioni descritte in linguaggio naturale nei com- lizzare appositi strumenti, che verranno descritti
menti stessi. di seguito. Tuttavia esistono dei metodi piuttosto
Per evitare problemi di ambiguità, o potenziali “primitivi”, che si rivelano comunque molto utili
errori, è sempre meglio abbondare con le paren- nel caso in cui non si disponga di mezzi più sofi-
tesi, sia nelle espressioni aritmetiche, sia nel pas- sticati. Uno di questi, utile a capire se il program-
saggio di parametri “composti” a funzioni o ma sta eseguendo correttamente le operazioni
macro. Non tutti i compilatori infatti considerano più critiche, è quello di utilizzare una banale istru-
nello stesso modo le precedenze ed i raggruppa- zione printf (o equivalente), per visualizzare su un
menti delle operazioni, quindi il codice dovrebbe display, o tramite comunicazione seriale delle
sempre essere il meno ambiguo possibile per evi- informazioni quali ad esempio il valore di una
tare problemi. variabile o la chiamata ad una funzione. Con que-
Una corretta indentazione invece aiuta a suddivi- sto sistema si può realizzare ad esempio un sem-
dere meglio il codice, e ad evitare di fare confusio- plice tracing dell’esecuzione del programma:
ne nella chiusura dei blocchi, soprattutto quando basta includere in ogni funzione un’istruzione
FARE ELETTRONICA - OTTOBRE 2005
ci sono molte sezioni lunghe e annidate. L’uso printf che visualizzi il nome della funzione stessa,
delle variabili globali dovrebbe essere limitato al ed eventualmente alcuni suoi parametri, come
minimo indispensabile, ed in ogni caso si dovreb- mostrato nell’esempio seguente:
be prestare attenzione ed evidenziare le sezioni di
codice in cui il contenuto di queste variabili viene #include <stdio.h>
modificato. Inoltre tutte le variabili dovrebbero
essere inizializzate esplicitamente all’avvio del pro- // - Prototipi -
gramma, questo per evitare che dopo un reset si int LeggiValore(void);
possano verificare delle incoerenze o dei compor- int Funzione1(void);
int Funzione2(int); }
}
main() { int LeggiValore(void){
int valore, passo; ˇ
valore=0; // *** DEBUG! ***
passo=0; printf(°∞Funzione: LeggiValore\n°±);
ˇ
// - ciclo principale - }
switch(passo) {
case(0): int Funzione1(void){
valore=LeggiValore(); ˇ
passo=1; // *** DEBUG! ***
break; printf(°∞Funzione: Funzione1\n°±);
case(1): ˇ
passo=Funzione1(); }
break;
case(2): int Funzione2(int){
123
Teoria
passo=Funzione2(valore); ˇ
break; // *** DEBUG! ***
default: printf(°∞Funzione: Funzione2\n°±);
// *** DEBUG! *** ˇ
printf(°∞Condizione imprevista!\n°±); }
Scheda easyPIC3
La rivoluzionaria scheda
di sviluppo per PICmicro
✔ Programmatore USB2.0 on-board
✔ Tastiera a 32 tasti
✔ 32 LED per il monitoraggio degli I/O
✔ 4 cifre LED a 7 segmenti
✔ Predisposizione per moduli LCD alfanumerici
✔ Predisposizione per moduli LCD grafici
✔ Predisposizione per comunicazione RS232
✔ Predisposizione per tastiera PS2
FARE ELETTRONICA - OTTOBRE 2005
}
tivamente facile stabilire il punto in cui si origina- #endif
no gli errori. Il codice seguente implementa la tec- return p/q;
nica appena descritta: }
Teoria
ta visibilità dei registri del processore, di quelli necessitano di un programma monitor poiché
di eventuali periferiche, e della memoria di sono dotati di un dispositivo hardware apposito,
sistema (anch’essa simulata). Alcune delle fun- che svolge le stesse funzioni (tra l’altro in maniera
zioni più potenti che si possono utilizzare sono più efficiente, e meno invasiva).
quelle legate ai watch ed ai breakpoint. I primi Il debugger hardware permette di interrompere
danno la possibilità di controllare costantemen- l’esecuzione del programma sul target, e compie-
te il valore assunto da alcune variabili, i secon- re operazioni simili a quelle descritte prima a pro-
di permettono invece di bloccare il programma posito dei simulatori, cioè leggere e scrivere il
quando si verificano determinate condizioni, valore dei registri o della memoria, di eseguire
anche molto complesse. Utilizzando congiunta- passo-passo il programma, e di impostare dei
mente questi due strumenti è possibile seguire semplici breakpoint.
l’esecuzione del programma, e rendersi conto In genere l’interazione avviene con comandi
subito di eventuali errori, della loro posizione, e impartiti manualmente del tipo “leggi il registro
delle loro cause. x”, “leggi n byte a partire dalla locazione di
Ad esempio si può impostare un breakpoint su memoria y”, “scrivi b nella locazione z”, etc.
una condizione collegata ad uno degli errori Dopo avere esaminato i valori di interesse, ed
riscontrati, e simulare il programma. averli eventualmente modificati, è possibile anche
Quando la condizione sarà verificata, la simula- riprendere l’esecuzione del programma.
zione si bloccherà, e sarà possibile osservare il I degugger sono uno strumento molto utile e
punto del programma che ha originato la con- potente per controllare l’esecuzione del program-
dizione di errore, controllare il valore delle varia- ma sul sistema reale, e per testare il corretto fun-
bili e dei registri, o eseguire passo-passo il pro- zionamento delle periferiche del sistema (che si
gramma. In questo modo in genere è possibile possono accedere agendo sullo spazio di memo-
individuare con precisione le cause degli errori. ria o di I/O del processore), e la loro interazione
FARE ELETTRONICA - OTTOBRE 2005
L’uso dei simulatori può quindi accelerare molto con il programma. Per aumentare le possibilità di
la fase iniziale di test e debug, permettendo di intervento in molti casi può essere utile impiegare
correggere subito molti errori. L’accuratezza dei assieme al debugger alcuni dei metodi software
simulatori può variare molto, alcuni simulano visti prima. In particolare bloccare il programma
soltanto l’esecuzione delle istruzioni, altri ese- quando si verificano determinate condizioni è
guono delle simulazioni dell’hardware accurate utile per potere leggere dei valori in quella parti-
al singolo ciclo di clock, e quindi permettono di colare situazione.
scoprire anche problemi che si manifestano a Uno dei debugger più noti è lo GNU Debugger
livello più basso. (GDB), che è disponibile gratuitamente per moltis-
TEORIA RISORSE SPECIALE PRATICA
simi processori e sistemi, e per questo è diventato in Per fare questo si utilizzano prevalentemente due
un certo senso uno “standard”. Molti altri debugger strumenti: gli oscilloscopi e gli analizzatori logici.
imitano lo stile ed il funzionamento del GDB. I primi sono più indicati per seguire l’andamento
di segnali analogici, ed in particolare rilevarne le
In-Circuit Debuggers/Emulators caratteristiche in corrispondenza dell’esecuzione di
Sono degli strumenti estremamente potenti, e alcune routine. Per fare questo è possibile inviare
fino a qualche tempo fa molto costosi, che ultima- ad un canale dell’oscilloscopio il segnale analogico
mente si stanno diffondendo molto, fino ad esse- in questione, e ad un altro il livello di un piedino di
re integrati anche in piccoli microcontrollori. Essi I/O pilotato in modo da fornire un riferimento
in pratica mettono insieme la funzionalità dei temporale. Questa tecnica può essere utilizzata
simulatori e dei debugger hardware, ossia per- anche per verificare che i segnali generati dal pro-
mettono di avere una completa visibilità e con- gramma rispettano le temporizzazioni previste.
trollabilità dell’esecuzione del codice sul sistema Quando invece occorre verificare l’andamento e lo
reale. Utilizzando l’In-Circuit Debugger (abbrevia- stato di diversi segnali digitali, lo strumento più
ti spesso ICD o ICE) è possibile seguire in tempo indicato è l’analizzatore logico. Esso può registrare
reale (o quasi) l’evoluzione del programma, moni- i segnali presenti su diverse linee (anche 32 o 64)
126
torare costantemente il valore dei registri, il con- durante un certo intervallo di tempo. La registra-
Teoria
tenuto della memoria, la presenza di interruzioni, zione viene eseguita ciclicamente su una memoria,
e soprattutto è possibile impostare complessi bre- e si interrompe quando si verifica una precisa con-
akpoint hardware, simili a quelli utilizzabili con i dizione (evento di trigger), che può essere data da
simulatori. Queste funzioni facilitano molto l’indi- una certa combinazione presente sulle linee, o
viduazioni di errori o malfunzionamenti dell’inte- dallo stato di alcune di esse. In questo modo è pos-
ro sistema, e permettono di capirne facilmente le sibile non solo visualizzare le caratteristiche dei
cause. Ad esempio, se si nota che una funzione di segnali precedenti l’evento di trigger, ma anche le
allarme non viene richiamata quando dovrebbe, loro temporizzazioni con estrema precisione.
si potrebbe scoprire che i valori forniti dal conver- Anche in questo caso un I/O libero può essere uti-
titore A/D non superano mai la soglia impostata, lizzato per sincronizzare gli eventi o per fornire un
a causa magari di un guadagno troppo basso riferimento. Utilizzando l’analizzatore logico si pos-
nella parte analogica. Oppure se si vuole capire sono facilmente scoprire fenomeni come glitch,
perché a volte alcuni dati assumono valori errati, contentions e termporizzazioni errate. È anche
si può impostare un breakpoint con la condizione possibile seguire le comunicazioni su un bus di
“ferma in caso di scrittura alla locazione x”, e sistema o su una linea I2C per verificare la loro cor-
quindi si possono individuare facilmente le istru- rettezza, o scoprire che alcuni dispositivi non
zioni che originano l’errore. rispettano le temporizzazioni dichiarate (ad esem-
pio generano segnali di clock a frequenza variabi-
Uso di oscilloscopi ed analizzatori le o con duty-cycle diverso dal 50%).
logici
Può sembrare strano, ma spesso per capire i moti- CONCLUSIONE
vi per cui un programma non funziona come Molti dei suggerimenti forniti possono essere
dovrebbe, non è sufficiente eseguire il debug sul applicati con buoni risultati al debug dei propri
solo software, ma è necessario estenderlo anche programmi, ma per sfruttarne al massimo le
FARE ELETTRONICA - OTTOBRE 2005
Partecipare è semplicissimo:
rispondi al quesito seguendo il regolamento e, se la risposta si rivelerà
esatta, potrai vincere un abbonamento omaggio (o il rinnovo qualora
fossi già abbonato) a Fare Elettronica. Ogni mese sulle pagine della rivista
troverai la soluzione del quesito del mese precedente e il nome del vincitore di uno dei
quesiti pubblicati. Per tutti i partecipanti è previsto comunque un coupon del 10% di sconto
utilizzabile per un acquisto nello shop di www.farelettronica.com.
Quesito - LST24408
Regolamento
1) Il quiz è aperto a tutti i lettori.
2) Saranno considerate esclusivamente le risposte pervenute entro la scadenza indicata nel quesito.
3) Inviare la risposta compilando il modulo su www.farelettronica.com/lesotutte.
RISORSE SPECIALE PRATICA TEORIA
Riflettori su...
MikroC:
U n nuovissimo compilatore C zione automatica degli
errori aggiungendo anche
per PICmicro® completo parole personalizzate oltre
di IDE ed una moltitudine di ai comandi specifici del
linguaggio C.
esempi di programmazione. Il Code Editor è configurabile
È questa la nuova proposta di quindi è possibile associare
diversi colori ai comandi, alle
128 Mikroelektronika, la casa
variabili, alle costanti, ecc.
produttrice dell’ormai famoso
Risorse
Code Editor
MikroC è dotato di un editor intuitivo adatto Procedures (Graph) Window – un istogramma
anche a chi è alle prime esperienze con la pro- che mostra l’allocazione di memoria da parte
grammazione. Code Assistant permette, digitan- delle funzioni e delle procedure.
do le prime tre lettere di una parola, di avere Procedure (Locations) Window – Mostra la
suggerimenti su tutte le possibilità compatibili collocazione delle procedure e delle funzioni
con quanto già digitato. Il Parameter Assistant nella memoria del micro.
permette invece di visualizzare come suggeri- Procedure (Details) Window – Mostra un albero
mento i parametri attesi da una certa funzione di dettagli per ciascuna procedura o funzione.
o routine. È possibile abilitare anche la corre- Vengono mostrati la dimensione, l’indirizzo di
Un nuovo
compilatore C
®
per PICmicro
Risorse
ROUTINES DI LIBRERIA
Esistono numerose routines nelle librerie di
MikroC pronte da utilizzare. Al momento le
librerie disponibili sono le seguenti:
● ADC Library ● PS/2 Library
● CAN Library ● PWM Library
● CANSPI Library ● RS-485 Library
● Compact Flash Library ● Secure Digital Library
● EEPROM Library ● Software I_C Library
● Ethernet Library ● Software SPI Library Figura 2 Watch window
● Flash Memory Library ● Software UART Library
● Graphic LCD Library ● Sound Library
● I2C Library ● SPI Library
● Keypad Library ● USART Library
● LCD Library ● USB HID Library
● LCD8 Library ● Util Library
● Manchester Code Library ● Conversions Library
● Multi Media Card Library ● Trigonometry Library
● OneWire Library
RIFERIMENTI
FARE ELETTRONICA - OTTOBRE 2005
Elettroshop
Via Cadorna, 27/31 – 20032 Cormano (MI)
Tel. 02.66504794 Fax 02.66508225
Figura 3 Statistiche di MikroC
[email protected] – www.elettroshop.com
Si
approfitto della fantastica occasione e mi
abbono a 11 numeri di Fare Elettronica
e pagherò solo € 45,00 Abbonati
DATI PERSONALI subito!
Nome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cognome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
✔ Risparmierai ben 15,50 euro
Via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n° . . . .
Ragione Sociale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
prezzo bloccato per un anno
P.Iva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ❍ Ricevuta
✔ La rivista ti sarà recapitata
Privacy. Ai sensi del Decr. Lgs. 196/2003 la informiamo che i dati trasmessi verranno impiega-
ti coi principali scopi di indagini di mercato e nelle modalità previste dallo stesso, prevalentemen-
te con mezzi informatici. Il conferimento, di norma facoltativo, è obbligatorio per permettere
il rapporto commerciale. È in ogni caso fatto diritto dell’interessato esercitare i propri diritti, nei
comodamente a casa
modi previsti dal “Titolo II art. 7” della legge sopra citata, scrivendo a Inware Edizioni Via
Cadorna 27 – 20032 Cormano o trmite email a [email protected]
EDIZIONI
Firma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
✂