n° 219
Novembre 2017
Dicembre 12, 2017, 11:47:15 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1] 2   Vai giù
  Stampa  
Autore Discussione: Z80 e display TFT  (Letto 6724 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« inserita:: Maggio 15, 2016, 12:53:44 »

Ieri mentre giravo per il mercatino di marzaglia ho trovato e comprato un TFT marcato TFT_320QVT, da quello che ho letto su internet il diplay ha un regolatore per i 3,3volt a bordo, quindi posso alimentarlo a 5volt che i 3,3 saranno prodotti a bordo e ho letto anche che i segnali TTL li vorrebbe a 3,3volt ma qualcuno lo ha interfacciato con l'arduino UNO mettendo semplicemente in serie resistenze da 10k, mi confermate che si puo' fare questa cosa ?

Lo schema del diplay e' questo qui:
https://forum.arduino.cc/index.php?action=dlattach;topic=183302.0;attach=104312

Pensavo di ottenere i 16bit dati usando due 74HC374, ma non mi e' chiaro se e' necessaria la bidirezionalita' o se basta poterlo scrivere o se si puo' usare anche a 8bit. Non mi interessa la funzione SD e nemmeno quella touch.
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #1 inserita:: Maggio 15, 2016, 03:34:43 »

Da quello che vedo/leggo il modulo in questione presenta un ingresso Vcc, tensione di alimentazione la quale deve essere 3V e comunque non superiore ai 3,3V perché dallo schema riportato NON ha un regolatore (LDO o meno, ma in questi casi è un LDO) interno o come IC a parte. Ergo devi alimentarlo a non più di 3,3V.
Infatti i pin 2 e 3 del connettore "J2 Con 37" in alto riportano chiaramente 3V.

Tu con cosa lo devi interfacciare? Se con il micro ATMega328 stand-alone (quello della Arduino Uno per intenderci) allora puoi alimentare il micro a 3,3V limitando però la frequenza a 8MHz.

C'è chi ha utilizzato quel display con un micro della Freescale:

http://blog.lincomatic.com/?p=1448

a 3,3V. Cosa intendi per bidirezionalità? Presumo il fatto di dover/poter trasmettere ad opera del uC e di ricevere qualche cosa dal display?

Una bidirezionalità devi necessariamente averla per la presenza del bus SPI: ma per questo l'ATMega328 ha i pin per questa specifica funzione.


Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #2 inserita:: Maggio 16, 2016, 01:51:49 »

Meglio leggere il datasheet del modulo, e magari anche quello del controller SSD1289 (presente nella revisione 2 di codesto display QVGA very low cost).
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #3 inserita:: Maggio 17, 2016, 03:25:12 »

Una bidirezionalità devi necessariamente averla per la presenza del bus SPI: ma per questo l'ATMega328 ha i pin per questa specifica funzione.

Scusa sto parlando dello Z80 non dell'altmega con lo spi ? il modulo display ha a bordo un regolatore 65Z5 per ricavare i 3,3volt dai 5 volt che posso fornire io, l'unica cosa che vorrei capire e' come interfacciare il BUS dati PARALLELO dello Z80 al display.

Avrei a disposizione anche il modulo TFT LCD Mega Shield v2.2 che penso adatti i segnali a da 5 a 3,3, ma non so se usandolo mi complico il lavoro rispetto cercare di interfacciarlo direttamente. http://www.elecfreaks.com/store/lcd-tft01-arduino-mega-shield-v20-shd10-p-214.html
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #4 inserita:: Maggio 17, 2016, 03:41:28 »

Meglio leggere il datasheet del modulo, e magari anche quello del controller SSD1289 (presente nella revisione 2 di codesto display QVGA very low cost).

Quel display e' diverso dal mio
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #5 inserita:: Maggio 17, 2016, 03:51:20 »

Codice:
Scusa sto parlando dello Z80 non dell'altmega

Giustamente, come da titolo del thread di apertura. Mi ero fatto ingannare dalla citazione all'Arduino Uno e dal micro che utilizza. In più nello schema elettrico che hai riportato non c'è il regolatore, comunque poco importa perché se dici che c'è allora c'è Sorriso e semplifica la vita a tutti.


Sembrerebbe che il display in questione necessiti di 16bit di dati (forse leggendo il datasheet si potrebbe capire se siano tutti necessari o meno, un po' come accade con i "piccoli" display LCD 16x4 e simili che è possibile pilotare anche con 4 pin in luogo di 8 e senza utilizzare i bus SPI/I2C) e in questi casi dovresti far inviare dallo Z80 due sequenze di dati ad un buffer che poi li invierà ai pin del TFT.

Ci sarebbe un'altra soluzione (da verificare perché non ho i due componenti in questione e quindi non posso fare la prova) nella quale sembrerebbe che sia possibile utilizzare 8 bit dati. Questo è visibile nello schema alla fine al link che segue dove viene utilizzato un ATMega128 per pilotare, con 8 bit dati, il TFT in questione. In quel caso (link che segue) il riferimento è ad una libreria della MikroElktronika (che se ben ricordo fa alcuni IDE C/Pascal etc per micro PIC, Atmel etc).

http://download.mikroe.com/documents/compilers/mikrobasic/avr/help/tft_library.htm

Il tutto sta a vedere se ne è possibile il "porting" nel caso dello Z80 e la complessità del codice che ne scaturirebbe ...altrimenti è meglio fare due invii dei dati su 8 bit (ma anche qui poi andrebbe vista la bontà della scelta).
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #6 inserita:: Maggio 17, 2016, 03:54:26 »

No, no mio errore.  Scioccato

Il regolatore in quello schema che hai riportato c'è, è il classico LDO, CE6209:

ftp://ftp.heanet.ie/mirrors/sourceforge/l/lc/lcdtfthx8347a/docs_hx8347-a/CE6209-EN-20.pdf

Ora è ufficiale, sono in fase rincorimba.  Ghigno
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #7 inserita:: Maggio 19, 2016, 02:18:50 »

Se la libreria non va potrebbe anche non interessarmi molto, infondo mi sono scritto da solo le librerie da pilotare una CompactFlash e mi sono inventato un DOS per z80 da zero, essendo un giocattolo fine a se stesso con le cose gia' fatte non avrei piu' niente con cui divertirmi, pensavo anche io che forse poteva fuzionare anche solo a 8bit, perche' immagino che abbia solo una manciata di istruzioni, quindi magari gli 8 bit alti li connetto a massa e al limite potro' usare solo 256colori forse ma per adesso non mi importa. Mi resta da capire come interfacciare il bus dati 3,3volt del display col bus 5volt dello Z80 ... mi sapete suggerire il modo ? Su un forum ho letto che qualcuno lo ha interfacciato all'arduino uno (5V) mettendo solo delle resistenze da 10k in serie al segnale, mi sembra una soluzione molto semplice da mettere in atto ma forse che non sia troppo semplice e innafidabile, e non ho capito se il display e' un device in sola scrittura (nel caso le resistenza potrebbero funzionare) o anche in lettura (nel caso magari poi lo Z80 potrebbe non riconoscere come 1 i livelli a 3.3volt). Poi sospetto che la resistenza sommata alle capacita' parassite possa trasformarsi in un passabasso e impedire il funzionamento visto che lo Z80 mi gira a 5mhz ...
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #8 inserita:: Maggio 19, 2016, 04:29:53 »

Se i livelli non sono compatibili, puoi sempre realizzare un level-shifter.

Puoi prendere come riferimento quei semplici circuiti costituiti da un paio di MOSFET e qualche resistenza che vengono adottati, ad esempio, in particolare sul bus I2C (quindi per  le linee SDA e SCL, dati e clock) quando da un lato si ha, la butto lì, un sensore alimentato a 3,3V e dall'altra un "sistema" alimentato a 5V.

Altrimenti detto una cosa del genere:

http://playground.arduino.cc/uploads/Main/i2c-level-shift-mosfet.png

in questo caso le resistenze che si vedono sono di pull-up (non sempre necessarie, dipende dove devi andare a collegare le linee dati e clock. In sostanza se sono presenti o meno già delle resistenze di pull-up).
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #9 inserita:: Maggio 19, 2016, 05:32:27 »

Partendo dall'ovvio presupposto che un prodotto non documentato è sostanzialmente un prodotto inutile, mi pare che l'unico problema sia quello di trovare la relativa documentazione, dal momento che i riferimenti sul forum platealmente dilettantesco di Arduino sono solo confusionari e incompleti.

Non mi pare un passaggio inaffrontabile capire quale controller è installato su codesto aggeggio e regolarsi di conseguenza. Immagino che la sigla sul chip sia leggibile senza particolari problemi... Dovrà poi pur esservi da qualche parte una documentazione, che ovviamente vada oltre le quattro inutili amenità riportate nello "schema" (per l'esattezza, nulla più che una semplice specifica delle connessioni) e sui forum amatoriali già linkati.

Quel che si può già dire a priori è che con probabilità normalizzata p tendente all'unità sarà sempre possibile pilotare tale banale controller in modalità 8 bit con protocollo 8080 o 6800, come quasi universalmente definiti nella letteratura dei produttori. La rilettura dello stato sul bus dei dati (e quindi, in ultima analisi, la bidirezionalità della connessione) può risultare importante se le prestazioni del display, inserendo un delay di durata fissa dopo ogni scrittura, risultano poco soddisfacenti, come è spesso il caso con questi prodottini dozzinali.

In ogni caso, quanto agli altri "problemi", esistono dozzine di level shifter bidirezionali integrati, latchati e non, per adattare i vari livelli CMOS, TTL, TTL-3.3 (LVTTL) con le più varie molteplicità, in comodi contenitori TH o SMD, come pure level shifter dedicati per SPI, I2C e quant'altri, con o senza isolamento galvanico. Risulta sufficiente guardare un qualsiasi catalogo di glue logic, per cominciare.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #10 inserita:: Maggio 20, 2016, 03:42:05 »

Poi hai provato almeno la minimale possibile soluzione di level-shifter?
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #11 inserita:: Maggio 21, 2016, 04:32:26 »

La prossima volta che devo comprare qualcosa da RS compro un paio di 74LVC245
Registrato
flameman
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 76


Mostra profilo E-mail
« Risposta #12 inserita:: Giugno 13, 2016, 09:19:40 »

mi sono scritto da solo le librerie da pilotare una CompactFlash e mi sono inventato un DOS per z80

hai anche una shell con parser?
hai modo di caricare app in ram da CF e di lanciarle (long jump)?

tempo permettendo, sto sviluppato una scheda 68k, un ROM emulator ethernet (emula 1Mbyte, e spinge fino a 300Kbyte/sec in upload, tcp/ip), e pian piano sto riempiendo l'immagine della ROM con routine di bacic-IO, BSP, etc ... modello di sviluppo simile ai RISCPC

loro hanno l'intero OS e servizi, in ROM, e mi ingolosisce moltissimo questo approccio

z80 e' limitato a 64Kbyte di indirizzamento, di conseguenza il software va distillato a puntino, 68K permette fino a 16Mbyte di indirizzamento (un 68020 arriva a 32 bit di address usabili, 68000 e 68008 hanno delle limitazioni), posso permettermi 1Mbyte di rom, 8Mbyte di ram, e di stare un po' + largo, tanto da sviluppare in C piuttosto che in assembly

prevedo di usare 512Kbyte per basic-IO e BSP, il restante spazio una App minimale che ne faccia uso, probabilmente un kernel mono task (tipo DOS) + shell e utility filesystem e rete

anche nel mio caso: giocattolo "tanto per dire la mia" al mondo informatico di un tempo ormai passato che non tornera' piu'


qualcuno lo ha interfacciato all'arduino uno (5V) mettendo solo delle resistenze da 10k in serie al segnale

non e' una buona soluzione, direi che sta in piedi quasi solo perche' z80 ha un clock molto basso, a 5Mhz il signal integrety non ne risente, pero' e' molto meglio usare un voltage level shifter, di contro si complica un po' il PCB
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #13 inserita:: Agosto 09, 2016, 04:12:03 »

mi sono scritto da solo le librerie da pilotare una CompactFlash e mi sono inventato un DOS per z80

hai anche una shell con parser?
hai modo di caricare app in ram da CF e di lanciarle (long jump)?

Il parser della shell e' molto semplice quando digiti qualcosa sulla linea di comando cerca un file eseguibile con quel nome nella dir locale e se l'esito e' negativo la cerca nella dir di sistema, i comandi accettano parametri anche molteplici, tipo posso dare il comando "upload -x nomefile.z80" upload avvia l'upload di un file nella dir locale, -x da l'attributo di eseguibile al file e nomefile.z80 ovviamente e' il nome del file che viene creato nella dir corrente.

Quando si digita il nome di un file eseguibile esistente questo viene caricato in ram a partire da un'indirizzo di partenza "in poi" per la lunghezza del file poi viene eseguito un jump alla prima istruzione dell'eseguibile, gli eseguibi caricati in ram riescono a prendere i parametri che erano stati passati alla linea di comando prima del caricamento (gestito dal kernel) usando semplicemente delle locazioni di memoria condivise.
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #14 inserita:: Agosto 09, 2016, 11:08:35 »

La prossima volta che devo comprare qualcosa da RS compro un paio di 74LVC245

[OT]
Se può interessare, io acquisto su/da TME: http://www.tme.eu/it/
[/OT]
Registrato
Pagine: [1] 2   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines