Un modellino di auto da corsa che farà parte della Scuderia del Capaso che raccoglierà tutti i bolidi di carta che andrò a costruire.
sabato 8 dicembre 2007
Aforisma 12
venerdì 7 dicembre 2007
Capaso PIN Switch
Con questo semplice progetto è possibile commutare una singola antenna tra un trasmettitore ed un ricevitore radio. Il circuito non prevede l'utilizzo di relè meccanici, ma diodi PIN che assicurano un' alta efficienza e elevata velocità di commutazione.Funzionamento
Lo schema elettrico è classico e fa uso di una coppia di diodi PIN (Positivo-Ibrido-Negativo) che, a seconda del loro stato di polarizzazione consentono il passaggio del segnale a radiofrequenza dalle due sorgenti all'antenna. La commutazione è comandata dai TX e RX che deve avere livelli compatibili TTL e sono attivi bassi: cioè si va in trasmissione quando TX è a livello logico 0 e RX si trova a livello alto (+5V), mentre si ha la ricezione quando TX è alto e RX basso. Nel caso in cui TX e RX si sono entrambi a livello alto si ha l'antenna scollegata dal ricetrasmettitore, mentre la configurazione TX e RX bassi è caldamente sconsigliata, in quanto metterebbe in corto l'uscita del trasmettitore con l'ingresso del ricevitore. La logica della commutazione è comunque demandata al sistema di controllo che gestisce l'intero apparato, che di solito viene realizzato tramite microcontrollore, con il quale risultano molto semplici queste operazioni.Il tutto va alimentato con una tensione continua di 5 V prelevabili dall'apparato stesso in quanto l'assorbimento è esiguo.Sono inoltre presenti due led (che possono essere anche omessi) che indicano quale dei due diodi pin risulta in conduzione.Consiglio di non assemblare il circuito su una basetta "millefori", ma di prevedere un piccolo circuito stampato a doppia faccia, in modo da garantire un valido riferimeto di massa. Cercate inoltre di non dimenticare mai il carico al bocchettone BNC dell'antenna (carico fittizio o antenna reale) per evitare spiacevoli conseguenze...
Realizzazione
Tutti i componenti sono facilmente reperibili tranne le tre induttanze che vanno costruite: sono sufficienti 5 spire di 5-6 mm di diametro avvolte in aria con filo di rame smaltato della sezione di 0,8-1 mm (versione per i 435MHz). Per quanto riguarda i diodi pin, io ho utilizzato dei BATXX, anche se sarebbe meglio usare dei diodi di maggior potenza, sopratutto per la sezione di trasmissione data la maggior ampiezza dei segnali che la interessano. Un valido prodotto è l' MI402 della Mitsubishi, ma è di difficile reperibilità.
giovedì 6 dicembre 2007
Ark - Burn the sun [2002]
Author: Ark Title: Burn the sun
Original Release Date: January 29, 2002
Number of Discs: 1
Label: Favored Nations
ASIN: B00005YDNG
Tracklist:
1. Heal the Waters - 6:38
2. Torn - 3:51
3. Burn the Sun - 4:35
4. Resurrection - 5:32
5. Absolute Zero - 5:06
6. Just a Little - 4:37
7. Waking Hour - 4:15
8. Noose - 5:03
9. Feed the Fire - 3:57
10. I Bleed - 4:03
11. Missing You - 9:04
Number of Discs: 1
Label: Favored Nations
ASIN: B00005YDNG
Tracklist:
1. Heal the Waters - 6:38
2. Torn - 3:51
3. Burn the Sun - 4:35
4. Resurrection - 5:32
5. Absolute Zero - 5:06
6. Just a Little - 4:37
7. Waking Hour - 4:15
8. Noose - 5:03
9. Feed the Fire - 3:57
10. I Bleed - 4:03
11. Missing You - 9:04
Aforisma 11
Capaso Dual Stepper Motor Driver

