Newsgroup: it.hobby.elettronica.digitale
Titolo: adattatore di interfaccia da I2C a driver di LCD con HD4478

salve a tutti! sto cercando di realizzare un firmware da installare su
un pic di "basso costo" per renderlo abile a controllare con una sua
porta un display lcd controllato con il famoso hd4478 o altri tipi di
lcd con integrati analoghi.
spiego meglio: uso PIC di vario tipo, e per non sprecare pin volevo
demandare a un pic su una linea I2C il compito di pilotare un diplay
lcd. questo pic slave sarà pilotato dal pic master a cui faccio
gestire tutte le operazioni sulla scheda.
in commercio esistono soluzioni come questa: 
http://www.i2c.byvac.com/ar_bv4218.php
ma volevo evitare di comprarla e tentare di autocostruirmela. per
l'hardware non ci sono problemi. per il firmware sto cercando set di
istruzioni in assembler già pronti da inserire nel mio listato, da
richiamare a comando come sub (per es: scrivi C, scrivi A, scorri
automaticamente o posizionati lì...)
motivazioni:
i display I2C costano, secondo me, troppo. mentre i display usuali
hanno prezzi irrisori (da 5 euro in su).
un pic 16f84 può sicuramente gestire questa cosa e ne ho un cassetto
pieno.
ho già implementato il firmware per far gestire il protocollo I2C a un
pic che non potrebbe farlo (vedi il 16F84 che non ha l'implementazione
hardware) e quindi penso che metà del lavoro l'ho già fatta.
mi potete aiutare? ho googolato un casino, ma per ora niente.
ps. scrivo direttamente in assembler, quindi non ho dimestichezza con c
++ o altri compilatori grafici. lo so, sono rimasto all'età della
pietra, ma mi piace scrivere esattamente quello che il micro deve
fare...
grazie mille
matteo

fare...
Mah, programmare i PIC in assembler è una cosa da masochisti, io l'ho fatto una
volta tempo fa e ti assicuro che ne ho avuto abbastanza.
Salto paginato, stack hardware e limitatezza dei registri danno problemi.
Il mio consiglio è di usare un AVR, anche un Tiny2313 da meno di 1 euro potrebbe
fare facilmente al caso tuo, avendo la USI per la I2C e abbastanza pins di I/O
per grestire il resto.
Tra l'altro avendo una UART potresti anche usarlo con una interfaccia RS232 o
RS485.
Poi programmare un AVR in assembler è un divertimento, mentre programmare un PIC
in asm è più una sofferenza, meglio usare compilatori C o Basic.
Mi spiace per la tua scorta, ma il mio consiglio resta valido.
Se vuoi approfondire e magari scaricare assembler e simulatore WinAvr
http://www.avrfreaks.net/
Per programmare i chips ti basta un Ponyprog e costruire un semplice
programmatore, ci sono gli schemi sul sito.
http://www.lancos.com/prog.html
--
ciao
  Stefano

 il 16F84 ne ha 7+5 se non sbaglio, ci stai per il rotto della cuffia.
Pardon, ma un 44780 lo controlli anche solo con 4+2 (E, RS, 4 linee 
dati). Dipende da cosa ci vuoi fare.
PaoloC
PS: non sono espertissimo, ma con un AVR e 4+2 linee scrivo sul 44780 
senza problemi!

 ha

grazie mille per i consigli.
mmm...non ho mai provato con gli avr... penso che dopo questo sfizio
che mi voglio togliere darò un'occhiata agli avr...
che programmare in asm è una sofferenza non devi dirmelo.... :) lo so
già di mio guarda.
vediamo quello che riesco a fare con l'i2c col 16f84...
saluti
matteo


sisi hai ragione. il problema è solo mio: ho preparato un programma
con varie sub che gestisce un lcd, ma l'ho scritto pensando di usare
tutta la porta completa e non solo i primi 4 bit. e pensare di
riscriverlo per 4 bit mi crea sconforto!
uff, ora vedo...
ciao
matteo

 già di mio guarda.
Programmare in ASM con i PIC è una tragedia.
Con gli AVR farai tutt'altra vita.
-- 
Saluti


infatti non ho mai capito come hanno fatto a prendere vita così bene con 
quel cavolo di asm... ma....
per far lampeggiare un led (e sono diverse volte che lo scrivo) una pagina 
di codice!!! :O
:DDDD
saluti
coals 

Cerca "pic seriale lcd" sul sito grix, è un'ottimo punto di 
partenza,basta adattare il codice di "input" da seriale a i2c per il tuo 
micro ed il gioco è fatto.
Io l'ho realizzato e funziona benissimo (ovviamente io lo piloto via 
seriale con un'adattatore usb to serial).
Ciauz!


si ho già guardato...
in realtà avevo già fatto tempo fa un firmware che faceva da master su
un 16f88 che può fare solo da slave. e funziona. il problema è che via
firmware mi sto accorgendo che è molto difficile far fare da slave a
un micro che non ha implementato hardware questa possibilità (16f84 e
16f84a).
questo perchè ci deve essere la certezza che non risponda per caso
(vedi sequenza casuale di comandi sulla linea che corrisponde al suo
indirizzo). mi sa che il cassetto di 16f84 aspetterà nuovi usi...
nel frattempo il codice di controllo lcd è pronto e funge. mi manca
solo da scrivere il firmware che fa accetti dei comandi da i2c per
comandare a sua volta l'lcd.
uff, accidenti a me.
vedrò di comprarmi un kit di valutazione avr. avete link e consigli
dove comprarlo a buon prezzo voi che avete già esperienza di questi?
grazie
matteo

aggiorno questo post, così nel caso a qualcuno possa interessare può
leggere. :)
ho visto che implementare via software la funzionalità di slave in i2c
può introdurre eventuali errori di interpretazione da parte del pic
che non ha questa funzionalità "hardware", con effetti collaterali
imprevedibili se sulla linea i2c non c'è solo lui.
la parte software master dell'i2c su pic sprovvisti di tale opzione
(per es il 16F84) funziona ottimamente anche con quarzi del micro pari
al massimo installabile (basta fare opportuni ritardi).
il software che pilota il 44780 (cioè le varie sub) le ho realizzate e
funzionano. c'è solo la pecca della velocità, è più il tempo che il
micro deve attendere che quello utile di elaborazione, e il display va
in panne spesso per questo motivo (il pic è sempre troppo veloce).
sto valutando che è più facile usare un estensore di I\O su i2c per
pilotare un display che fare un programma che viaggi stand alone su un
altro micro.
l'unico problema rimane la memoria programma a disposizione sul micro,
che volevo rendere libera il più possibile per l'applicazione vera e
propria. togliere le sub di controllo lcd e qualche altra cosa (come
la lettura della tastiera ps2) mi rende la vita più semplice!!
aggiornerò questo post man mano che troverò buone nuove che ritengo
utili a un niubbo come me.
saluti a tutti!
matteo