23 I/O ATmega328

nelle specifiche di arduino uno parlano di 14 pin I/O e e 6 analog.
nel datasheet dell'Atmega328 di ATMEL parlano in vece di 23 pin I/O
ora mi chiedevo se via software si potessero recuperare questi pin e capire meglio quali sono perché anche se si riuscisse a far diventare i pin rx(0) tx(1) e i pin analogici dei normali pin I/O sarebbero 20 e non capisco dove sono gli altri 3.
la domanda è come fare a usufruire di tutti e 23 i pin digitali.

secondo me,non tutti sono riportati sulle connessioni..per esempio,se non ricordo male,atmega2560 ha 84 I/O..ma come forse sai,la mega non ha tutte 'ste connessioni..

Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..

ratto93:
Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..

Non è complicato, è che:

  1. non puoi farlo sull'Arduino perché su quei pin ci sono circuiti o funzioni addizionali: ad esempio, sul pin di reset c'è un circuito aggiuntivo mentre sui pin del quarzo c'è un risonatore ceramico esterno. Puoi disattivare il pin di reset ma dopo non puoi più programmare il micro. Puoi impostare lùil risonatore interno ma dopo non funziona più gran parte del codice di Arduino perché è sviluppato per lavorare a 16 MHz.
  2. devi poi accedere a quei pin usando i registri e manipolandoli direttamente, non hai le funzioni digitalRead/Write capaci di utilizzare quei pin.

leo72:

ratto93:
Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..

Non è complicato, è che:

  1. non puoi farlo sull'Arduino perché su quei pin ci sono circuiti o funzioni addizionali: ad esempio, sul pin di reset c'è un circuito aggiuntivo mentre sui pin del quarzo c'è un risonatore ceramico esterno. Puoi disattivare il pin di reset ma dopo non puoi più programmare il micro. Puoi impostare lùil risonatore interno ma dopo non funziona più gran parte del codice di Arduino perché è sviluppato per lavorare a 16 MHz.
  2. devi poi accedere a quei pin usando i registri e manipolandoli direttamente, non hai le funzioni digitalRead/Write capaci di utilizzare quei pin.

Alludevo a quanto hai esposto è che con una mano rotta non riesco a dilungarmi molto :grin:

ratto93:
con una mano rotta non riesco a dilungarmi molto :grin:

Ohi.... :astonished:

il mio progetto non si basa su arduino ho un atmega328 indipendente dal la modulo arduino quindi non avrei problemi nel fatto che nel mio progetto posso anche non mettere il bottone reset ma comunque almeno come posso sfruttare i pin analogici come pin digitali da codice e come devo impostare le porte 0 e 1 in modo da regolarizzare perché non si comportano da veri e propri pin I/O?
almeno da arrivare a 20 porte

Puoi sempre usare un multiplexer...

ilmandorlone:
il mio progetto non si basa su arduino ho un atmega328 indipendente dal la modulo arduino quindi non avrei problemi nel fatto che nel mio progetto posso anche non mettere il bottone reset ma comunque almeno come posso sfruttare i pin analogici come pin digitali da codice e come devo impostare le porte 0 e 1 in modo da regolarizzare perché non si comportano da veri e propri pin I/O?
almeno da arrivare a 20 porte

I pin analogici li puoi usare come digitali semplicemente dichiarandoli come tali, ad esempio il pin analogico A0 diventa pin digitale 14, A1 15, A2 16, A3 17, A4 18, A5 19 quindi nel setup

pinMode(14,OUTPUT); // A0
....
pinMode(19,INPUT); // A5

Per i pin 0 e 1 digitali se non usi la seriale sono dei normalissimi pin come gli altri.
Ciao

ratto93:

leo72:

ratto93:
Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..

Non è complicato, è che:

  1. non puoi farlo sull'Arduino perché su quei pin ci sono circuiti o funzioni addizionali: ad esempio, sul pin di reset c'è un circuito aggiuntivo mentre sui pin del quarzo c'è un risonatore ceramico esterno. Puoi disattivare il pin di reset ma dopo non puoi più programmare il micro. Puoi impostare lùil risonatore interno ma dopo non funziona più gran parte del codice di Arduino perché è sviluppato per lavorare a 16 MHz.
  2. devi poi accedere a quei pin usando i registri e manipolandoli direttamente, non hai le funzioni digitalRead/Write capaci di utilizzare quei pin.

Alludevo a quanto hai esposto è che con una mano rotta non riesco a dilungarmi molto :grin:

ora capisco cosa intendevi nell'altro topic quando ho detto hce Menniti era un razzo a scrivere :roll_eyes:

ok grazie @Pelletta

un ultima domanda non mi ricordo in che progetto me ne aro accorto ma avevo notato che i pin digitali 0(RX<-) e 1(TX->) non si comportavano molto bene

in cosa non si comportano bene..comunque,se non sbaglio,Rx è collegato al chip dell'usb attraverso una resistenza di 1 kOhm..ma nn sono sicuro..