Oggigiorno sostituire una stampante, un fax, vecchi Hard o Floppy disk è diventata un' operazione molto frequente: che cosa hanno in comune tutte queste apparecchiature? Il fatto di contenere uno o più motorini passo-passo (Stepper Motor). Di questi dispositivi se ne trovano infatti molti nel mondo del surplus, tanto che personalmente ne ho accumulata una quantità quasi "industriale". Alla facilità di reperibilità non si affianca però una pari semplicità di utilizzo: per far "muovere" questi motorini non è sufficiente applicare una tensione continua ai loro morsetti come avviene per i più semplici motori in corrente continua. Ovviamente in commercio esiste un nutrito assortimento di dispositivi per pilotare motori PP in modo efficiente (pilotaggio in tensione, choppered, switching, ecc), ma a volte richiedono uno sforzo "economico" relativamente pesante, se si tiene conto del fatto che il motore nella maggior parte dei casi lo si è avuto a "costo zero", recuperandolo magari da qualche vecchia stampante.
Scopo di queste pagine di fornire delle informazioni pratiche sulla tipologie di motori PP che si possono trovare in commercio e sul loro pilotaggio e di descrivere un progettino che si propone come soluzione alternativa per poterli utilizzare. Tutto questo nella speranza che queste righe possano far risparmiare tempo a chi ha la necessità o la semplice curiosità di veder "girare" questi motori.
Il progetto
Veniamo quindi al progetto di un driver per motori PP, basato sull' ormai famoso PIC 16F84 e su 2 ponti ad H L298N. Il circuito offre infatti la possibilità di pilotare 2 ponti ad H ( e quindi 2 motori ) con un solo integrato, cosa che fa piacere dal punto di vista economico una volta valutato il costo di un un driver commerciale quale L297 che permette il pilotaggio di un solo motore. Si hanno a disposizione 4 ingressi (port A del PIC) che permettono di definire il verso di rotazione e il clock per effettuare un passo: ogni qualvolta che all'ingresso di clock si presenta un fronte di salita l'asse del motore compierà una rotazione di un passo nel verso impostato.
Il port B del PIC viene collegato ai 2 ponti ad H e precisamente PB0..PB3 al ponte 1, PB4..PB7 al ponte 2 che piloteranno indipendentemente i due motori.Come si può ben osservare, lo schema elettrico è estremamente semplice:
Scopo di queste pagine di fornire delle informazioni pratiche sulla tipologie di motori PP che si possono trovare in commercio e sul loro pilotaggio e di descrivere un progettino che si propone come soluzione alternativa per poterli utilizzare. Tutto questo nella speranza che queste righe possano far risparmiare tempo a chi ha la necessità o la semplice curiosità di veder "girare" questi motori.
Il progetto
Veniamo quindi al progetto di un driver per motori PP, basato sull' ormai famoso PIC 16F84 e su 2 ponti ad H L298N. Il circuito offre infatti la possibilità di pilotare 2 ponti ad H ( e quindi 2 motori ) con un solo integrato, cosa che fa piacere dal punto di vista economico una volta valutato il costo di un un driver commerciale quale L297 che permette il pilotaggio di un solo motore. Si hanno a disposizione 4 ingressi (port A del PIC) che permettono di definire il verso di rotazione e il clock per effettuare un passo: ogni qualvolta che all'ingresso di clock si presenta un fronte di salita l'asse del motore compierà una rotazione di un passo nel verso impostato.
Il port B del PIC viene collegato ai 2 ponti ad H e precisamente PB0..PB3 al ponte 1, PB4..PB7 al ponte 2 che piloteranno indipendentemente i due motori.Come si può ben osservare, lo schema elettrico è estremamente semplice:

Tutti i componenti trovano posto su di uno stampato di dimensioni contenute e di facile riproducibilità. Bisogna ovviamente ricordarsi di effettuare l'inserzione dei ponticelli, oppure riprodurli su di una basetta a doppia faccia. A questo proposito voglio far notare che i pin 8 degli L298N sono collegati al corpo dell'integrato e vanno posti a massa. Per garantire questo collegamento si può seguire la pista sul lato componenti suggerita nel PCB, oppure collegare il corpo degli integrati ad un dissipatore, collegato a sua volta al riferimento di massa.
Leggi l'articolo completo:
http://www.webalice.it/capaso/PROGETTI/CDSMD/DUAL_STEPPER.htm
mercoledì 5 dicembre 2007
Capaso LC Meter: Capacimetro / Induttanzimetro digitale

