problema porte I/O pic 18f452

un'altra domanda: ho un pic18f452 e ho a disposizione le linee da RA0 a RA5, da RB0 a RB4, da RC0 a RC5, da RE1 a RE4 (le altre sono impegnate):

Sul datasheet

formatting link

c'è scritto che le porte RB sono configurabili come I/O TTL e "can be software programmed for internal weak pull-ups of all inputs." cosa vuol dire? Ad ogni modo, posso collegare anche queste linee agli in/out TTL di altri dispositivi, così come farei per le RA?

grazie Paolo

-------------------------------- Inviato via

formatting link

Reply to
paolo il papero
Loading thread data ...

.. vuol dire che se programmi il portb come input (tutto o parte) puoi abilitare delle resistenze interne di pull up su ogni piedino..ciò non vale per i piedini del port b configurati come uscite. Dunque se li usi come igrressi e dall'altra parte piloti con un open collector (o con qualcosa es.pulsante che è in grado di fornire il solo pull down) devi introdurre il pull up, diversamente pilotando con un totem pole devi disabilitarle per evitare possibili problemi!!

"paolo il papero" ha scritto nel messaggio news: snipped-for-privacy@usenet.libero.it...

RA5,

Reply to
Stefano

a me occorre avere a disposizione il maggior numero possibile di porte come ingressi per leggere uscite digitali di altri dispositivi.

Ad esempio: supponiamo di dover leggere tre uscite di tre dispositivi. Questi dispositivi inviano continuamente una sequenza di bit. Posso usare tre piedini del portb come input?

grazie Paolo

-------------------------------- Inviato via

formatting link

Reply to
paolo il papero

.. certo..abilita il pull up solo se le uscite che collegherai su questi tre pin sono degli open collector (o open drain).. buon lavoro..Ciao Steno

"paolo il papero" ha scritto nel messaggio news: snipped-for-privacy@usenet.libero.it...

come

Reply to
Stefano

ok, grazie mille per la risposta. Approfondisco la domanda :)

i tre dispositivi comunicano dati secondo il protocollo rs232. I tre dispositivi non sono controllati in ingresso (mandano dati e basta). Supponiamo di dover fare la seguente operazione: leggo un byte dal primo dispositivo, lo memorizzo nella data eeprom interna e poi switcho al prossimo dispositivo. E così ciclicamente. in che modo posso switchare con il pic18f452 queste tre uscite su tre pin della portb, in modo anche da decodificare la sequenza di bit che arriva con protocollo rs232 dai tre dispositivi in bytes di informazione?

grazie! Paolo

Il 18 Gen 2006, 11:49, "Stefano" ha scritto:

tre

-------------------------------- Inviato via

formatting link

Reply to
paolo il papero

..non so come siano configurabili i pin di cui parli perchè non ho il datasheet davanti..cmq devi vedertela implementando un programmino che dia ascolto ad un pin per volta e vi resti fin quando non è conclusa la trasmissione, memorizzi il dato raccolto anche in ram e poi lo faccia uscire con protocollo uart (necessario se usi l'rs232) sull'altro pin del portb..NOTA:probabilemte devi implementare via software l'interfaccia uart su quel pin..(probabilemnte perchè ripeto non ho il datasheet)

"paolo il papero" ha scritto nel messaggio news: snipped-for-privacy@usenet.libero.it...

interna

con

ha

Reply to
Stefano

memorizzi il dato raccolto anche in ram e poi lo faccia uscire

ok. Ma il protocollo UART che funzione avrebbe nell'interfacciare i dati raccolti con protocollo rs232 alla EEPROM interna?

grazie Paolo

-------------------------------- Inviato via

formatting link

Reply to
paolo il papero

Il 18 Gen 2006, 12:46, "Stefano" ha scritto:

uscire

Aspetta, forse non mi sono spiegato bene:

il dato raccolto non deve uscire dal dispositivo. deve rimanere nella eeprom interna. Se usassi una eeprom esterna userei il protocollo i2c.per trasferire i dati. sostanzialmente il circuito deve

dare ascolto al dispositivo A, leggere un byte e scriverlo nella eeprom INTERN A, passare al dispositivo B, leggere un altro byte e scriverlo nella eeprom INTERNA passare al dispositivo C, leggere un altro byte e scriverlo nella eeprom INTERNA ripetere ciclicamente il tutto.

questo si può fare usando quel pic e i piedini del portB? (mi interessa almeno capire se è fattibile o c'è bisogno di hardware aggiuntivo) devo implementare protocolli aggiuntivi su quei piedini?

ciao P

-------------------------------- Inviato via

formatting link

Reply to
paolo il papero

..non lo so guarda sui datasheet..

1)molto probabilmente i piedini potrebbero non avere livelli compatibili con i livelli rs232 =>soluzione usa il convertitore di livelli MAX232 (è un integrato) 2)i piedini del port b di cui parli potrebbero non avere implementato in hardware il controllo USART o UART. soluzione=>implementa un controllo tramite un programmino software, o meglio vedi su quali pin del pic (lo vedi nei datasheet) è disponibile l'USART e usa un multiplexer per switchare i pin del pic che hanno l'USART hardware sui tre diversi dispositivi dai quali devi leggere...

non so che aggiungere ancora...evita di implemetare l'UART via software perchè non finisci più!!

"paolo il papero" ha scritto nel messaggio news: snipped-for-privacy@usenet.libero.it...

ha

dia

uart

eeprom

Reply to
Stefano

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.