Page 1 of 1

Aumentare gli I/O di un atmega8, come fare?

PostPosted: 14 Mar 2013, 21:51
by ulisse21
ciao a tutti.
come posso aumentare gli ingressi/uscite di un atmega8? magari aggiungendo altri integrati esterni. domanda: quali? e come collegarli? come micro mi va bene, ma ho necessità di aumentare il numero di I/O per gestire un display, una tastiera a matrice, uscite per rele e ingressi di contatti. in pratica mi vorrei cimentare nella costruzione di un antifurto per casa.

buon lavoro, e grazie per l'aiuto

W il PAPA.
questo Papa mi piace e a voi?

Re: Aumentare gli I/O di un atmega8, come fare?

PostPosted: 14 Mar 2013, 22:27
by flz47655
Ciao, ti do solamente qualche "keyword" di approfondimento:
- Shift register
- Port extender

Sarebbe possibile, meno costoso ed interessante in alcuni casi utilizzare una piccola CPLD per aumentare gli IO e magari liberare da qualche compito la MCU
Ciao

PS: E' presto per dirlo

Re: Aumentare gli I/O di un atmega8, come fare?

PostPosted: 15 Mar 2013, 12:32
by adriano
hahahaaa sto lavorando alla stessa cosa .3X 74htc541 .3X 74htc245 ... un 74138 ... :)))) ma conviene farlo ? non diventa un casino la programmazione ? compriamo un xmega con più porte ? sono le domande che mi faccio io. Quindi con 8 bit + 3 di controllo possiamo avere moltissime porte .
interesante argomento :)))

Re: Aumentare gli I/O di un atmega8, come fare?

PostPosted: 15 Mar 2013, 13:44
by deluca
Salve a tutti,
io vi consiglierei :
PCF8575 - REMOTE 16-BIT I2C AND SMBus I/O EXPANDER WITH INTERRUPT OUTPUT
http://www.ti.com/lit/ds/symlink/pcf8575.pdf

Stiamo parlando un un 16 linee di I/O, su ogni porta(2) potete leggere e scrivere.
Poi sfruttando gli indirizzi A0-A2 potete collegarne fino a 8 sulla stessa linea I2C fino a 400Khz
Avreste 16*8 = 128 linee di i/o. Inoltre il chip genera un interrupt non appena cambia lo stato su uno dei pin..... lo potete collegare ad un INT del micro.

buon fine settimana a tutti.

Re: Aumentare gli I/O di un atmega8, come fare?

PostPosted: 15 Mar 2013, 13:53
by flz47655
In alcuni casi uno shift register è ancora conveniente rispetto ad un "upgrade" della MCU, quando si va sui port extender che costano >1€ però spesso conviene l'upgrade se è disponibile una MCU uguale ma con maggiori IO.

Bisogna contare che un upgrade spesso non è indolore e richiede l'adattamento del firmware che si sta scrivendo (es. da ATMega ad XMega il passaggio non è proprio indolore), se si ha poco tempo un port extender può essere una soluzione più rapida.

In alcuni casi soluzioni come charlieplexing possono salvare la giornata.

Ciao

Re: Aumentare gli I/O di un atmega8, come fare?

PostPosted: 15 Mar 2013, 14:54
by adriano
@deluca / @flz

ciao ragazzi , grazie per le delucidazioni . La mia soluzione e dettata dal fatto di fare con ciò che si ha nel casetto :) ma la soluzione di deluca mi piace molto !
PS: Da deluca c’erra da aspettarsi ad una soluzione “professional” :)))
grazie per il pdf !!!!
ciao amici !!!

Re: Aumentare gli I/O di un atmega8, come fare?

PostPosted: 18 Mar 2013, 22:03
by m.brox
ohoh,
e pensare che per aumentare gli IO io ho usato due micro.
l'idea di usare questo componente mi sembra ottima. grazie deluca
non è che avete da postare uno stralcio di codice. no?

grazie

Re: Aumentare gli I/O di un atmega8, come fare?

PostPosted: 19 Mar 2013, 01:48
by adriano
m.brox wrote:ohoh,
e pensare che per aumentare gli IO io ho usato due micro.
l'idea di usare questo componente mi sembra ottima. grazie deluca
non è che avete da postare uno stralcio di codice. no?

grazie


atmega dualcore :) :) ...... io non posso aiutarti per il codice perchè sto muovendo i primi passi con i micro ( a grande fatica ) ...ma tu per favore uno stalcio di chema di come hai usato due micro per avere più porte ??? Non penso sia possibile colegare in parallelo due micro . Come fai a scrivere il codice ?
;)
ps: l'integrato consigliato da deluca è molto interessante ( averlo nel caseto , un pò più difficile ) pero se ci pensi che con due fili si possono avere tutte le porte che si vuole in ingresso o in uscita ..... e fantastico .
ps2 : aaaa ...dimenticavo ...l'integrato consigliato da deluca si trova anche nella sezione hardware del manuale di bascom avr e li c'è anche un pezzo di codice inerente la communicazione I2C bus : ( io al momento non ci ho capito molto e non ho un DS1624 da provare ) ...
vai in : bascom hardware .... "Using the I2C protocol"
qui : http://avrhelp.mcselec.com