Questo articolo ha lo scopo di riunire tutta una serie di notizie ed idee relative alla costruzione di un induttanzimetro digitale basato su micro controller. Infatti molte sono le fonti che trattano questo argomento, soprattutto a livello hobbistico, ma a volte le informazioni fornite risultano insufficienti o confuse. Le varianti implementative di questo utile strumento sono innumerevoli e spaziano dalla versione con strumentino analogico a quella che coinvolge l'uso del PC. La realizzazione trattata in queste righe è basata su un uC tipo PIC 16F84 con lettura su display LCD alfanumerico.
Come accennato, in rete e sulle riviste specializzate si trovano moltissime altre versioni di questo tipo di realizzazione, basate su diversi tipi di uC (PIC, AVR, Motorola, ecc.) e la scelta di utilizzare un PIC 16F84 è stata dettata dal fatto che per questo micro ho trovato innumerevoli versioni di firmware e perché risulta essere il micro forse più conosciuto e sicuramente quello di più facile reperibilità.
Il metodo di misura adottato è noto come metodo dello slittamento ed è un metodo di misura indiretto, ovvero quello che viene effettivamente valutato dallo strumento non è il valore dell'induttanza, ma la frequenza di un oscillatore che dipende, con una legge ben precisa, dal valore della grandezza da misurare (nel nostro caso l'induttanza). Questo metodo verrà descritto con maggior dettaglio nel seguito dell'articolo.
Un'altra importante caratteristica di questo strumentino è, data la natura del metodo di misura, di consentire anche la valutazione di capacità incognite. Il firmware che ho collaudato, e sul quale ho basato lo sviluppo dell'intero progetto, consente di misurare induttanze (L) o capacità (C) tramite l'impostazione di un commutatore a levetta.
I range all'interno dei quali lo strumento è in grado di fornire valori di misura con una precisione del 1% sono:
- Capacità: 0,1 pF .. 100 nF
- Induttanza: 10 nH .. 100 mH
Per i particolari costruttivi vedi l'articolo completo:
http://www.webalice.it/capaso/PROGETTI/LC_METER/LC_Meter.htm
Come accennato, in rete e sulle riviste specializzate si trovano moltissime altre versioni di questo tipo di realizzazione, basate su diversi tipi di uC (PIC, AVR, Motorola, ecc.) e la scelta di utilizzare un PIC 16F84 è stata dettata dal fatto che per questo micro ho trovato innumerevoli versioni di firmware e perché risulta essere il micro forse più conosciuto e sicuramente quello di più facile reperibilità.
Il metodo di misura adottato è noto come metodo dello slittamento ed è un metodo di misura indiretto, ovvero quello che viene effettivamente valutato dallo strumento non è il valore dell'induttanza, ma la frequenza di un oscillatore che dipende, con una legge ben precisa, dal valore della grandezza da misurare (nel nostro caso l'induttanza). Questo metodo verrà descritto con maggior dettaglio nel seguito dell'articolo.
Un'altra importante caratteristica di questo strumentino è, data la natura del metodo di misura, di consentire anche la valutazione di capacità incognite. Il firmware che ho collaudato, e sul quale ho basato lo sviluppo dell'intero progetto, consente di misurare induttanze (L) o capacità (C) tramite l'impostazione di un commutatore a levetta.
I range all'interno dei quali lo strumento è in grado di fornire valori di misura con una precisione del 1% sono:
- Capacità: 0,1 pF .. 100 nF
- Induttanza: 10 nH .. 100 mH
Per i particolari costruttivi vedi l'articolo completo:
http://www.webalice.it/capaso/PROGETTI/LC_METER/LC_Meter.htm
martedì 4 dicembre 2007
Capaso Tiny OSD - Titolatrice video PAL

