PIC18F4550 come slave di un sistema I2C multi-master

12 Anni 5 Mesi fa #1 da Armando
Ciao,

intendo far comunicare un PIC18F4550 come slave con uno dei master I2C di un sistema (che funziona in modalità I2C multi-master).

Mi risulta che i pin RB0 ed RB1 siano quelli destinati alla comunicazione.
Ho però due dubbi:
1. Da datasheet si legge che "Selection of any I2C mode with the SSPEN bit set forces the SCL and SDA pins to be open-drain, provided these pins are programmed as inputs by setting the appropriate TRISC or TRISD bits."
2. Impiegando alimentazione separata per il mio slave i due resistori esterni di pull-up su RB0 ed RB1 di fatto collegano la linea da 5V dello slave a quella dei master. Posso evitare resistori di pull-up sul mio slave?

Grazie!
Armando

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Armando
  • Junior Member
  • Junior Member
Di più
12 Anni 5 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC18F4550 come slave di un sistema I2C multi-master
Ciao,

sul bus sono necessari solo due resistori di pull-up.
Uno per la linea SDA e uno per la linea SCL. O li metti sul Master o su uno Slave.
Se li colleghi ad entrambi e' come avere dei resistori in parallelo per cui avresti un resistore di pull-up di valore piu' basso.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 5 Mesi fa - 12 Anni 5 Mesi fa #3 da Armando
Ciao Mauro,

avevo già provveduto rimuovendo i jumper (SCL ed SDA) dalla Freedom II per evitare inutili resistori di pull-up.

Tutto funziona. L'unico problema al momento sembrerebbe occorrere allo spegnimento dello slave (alimentato dalla Freedom II): non riescono a comunicare gli altri slave con i rispettivi master obbligandomi a spegnere tutto e persino scollegare fisicamente la Freedom II (SCL ed SDA credo creino il problema) dal resto...
Comunque lo slave che sto implementando dovrà condividere la linea di alimentazione per cui il problema è limitato al solo debug.

Ciao
Armando
Ultima Modifica 12 Anni 5 Mesi fa da Armando.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Armando
  • Junior Member
  • Junior Member
Di più
12 Anni 5 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC18F4550 come slave di un sistema I2C multi-master
Ciao Armando,

oltre alle linee SDA e SCL scollega anche il Jumper J11, ovvero la capacita' di carico per l'LDO interno usato dal modulo USB.

Visto che sei preparato sull'I2C, puoi dare qualche suggerimento sul seguente post:

Aiuto I2C slave

In particolare puoi suggerire anche la libreria che usi.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 5 Mesi fa #5 da Armando
Ciao Mauro,

il Jumper 11 è già in pos. 2-3.

In merito al post in cui paoletto chiede consigli sull'I2C, al momento purtroppo non posso essere d'aiuto: non ho fatto uso di alcuna libreria e, pur funzionando la lettura e scrittura su slave, la gestione dell'I2C non funziona come credevo a seguito delle sue stesse richieste di interruzione, ma grazie ad interruzioni frequenti (anch'esse ad alta priorità) legate a fronti di salita e discesa sulla PORTB impiegata per acquisire un segnale...
In pratica, non volendo, mi ritrovo col polling del flag di interruzione dell'I2C ad ogni interruzione su PORTB. Assegnando priorità bassa alle interruzioni su PORTB non riesco infatti a comunicare con lo slave...

Quando avrò avuto le idee chiare sicuramente interverrò. Spero comunque che paoletto risolva prima... :D

Ciao!
Armando

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Armando
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login