|
|||||||
| Arcade | Registrazione | Blogs | Regolamento | Feedback | FAQ | Lista Utenti | Calendario | Segna come Letti |
| Ultimi 5 blog pubblicati su PcTuner Blog | ||
|
||
![]() |
|
|
Strumenti Discussione | Modalità Visualizzazione |
|
|
#1 |
|
Registered User
|
[USB-->Seriale]Raccolta informazioni!(lungo da leggere)
Salve Gente di pctuner!
E' il mio primo messaggio...spero di una lunga serie ![]() Prima di tutto un congratulazioni alla community perchè molte delle migliori teste per quanto riguarda modding/W Cooling/Elettronica è radunata su questa board! Buona lettura! 21-Marzo-07 Passiamo a noi!E' da un pò che ho realizzato(una cavolata)un interfaccia che mi permette di gestire il display del 3310/3330/simili tramite interfaccia parallela e usando uno dei tanti software come lcdinfo, lcdhype(che ritengo il + valido). Adesso mi stava venendo il pallino di fare questa interfaccia USB! Mi sono messo a cercare un pò in rete, e ho trovato tante informazioni ma la maggiorparte un pò troppo tecniche e approfondite per le mie conoscenze e i miei interessi... Allora prima di tutto ho scoperto che per collegare un display, un microcontrollore o qualsiasi altra cosa all'USB è molto + comodo abbandonare la parallela e passare alla seriale....Probabilmente voi state pensando che sono matto a dire di volerla fare USB e poi parlare di Parallela/Seriale...Invece è proprio così...Almeno non sono riuscito a trovare informazioni che permettessero di creare un'interfaccia direttamente USB ai vari dispositivi di mio(spero nostro)interesse. Torniamo al discorso della comodita della Seriale...mi spiego meglio... Esiste una famiglia di integrati che si chiamano FT232.Questi non sono altro che convertitori da Seriale/Parallela...Sono abbastanza, quindi studiarne approfonditamente il datasheet è una bella mattonata... Però il vantaggio di questi integrati è che integrano al loro interno molte cose...Per esempio il IC(Integrate Circuit) FT232R/FT232RQ possiede al suo interno un generatore di clock, che associato al quarzo adatto, riesce a tirare fuori 6/12/24/48Mhz inoltre possiede una eprom interna(non ne conosco però la natura e le caratteristiche costruttive) e ha gia all'interno tutto il necessario per la gestione dell'handshake dell'usb e della seriale(sia in un verso che nell'altro).In poche parole fa tutto lui. Altri modelli sono più semplici.Per esempio il IC FT232BM non possiede ne la Eprom e ha un generatore di clock a 6Mhz(sempre da collegare i pin al quarzo). Per ora mi sto informando su questo genere di Integrato che sembra risolvere il problema in oggetto al topic! Ho notato che il package di questo integrato si presenta in diverse forme..su un "famoso" sito di asteonline si trova sia la versione cavo(che integra sul pcb dello spinotto dell'usb tutto il necessario): sia la versione senza cavo(ma penso sia praticamente uguale): Qui si può trovare un mini-datasheet del nostro convertitore bello e pronto: datasheet Come vedete sull'uscita del circuito ci sono 6 contatti: 1)GND: Massa 2)/CTS: Clear to send control input(Input)<--non mi è ancora molto chiaro cosa fa...se qualcuno saprebbe spiegarmelo(è collegato a reset solitamente nei display lcd ma non capisco, visto che sia /CTS sia /reset sono pin input) 3)VCC: Tensione di alimentazione 4)TXD: Dati trasmessi(Output) 5)RXD: Dati Ricevuti(Input) 6)/RTS: Richiesta di invio dati(Output) Questo tipo di cavo(come vedete dallo schema del datasheet)si basa su un FT232RQ. Nello specifico, questo integrato si basa sull'UART(Universal Asynchronous Reciver/Trasmitter che è praticamente un itegrato per la ricezione e trasmissione di dati con la porta seriale(per intenderci è di solito gia integrato nei pic16fXX, colui che si occupa degli handshake e le altre cose con la rs-232(porta seriale)). Purtroppo non vi so dire perche questo cavo possiede l' FT232RQ e non l' FT232BM(ce ne sono anche altri). Queste per ora sono tutte le info che ho raccolto...Spero di poter allungare un pò il brodo domani!Se voi sapete altre info vi prego di farmi sapere! A presto! 22-marzo-07 Introduzione Come da oggetto, propongo oggi il progetto(ancora in fase di studio, e spero presto in fase di realizzazione), del circuito completo per collegare il Display del 3310/3330/simili alla porta USB. Quello che sto proponendo è una realizzazione partendo dalle basi, ovvero acquistando tutti i componenti separati e costruirsi con le "proprie mani" un convertitore USB<-->rs232 e non di comprarne uno gia fatto, non tanto per la spesa in se per se(che poi alla fine si risparmia comprandone uno gia prodotto su larga scala)ma principalmente per espandere le proprie conoscenze(mio padre dice sempre, e io ne sono orgoglioso:"impara l'arte e mettila da parte")e per sentirsi realizzato alla fine di un progetto realizzato con le proprie capacità! 1.Cosa serve Software: LCDHype Driver per diversi display Virtual COM Port:dovrebbe essere il driver che permette al nostro IC di essere riconosciuto come una porta seriale anche se collegata all'usb(nel sito ci sono sia i link al download sia una breve descrizione) D2XX arebbero dei drivers che permettono l'accesso diretto all'usb tramite chiamate di funzioni presenti in alcune DLL(in parole molto molto povere potete agire direttamente dall'usb sui pin del nostro IC FT232)Hardware:
Saldatore Stagno Una basetta 1000Fori: ![]()
![]() Resistenze: 2X27 Ohm 1X470 Ohm 1X1.5 KOhm 3X2.2 KOhm Condensatori: 1X10 nF(nano) 3x100 nF 1X33 nF 1X1 uF(micro) 1x10 uF N.B.:l'ultimo condensatore deve essere elettrolitico, gli altri meglio non elettrolitici! Connettore usb Femmina Type B MINI: ![]() Ferrite Bead: ![]() 3310/3330 series display LCD: ![]() Cavo flat 2.Progettazione Prima di tutto tengo ad evidenziare che è molto utile avere conoscenze basilari sul materiale che stiamo utilizzando. Quindi mi ritengo il dovere di inserire in questa spece di guida un pò di mie conoscenze in modo che anche chi è alle prime armi può raccapezzarsi in queste righe! Universal Serial Bus Partiamo dalla cosa più scontata..ovvero l'USB Queto acronimo sta per Universal Serial Bus, e i plug di connessione si possono trovare in 3 aspetti: 1.USB type A 2.USB type B 3.USB type Mini La foto descrive meglio: ![]() I plug USB Mini ci sono di 3 generi, ma sono pressocchè identici a livello di Pin-out(impossibile spiegare perchè fare 3 tipi di plug diversi se poi fanno la stessa identica cosa...vallo a chiedere a Canon, Hp e Mitsubishi...) Io ho scelto di usareil plug USB type Mini, visto che è il più piccolo e quindi quello che più facilmente può essere integrato in un basetta senza che sia troppo ingombrante. E' utile avere una tabella con il Pin-out delle varie porte USB e potete visionarlo qui. Come vedete il Pin-out è abbastanza semplice. Troviamo la Vcc(tensione di alimentazione che nel caso dell'usb è pari a 5V e eroga una corrente di 500mA), i pin Data+(invio dati) e Data-(ricezione dati) e il pind GND(massa). Penso che questa infarinatura sull'usb a livello hardware possa bastare per ora! Il Display Voi vi chiederete perchè ho scelto proprio il display del 3310/3330. Bhe la risposta è facile. Prima di tutto perchè è abbastanza facile reperirlo, visto che chi non ha avuto un 3310 in famiglia apparte me? E visto che ormai è passato abbastanza tempo dall'uscita di questo cellulare è facile reperirne qualcuno a pochi € o addirittura gratis. Inoltre prima di cimentarmi in questo progetto avevo già interfaccito questo display tramite porta parallela, con un circuito pressocchè banale e di facilissima realizzazione. Un altro motivo è che non sono il pioniere di questo progetto, ma già più di qualcuno ne ha realizzato uno, quindi ho la certezza che può funzionare e in giro c'è abbastanza materiale per riuscire a ricavare le informazioni necessarie alla realizzazione. Detto questo passiamo ai fatti. L'lcd si basa sul controller Philips PCD8544, qui potete trovare il datasheet. Adesso devo farvi un chiarimento.Il datasheet è del Controller Philips, non del display, quindi alcune delle informazioni presenti sul datasheet non saranno necessarie per la realizzazione del progetto(ad esempio se guardate il Pin-out del controller, a pagina 5, noterete che esistono alcuni pin, per esempio T1,T2,T3 e T4 che sul display non sono utilizzati).Questo controller non gestisce solo questo genere di Display, ma anche altri, quindi questo datasheet è stato ideato per soddisfare tutte le esigenze. Adesso parliamo un pò di questo semplice display. Il display si basa su un DDRAM(Display Data RAM) suddivisa in 6 blocchi da 84Byte(6 X 8bit x 84). C'è una corrispondenza diretta tra il bit presente nel DDRAM e il dot da accendere nella matrice dell'lcd! I formati delle istruzioni inviate al display sono suddivise in 2 modi a seconda del pin D/C(ricordo che D sta per dati ed è attivo alto, mentre C sta per comandi ed è attivo basso).Inoltre se il segnale è alto(quindi si parla di dati), il byte che segue viene direttamente messo nella DDRAM, se invece è basso, allora i bit successivi vengono interpretati come comandi.Sempre a pagina 14, guardando la tabella 1, troviamo una descrizione dei vari comandi. Ci sono 2 bit chiave chiamati D ed E che gestiscono il display.A pagina 14 del datasheet del controller, tabella 2, troviamo la loro tabella delle verità. Troviamo il vettore di 3 bit Y che ha la funzione di accedere al blocco che interessa(000-->Blocco 0....101-->Blocco 5) C'è un bit H che indica quale set di istruzioni usare(se quello base o quello avanzato) Quindi, ora conosciamo nello specifico l'aspetto che devono avere i bit che arrivano serialmente sul pin SDIN del display.Questi bit vengono registrati ad ogni fronte di salita del clock (pin SCLK) Adesso schematizziamo la cosa per renderla più comprensibile:
Il Pin-out specifico del display è il seguente(quando c'è lo slash davanti significa che sono attivi bassi): 1)Vcc (Corrente di alimentazione che deve essere compresa tra 2.7 e 3.3V) 2)SCLK (Segnale per il clock) 3)SDIN (Segnale per i dati/indirizzi) 4)D/C (Switch per dati o comandi/indirizzi, se alto allora il controller intende che i bit ricevuti sono dati, altrimenti sono indirizzi/comandi) 5)/CS (Chip Selected, ovvero indica al chip che deve funzionare. Lo attaccheremo a massa in modo da dirgli di essere sempre acceso, considerate questo pin come un interruttore) 6)GND (Massa) 7)VOUT (Tensione in uscita dal Display. Anche questo metteremo a massa aprendo il circuito sfruttando le caratteristiche di funzionamento di un condensatore in Corrente Continua) 8)/RST (Reset,immagino sappiate a cosa serve, che collegheremo alla VCC in modo da tenerlo sempre disattivato) Ultima Modifica di FluidGuitar : 28-03-2007 05.59.16. |
|
|
|
|
#2 |
|
Registered User
|
23-marzo-07
Adesso che conosciamo il funzionamento e le caratteristiche strutturali del display possiamo inplementarlo nel giusto modo all'interno del nostro circuito! Il circuito integrato FT232BM Molte informazioni riguardo questo tipo di integrato le trovate nelle righe a inizio pagina.Bisogna però capire quali sono i pin che a noi possono tornare utili! Qui trovate il datasheet. Vi consiglio di tenerlo alla mano durante la letture perchè faro spesso riferimenti ad esso. A pagina 7 trovate il Pin-out del nostro IC. Vediamo nello specifico i pin che ci servono
i pin 18,19,20 sono dei pin particolari, rispettivamente sono /RI, /DCD, /DSR (quindi tutti e 3 attivi bassi). Il pin /RI è un Request Input, ovvero un pin che manda un segnale all'host USB e lo avverte, se si trova per esempio in stato di sospensione, di attivarsi. Il pin /DCD è denominato sul datasheet come Data Carrier Detect Control Input, ed un pin di controllo è il rilevamento della portante dei dati. Il pin /DSR Ora conosciamo le varie funzioni che svolge il nostro IC e possiamo proseguire con la progettazione del circuito. 28-marzo-07 Lo schema elettrico. Per lo schema elettrico potremmo, impegnandoci un pò, a costruirlo anche noi, però per comodità io ho preso uno schema già fatto e l'ho studiato minuziosamente in modo da capirlo come se l'avessi progettato io. Vediamo lo schema: (Click per ingrandire) ![]() Allora studiamo adesso il circuito partendo dall'angolo in alto a sinistra. Come vediamo c'è un piccolo circuito, formato da un semplice parallelo tra 4 condensatori. Questo circuito serve per una cosa specifica, il parallelo serve per evitare che ci siano sbalzi di tensione, quindi è una protezione del circuito. Spieghiamo meglio perchè. come sappiamo in corrente continua i condensatori si comportano come circuiti aperti, ma in alternata si comportano come cortocircuiti(detto in parole molto infomali). Bisogna però dire che nel nostro caso, la corrente è sempre in continua e non in alternata, che provocherebbe guasti irreversibili ai nostri componenti. Gli unici casi in cui possiamo capitare, per qualche istante, in corrente continua è al momento del collegamento/scollegamento dell'alimentazione(quindi dell'usb) al circuito. Infatti in questo caso è possibile che si generino transitori, ovvero che nella rete ci sia una tensione non voluta, e proprio in questo caso(ovvero quando la tensione diventa negativa)il condensatore si occupa di rendere quel parallelo come un cortocircuito e quindi scaricare direttamente a massa il transitorio senza incombere in rotture dei componenti. I valori di tali condensatori prendiamoli per buoni. Adesso spostiamoci a destra, e notiamo il plug USB, nello schema del link è un connettore Type-A, ma grazie alla tabella con i vari standard dei connettori USB possiamo collegare il Type-Mini. Notiamo subito una spece di induttore sulla line Vcc, esso è ferrite, ovvero un materiale ferroso che ha il compito di filtrare la Vcc da distrurbi e rumore (come per esempio il cavo VGA del monitor ha quel bozzo vicino al connettore). Dopo la speigazione pin per pin dell'IC FT232BM è facile capire com'è collegato. R14 ed R15, sono valori standard presi dal Datasheet e come essi anche R13, C11, R12 e C8. Possiamo ignorare i 3 tasti Blu presenti nel circuito perchè il loro scopo è superfluo. Importante è invece la gestione della retroilluminazione. Infatti come detto nella descrizione del pinout, e come si nota dal circuito, il pin dell'IC numero 21 è collegato, tramite una resistenza di valore appropriato ad un transistore BJT BC546A. Ora spieghiamo il suo funzionamento in parole povere. Se arriva un segnale alto, la corrente guida la base e il transistore npn conduce e porta a massa il collettore, chiudendo il circuito e facendo accendere i led. Se invece alla base nn arriva corrente, il circuito resta aperto e quindi i led nn conducono. Anche in questo caso, come per il circuito di protezione per i transitori, formato dai condensatori in prallelo, abbiamo spiegato con concetti poco formali, e sarebbe necessario di un approfondito studio per capire il funzionamento del transistore. In basso a destra troviamo la presenza di un quarzo e di una EEPROM, ma ne descriveremo l'utilità e parleremo delle EEPROM in un secondo momento. Adesso diamo uno sguardo al Display LCD. A prima vista questo display è diverso dal nostro che abbiamo ricavato smembrando il 3310, infatti esso ha 9 pin invece di 8. Bhe non vi preoccupate perchè questo circuito è fatto con un display di un 3210 che possiede 9 pin, ma il controller è il solito e anche i set di istruzioni. L'unico pin di cui differisco è il pin OSC che in questo caso è collegato a Vcc e invece nei display dei 3310 non è presente perche collegato internamente a Vcc. Dal Datasheet del controller del display possiamo capire xche il pin 8(il Vout) sia collegato a massa con il condensatore. Per i collegamenti, lo schema parla da solo, e non c'è nulla di complicato. Penso che a livello di progettazione base e conoscenza dei componenti siamo abbastanza preparati. Possiamo passare quindi ad una realizzazione del circuito. Prima però devo procurarmi un display funzionante. Spero che in un paio di giorni mi arrivi il display che ho ordinato e potremmo andare avanti con una descrizione passo passo del montaggio dei vari componenti. Ultima Modifica di FluidGuitar : 29-03-2007 08.07.58. |
|
|
![]() |
Per le vostre immagini su questo forum potete usare PcTunerUp! Iscriviti gratuitamente alla nostra newsletter. |
| Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 visitatori) | |
| Strumenti Discussione | |
| Modalità Visualizzazione | |
|
|