Questo articolo affronta il tema dello sviluppo di un progetto per la sovra impressione di informazioni su di un normale schermo televisivo a colori. Tali dispositivi sono noti con il nome di OSD (On Screen Display) o più semplicemente, lasciando perdere gli acronimi, Titolatrici Video. Come al solito il mercato offre infinite soluzioni a questo tipo di esigenze, a costi anche estremamente ridotti, ma lo scopo di queste righe non è fornire le informazioni per realizzare dispositivi paragonabili a quelli già confezionati che si trovano sugli scaffali dei negozi, bensì rappresentare un'occasione per conoscere o approfondire tutti quei temi legati alla generazione e alla gestione dei segnali video tramite micro controllore. Chi avrà voglia di arrivare alla fine di questa disamina si ritroverà (spero...) con l'aver appreso qualche nozione in più, e in possesso di tutte le informazioni per costruire un simpatico oggetto che potrà rivelarsi utile in più di una occasione.
Caratteristiche principali
- Matrice di 10 caratteri/riga per 5 righe [10x5]
- Dimensione caratteri modificabile
- Intensità dei caratteri regolabile
- Posizionamento del testo regolabile
- Possibilità di memorizzare fino a 10 messaggio predefiniti
- Attivazione/disattivazione modalità slide
- Possibilità di impostare l'intervallo di slide
- Gestibile da remoto tramite RS232
- Gestibile in modalità stand-alone con 2 pulsanti
- Tabella caratteri ASCII completa (maiuscoli e minuscoli, ecc.)
- Semplicità costruttiva
- Basso costo
Principio di funzionamento
Lo scopo di questo progetto è, come detto, di sovra imprimere delle scritte (possibilmente leggibili...) su di una immagine proveniente da una sorgente video come un lettore DVD, un video registratore o una telecamera. L'elettronica che realizza ciò dovrà quindi sincronizzarsi con tale sorgente e disegnare i caratteri (o i simboli) che costituiscono le frasi da far visualizzare, senza comportare degrado o alterazioni al segnale video posto in ingresso. A tale proposito lo schema prevede l'impiego di un componente integrato come LM1881 in grado di fornire alle sue uscite tutte le informazioni relative ai segnali di sincronismo della sorgente posta al suo ingresso. Per rendere più chiaro il ruolo di questo componente è forse utile fare riferimento alla figura seguente, che rappresenta l'andamento temporale di una riga video disegnata sullo schermo.
Nello standard PAL (Phase Alternating Lines) infatti una immagine (Frame - Quadro) viene rappresentata scandendo 625 linee dello schermo aventi andamenti simili a quello della figura precedente e i quadri si susseguono con una frequenza di 25 ogni secondo (in realtà nello standard PAL assume maggior significato il concetto di "semi-quadro", ma per il momento la cosa non interessa...).Ogni riga ha una durata di 64us e quindi ogni 40ms si ha l'inizio di un nuovo quadro (625x64us). Saranno quindi necessari due diversi tipi di segnali per sincronizzare il movimento del pennello elettronico del TV (cioè del fascio di elettroni accelerati che vanno fisicamente a disegnare sullo schermo) con le informazioni dell'immagine che si vuole rappresentare: uno che trasporta l'informazione di quando incomincia una riga e uno che informa quando inizia un nuovo quadro (cioè una nuova immagine).A questi due segnali sono legate altrettante operazioni che l'elettronica del TV deve compiere, che sono rispettivamente: far tornare il pennello elettronico all'inizio di ogni riga (lato sinistro dello schermo) e di posizionare il medesimo nell'angolo in alto a sinistra del TV per l'inizio della scansione di una nuova immagine.

Come accennato in precedenza, questi segnali di sincronizzazione vengono estratti e separati dal LM1881 che li rende disponibili, con livelli compatibili TTL, alla logica di controllo, che nel caso in oggetto è un micro AVR 8515. Questo uC risulta provvisto di un numero di linee di I/O molto più elevato di quelle che in realtà necessitano allo scopo, ma è stato scelto per le sue dotazioni di memoria (soprattutto SRAM) che, come si avrà modo di vedere, costituiscono la risorsa più critica dell'intero progetto.Questo dispositivo, opportunamente programmato, dovrà quindi prelevare le informazioni sul sincronismo del segnale in ingresso e generare la riga video da sommare a quest' ultimo a partire dalle informazioni sulle scritte da far comparire e sulle modalità di visualizzazione.Questo è, in estrema sintesi, il compito affidato al uC e sembra tutto sommato abbastanza semplice: le complicazioni però ci sono (come sempre...) e sono di natura computazionale, legate all'organizzazione e all'implementazione del firmware e alle tempistiche di esecuzione. Maggiori dettagli a riguardo saranno forniti nelle sezioni relative alla descrizione dello schema elettrico e dell'analisi del firmware.
Tutte le attività di impostazione sono, infine, gestite da un host collegato tramite UART, attraverso il quale vengono ricevuti tutti i comandi che il circuito è in grado di eseguire (come ad es. l'impostazione del tempo di slide, la dimensione dei caratteri, i testi precodificati, ecc), e stand-alone, mediante due pulsanti ai quali vengono associate particolari funzioni.
Architettura e Schema elettrico
Lo schema elettrico è riportato nella figura che segue e come si può vedere risulta molto semplice.
Nello schema sono rappresentate tutte le parti per ottenere un circuito funzionante e autonomo compresa la sezione di alimentazione e i transistor per interfacciare l'UART del uC direttamente alla seriale del PC (in luogo del più costoso MAX232).Nel circuito sono inoltre presenti il connettore SIL per la programmazione del uC e il transistor per l' aggiunta al segnale sorgente le informazioni dei caratteri da visualizzare a video (T3). Da notare inoltre i due trimmer RV1 e RV2 connessi rispettivamente alla base al collettore di T3 (è un PNP) che svolgono dei compiti di regolazione del segnale in uscita. In particolare RV1, agendo sullo stato della polarizzazione della base di T3, consente di regolare la definizione dei caratteri visualizzati, mentre RV2 permette di modificarne l'intensità.
Dal punto di vista elettrico la funzione di T3 è quella di effettuare un "pull-up" della tensione del segnale video in ingresso al fine di spostarne l'intensità verso il livello del bianco in modo da rendere ben visibili le linee che costituiscono i caratteri.Questa sezione, in ultima analisi, deve tradurre in un puntino luminoso i dati prodotti dal uC (bit) disponibili su un suo particolare pin di uscita, i quali andranno poi a costituire il corpo dei vari simboli grafici. Ed è proprio la generazione di una riga di "pixel" che costituisce il punto maggiormente critico del sistema, in quanto l'emissione dei puntini luminosi deve concludersi entro l'inizio della riga successiva e quindi, in virtù di quanto detto nei paragrafi precedenti, si deve concludere tutto entro 64us.Per generare i pattern di bit dei caratteri si è utilizzato un pin particolare, e precisamente l'uscita della periferica seriale SPI presente nel uC, denominato MOSI (Master Output Slave Input) la quale permette di inviare byte su una linea seriale in maniera sincrona ad elevata velocità. Infatti la velocità massima raggiungibile da questa periferica (che ricordo è un blocco hardware integrato nel chip) è pari ad un quarto della frequenza di clock del uC, che in questo caso risulta essere di ben 2.5Mbits (10MHz/4). Inoltre, essendo la trasmissione di tipo sincrono (ovvero è presente anche un pin di clock), non è necessario inviare i bit di start e di stop che altererebbero la riproduzione delle linee dei caratteri. Quindi per vedere inviati 8 bit ad altissima velocità senza preoccuparsi di nulla è sufficiente settare la periferica SPI e scrivere nel suo data register il byte che si vuole trasmettere. Le righe che costituiscono i caratteri saranno dunque degli sequenze di byte che, inviate tramite SPI al transistor T3, andranno a disegnare i pixel degli elementi grafici sullo schermo.
Numericamente: disponendo di un bitrate di 2.5Mbps è possibile disegnare fino a 10 caratteri larghi 8bit, in quanto: (8/2.5Mbps)x10 = 32us che stanno agevolmente all'interno dei 52us di riga visibile (infatti 64us è la durata totale di una riga video, ma in realtà il televisore fa vedere solo i 52us dove effettivamente è contenuta l'informazione dell'intensità luminosa), considerando in aggiunta anche qualche us per lasciare una spaziatura tra carattere e carattere al fine di migliorarne la leggibilità.Sempre per soddisfare il requisito di velocità tutte le informazione delle mappe di bit costituenti i caratteri da visualizzare dovranno essere disponibili in una porzione di memoria SRAM che verrà esplorata in maniera ciclica e sincronizzata con il segnale video di ingresso. Questa porzione di memoria viene detta Frame Buffer e rappresenta il vero limite alle prestazioni di questo progetto.
Numericamente: supponendo di rappresentare i caratteri con una matrice di 8x7 bit (7 righe da 8 bit) per disegnare una riga di 10 caratteri sono necessari 70 byte (10x7) e per visualizzare 5 righe servono dunque 350 byte.Questi valori di memoria sembrano ridicoli se paragonati ad un PC o ad altri sistemi per il calcolo, ma per un uC come AT90s8515, che dispone di 512 byte di SRAM, è un impiego di risorse notevole. La rimanente porzione di SRAM serve per le variabili impiegate dalla parte runtime del programma, ovvero il codice deputato a "riempire" il frame buffer con i dati provenienti dalle stringhe che si vogliono visualizzare e per la gestione delle altre varie funzioni previste. Per poter far ciò è necessario prevedere una tabella in flash ROM dove memorizzare le bitmap di ogni carattere.Quella implementata in questa versione permette di visualizzare i primi 126 caratteri della tabella ASCII standard, impiegando quindi 896 byte (7x126).In definitiva, una volta pervenuta la stringa di caratteri contenente la riga da visualizzare, una funzione provvederà ad estrarre ogni singolo carattere, leggere dalla tabella dei caratteri il relativo pattern di bit e collocare tali informazioni nel frame buffer alla posizione corrispondente; successivamente verrà fatta ripartire la scansione del frame buffer e la riga di caratteri sarà visibile a video.Tutte le informazioni che devono pervenire dall'esterno sono veicolate tramite l'UART hardware presente nel uC e impacchettate in accordo ad un semplice protocollo comandi descritto nel relativo paragrafo.



Per il firmware e il PCB per realizzare il progetto completo vedi:
http://www.webalice.it/capaso/PROGETTI/TINY_OSD/Tiny_OSD.htm
Caratteristiche principali
- Matrice di 10 caratteri/riga per 5 righe [10x5]
- Dimensione caratteri modificabile
- Intensità dei caratteri regolabile
- Posizionamento del testo regolabile
- Possibilità di memorizzare fino a 10 messaggio predefiniti
- Attivazione/disattivazione modalità slide
- Possibilità di impostare l'intervallo di slide
- Gestibile da remoto tramite RS232
- Gestibile in modalità stand-alone con 2 pulsanti
- Tabella caratteri ASCII completa (maiuscoli e minuscoli, ecc.)
- Semplicità costruttiva
- Basso costo
Principio di funzionamento
Lo scopo di questo progetto è, come detto, di sovra imprimere delle scritte (possibilmente leggibili...) su di una immagine proveniente da una sorgente video come un lettore DVD, un video registratore o una telecamera. L'elettronica che realizza ciò dovrà quindi sincronizzarsi con tale sorgente e disegnare i caratteri (o i simboli) che costituiscono le frasi da far visualizzare, senza comportare degrado o alterazioni al segnale video posto in ingresso. A tale proposito lo schema prevede l'impiego di un componente integrato come LM1881 in grado di fornire alle sue uscite tutte le informazioni relative ai segnali di sincronismo della sorgente posta al suo ingresso. Per rendere più chiaro il ruolo di questo componente è forse utile fare riferimento alla figura seguente, che rappresenta l'andamento temporale di una riga video disegnata sullo schermo.
Nello standard PAL (Phase Alternating Lines) infatti una immagine (Frame - Quadro) viene rappresentata scandendo 625 linee dello schermo aventi andamenti simili a quello della figura precedente e i quadri si susseguono con una frequenza di 25 ogni secondo (in realtà nello standard PAL assume maggior significato il concetto di "semi-quadro", ma per il momento la cosa non interessa...).Ogni riga ha una durata di 64us e quindi ogni 40ms si ha l'inizio di un nuovo quadro (625x64us). Saranno quindi necessari due diversi tipi di segnali per sincronizzare il movimento del pennello elettronico del TV (cioè del fascio di elettroni accelerati che vanno fisicamente a disegnare sullo schermo) con le informazioni dell'immagine che si vuole rappresentare: uno che trasporta l'informazione di quando incomincia una riga e uno che informa quando inizia un nuovo quadro (cioè una nuova immagine).A questi due segnali sono legate altrettante operazioni che l'elettronica del TV deve compiere, che sono rispettivamente: far tornare il pennello elettronico all'inizio di ogni riga (lato sinistro dello schermo) e di posizionare il medesimo nell'angolo in alto a sinistra del TV per l'inizio della scansione di una nuova immagine.Come accennato in precedenza, questi segnali di sincronizzazione vengono estratti e separati dal LM1881 che li rende disponibili, con livelli compatibili TTL, alla logica di controllo, che nel caso in oggetto è un micro AVR 8515. Questo uC risulta provvisto di un numero di linee di I/O molto più elevato di quelle che in realtà necessitano allo scopo, ma è stato scelto per le sue dotazioni di memoria (soprattutto SRAM) che, come si avrà modo di vedere, costituiscono la risorsa più critica dell'intero progetto.Questo dispositivo, opportunamente programmato, dovrà quindi prelevare le informazioni sul sincronismo del segnale in ingresso e generare la riga video da sommare a quest' ultimo a partire dalle informazioni sulle scritte da far comparire e sulle modalità di visualizzazione.Questo è, in estrema sintesi, il compito affidato al uC e sembra tutto sommato abbastanza semplice: le complicazioni però ci sono (come sempre...) e sono di natura computazionale, legate all'organizzazione e all'implementazione del firmware e alle tempistiche di esecuzione. Maggiori dettagli a riguardo saranno forniti nelle sezioni relative alla descrizione dello schema elettrico e dell'analisi del firmware.
Tutte le attività di impostazione sono, infine, gestite da un host collegato tramite UART, attraverso il quale vengono ricevuti tutti i comandi che il circuito è in grado di eseguire (come ad es. l'impostazione del tempo di slide, la dimensione dei caratteri, i testi precodificati, ecc), e stand-alone, mediante due pulsanti ai quali vengono associate particolari funzioni.
Architettura e Schema elettrico
Lo schema elettrico è riportato nella figura che segue e come si può vedere risulta molto semplice.
Dal punto di vista elettrico la funzione di T3 è quella di effettuare un "pull-up" della tensione del segnale video in ingresso al fine di spostarne l'intensità verso il livello del bianco in modo da rendere ben visibili le linee che costituiscono i caratteri.Questa sezione, in ultima analisi, deve tradurre in un puntino luminoso i dati prodotti dal uC (bit) disponibili su un suo particolare pin di uscita, i quali andranno poi a costituire il corpo dei vari simboli grafici. Ed è proprio la generazione di una riga di "pixel" che costituisce il punto maggiormente critico del sistema, in quanto l'emissione dei puntini luminosi deve concludersi entro l'inizio della riga successiva e quindi, in virtù di quanto detto nei paragrafi precedenti, si deve concludere tutto entro 64us.Per generare i pattern di bit dei caratteri si è utilizzato un pin particolare, e precisamente l'uscita della periferica seriale SPI presente nel uC, denominato MOSI (Master Output Slave Input) la quale permette di inviare byte su una linea seriale in maniera sincrona ad elevata velocità. Infatti la velocità massima raggiungibile da questa periferica (che ricordo è un blocco hardware integrato nel chip) è pari ad un quarto della frequenza di clock del uC, che in questo caso risulta essere di ben 2.5Mbits (10MHz/4). Inoltre, essendo la trasmissione di tipo sincrono (ovvero è presente anche un pin di clock), non è necessario inviare i bit di start e di stop che altererebbero la riproduzione delle linee dei caratteri. Quindi per vedere inviati 8 bit ad altissima velocità senza preoccuparsi di nulla è sufficiente settare la periferica SPI e scrivere nel suo data register il byte che si vuole trasmettere. Le righe che costituiscono i caratteri saranno dunque degli sequenze di byte che, inviate tramite SPI al transistor T3, andranno a disegnare i pixel degli elementi grafici sullo schermo.
Numericamente: disponendo di un bitrate di 2.5Mbps è possibile disegnare fino a 10 caratteri larghi 8bit, in quanto: (8/2.5Mbps)x10 = 32us che stanno agevolmente all'interno dei 52us di riga visibile (infatti 64us è la durata totale di una riga video, ma in realtà il televisore fa vedere solo i 52us dove effettivamente è contenuta l'informazione dell'intensità luminosa), considerando in aggiunta anche qualche us per lasciare una spaziatura tra carattere e carattere al fine di migliorarne la leggibilità.Sempre per soddisfare il requisito di velocità tutte le informazione delle mappe di bit costituenti i caratteri da visualizzare dovranno essere disponibili in una porzione di memoria SRAM che verrà esplorata in maniera ciclica e sincronizzata con il segnale video di ingresso. Questa porzione di memoria viene detta Frame Buffer e rappresenta il vero limite alle prestazioni di questo progetto.



Per il firmware e il PCB per realizzare il progetto completo vedi:
http://www.webalice.it/capaso/PROGETTI/TINY_OSD/Tiny_OSD.htm
domenica 2 dicembre 2007
Numeretti...

È difficile calcolare esattamente il numero dei morti, in parte a causa degli insormontabili ostacoli che il governo sudanese innalza contro i giornalisti per cercare di nascondere il conflitto. Nel settembre 2004 l'Organizzazione Mondiale della Sanità (OMS) valutò che fossero morte 50.000 persone in Darfur dall'inizio del conflitto, in un periodo cioè di 18 mesi, la maggior parte delle quali per fame.
Un aggiornamento del mese successivo relativo al periodo marzo – ottobre 2004 parla di 70.000 morti in 6 mesi per fame e malattie. Questi dati sono stati criticati, in quanto considerano solamente un breve periodo e non includono tra le cause la morte violenta. Un rapporto più recente del Parlamento britannico ha valutato che siano morte più di 300.000 persone ed altri hanno fatto stime anche superiori.
Nel marzo 2005 il Coordinatore per il Soccorso d'emergenza dell'ONU, Jan Egeland, valutò che 10.000 persone morissero ogni mese, escludendo le morti dovute alla violenza etnica. Si ritiene che nello stesso periodo due milioni di persone abbiano dovuto abbandonare le proprie case, la maggior parte di esse in cerca di rifugio nei campi profughi delle città più grandi del Darfur. Duecentomila sono fuggite nel vicino Ciad.
In un rapporto dell'aprile 2005, l'analisi statistica maggiormente esauriente fino a quel momento, la Coalizione per la Giustizia Internazionale ha stimato che in Darfur siano morte 400.000 persone dall'inizio del conflitto, un dato che viene oggi ampiamente usato dai gruppi impegnati sul fronte dei diritti umani ed umanitari. Il 28 aprile 2006 il Dottor Eric Reeves ha dichiarato che "i dati esistenti, in aggregato, suggeriscono chiaramente che l'eccesso totale delle morti in Darfur, durante più di tre anni di conflitto mortale, supera ora i 450.000 morti", ma ciò non è stato verificato da fonti indipendenti.
Un articolo del 1 febbraio 2007 dello UN News Service ha dichiarato che "in Darfur, più di 200.000 persone sono state uccise e almeno altri 2 milioni hanno dovuto abbandonare le proprie case ". Inoltre "circa 4 milioni di persone dipendono da un aiuto esterno". Questi sono adesso i dati ufficiali delle Nazioni Unite. Il 31 luglio 2007 le stesse Nazioni Unite hanno approvato una risoluzione che prevede l'impiego nella regione di 26.000 soldati quale forza di interposizione pacifica.
L'accordo è stato raggiunto per l'impegno del Consiglio di Sicurezza dell'ONU, guidato da Stati Uniti, Gran Bretagna e Francia, nonostante le resistenze del governo centrale sudanese. Significativo è stato il sostegno alle posizioni occidentali da parte della Cina, maggiore partner commerciale del Sudan.
Da: http://it.wikipedia.org/wiki/Conflitto_del_Darfur
Alcuni links a riguardo:
http://www.savetherabbit.net/darfur
http://www.unicef.it/flex/cm/pages/ServeBLOB.php/L/IT/IDPagina/1782
http://www.senato.it/notizie/136525/136526/139567/genpagina.htm
Un aggiornamento del mese successivo relativo al periodo marzo – ottobre 2004 parla di 70.000 morti in 6 mesi per fame e malattie. Questi dati sono stati criticati, in quanto considerano solamente un breve periodo e non includono tra le cause la morte violenta. Un rapporto più recente del Parlamento britannico ha valutato che siano morte più di 300.000 persone ed altri hanno fatto stime anche superiori.
Nel marzo 2005 il Coordinatore per il Soccorso d'emergenza dell'ONU, Jan Egeland, valutò che 10.000 persone morissero ogni mese, escludendo le morti dovute alla violenza etnica. Si ritiene che nello stesso periodo due milioni di persone abbiano dovuto abbandonare le proprie case, la maggior parte di esse in cerca di rifugio nei campi profughi delle città più grandi del Darfur. Duecentomila sono fuggite nel vicino Ciad.
In un rapporto dell'aprile 2005, l'analisi statistica maggiormente esauriente fino a quel momento, la Coalizione per la Giustizia Internazionale ha stimato che in Darfur siano morte 400.000 persone dall'inizio del conflitto, un dato che viene oggi ampiamente usato dai gruppi impegnati sul fronte dei diritti umani ed umanitari. Il 28 aprile 2006 il Dottor Eric Reeves ha dichiarato che "i dati esistenti, in aggregato, suggeriscono chiaramente che l'eccesso totale delle morti in Darfur, durante più di tre anni di conflitto mortale, supera ora i 450.000 morti", ma ciò non è stato verificato da fonti indipendenti.
Un articolo del 1 febbraio 2007 dello UN News Service ha dichiarato che "in Darfur, più di 200.000 persone sono state uccise e almeno altri 2 milioni hanno dovuto abbandonare le proprie case ". Inoltre "circa 4 milioni di persone dipendono da un aiuto esterno". Questi sono adesso i dati ufficiali delle Nazioni Unite. Il 31 luglio 2007 le stesse Nazioni Unite hanno approvato una risoluzione che prevede l'impiego nella regione di 26.000 soldati quale forza di interposizione pacifica.
L'accordo è stato raggiunto per l'impegno del Consiglio di Sicurezza dell'ONU, guidato da Stati Uniti, Gran Bretagna e Francia, nonostante le resistenze del governo centrale sudanese. Significativo è stato il sostegno alle posizioni occidentali da parte della Cina, maggiore partner commerciale del Sudan.
Da: http://it.wikipedia.org/wiki/Conflitto_del_Darfur
Alcuni links a riguardo:
http://www.savetherabbit.net/darfur
http://www.unicef.it/flex/cm/pages/ServeBLOB.php/L/IT/IDPagina/1782
http://www.senato.it/notizie/136525/136526/139567/genpagina.htm
Iscriviti a:
Post (Atom)
