Pagina 1 di 2
SPI, perché devo usare una resistenza di pull-down?

Inviato:
5 ago 2012, 21:02
da blow
Ciao a tutti, in un mio progettino piloto con la stessa SPI un enc28j60 e un port expander(MCP28S08), il tutto con un PIC24H.
Il tutto funziona, o quasi...quasi perché per farlo funzionare devo mettere una resistenza di pull-down sulla linea MISO, se non la metto l'enc non funziona a dovere, a volte va a volte no(lo vedo perché pingo continuamente la scheda, e senza resistenza a volte il ping fallisce, col la resisetnza invece va sempre bene), mentre il port expander funziona sempre.
Se uso una resistenza di pull-up invece l'enc non va mail!
Ora, mi chiedevo come mai è necessario mettere questa resistenza, potrebbe essere il circuito mal progettato e con disturbi qua e là?
Leggendo in rete ho visto che solitamente si mette una resistenza di pull-up su MOSI e MISO, non di pull-down...
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
5 ago 2012, 23:51
da simo85
PIC24H e MISO.. Sono io che faccio confusione o MISO (Master Input - Slave Output) è nomenclatura adottata sui micro AVR, come ad esempio si legge dalla AN
AVR151.Questi due PDF possono essere di aiuto.
PIC24H Family Datasheet.
PIC24H Overview Book.
blow ha scritto:potrebbe essere il circuito mal progettato e con disturbi qua e là?
Probabile, come anche il codice del firmware.
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
6 ago 2012, 0:20
da TardoFreak
Suggerimento.
Visto che implementare una SPI software pilotando direttamente le uscite e leggendo l' ingresso (oggi si chiama bit banding o qualcosa del genere) implementate la SPI mediante software (il sorgente è semplice, banale direi) utilizzando gli stessi pin della SPI poi, quando tutto funziona, si può pensare di usare la SPI del micro (i piedini sarebbero gli stessi).
In questo modo si ha tutto sotto controllo,la sequenza dei segnali la si sceglie in modo puntuale e poi ... non è detto che non basti. Di solito basta l' implementazione software... capisciammè
Poi fate un po' come volete.

Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
6 ago 2012, 13:48
da blow
gohan ha scritto:PIC24H e MISO.. Sono io che faccio confusione o MISO (Master Input - Slave Output) è nomenclatura adottata sui micro AVR, come ad esempio si legge dalla AN
AVR151.Questi due PDF possono essere di aiuto.
PIC24H Family Datasheet.
PIC24H Overview Book.
blow ha scritto:potrebbe essere il circuito mal progettato e con disturbi qua e là?
Probabile, come anche il codice del firmware.
Ho detto MISO perché il dispositivo che uso per la parte ethernet, cioè
questo ha la dicitura MISO nel pin dove io ho aggiunto la resistenza di pull-down.
Io ho collegato il pin SDI del PIC a quel pin, che il rispettivo SDO dell'ENC, come è giusto che sia.
Il firmware è fatto bene, ho dubbi sull'elettronica.
Ho notato che l'ENC funziona bene anche se scollego l'MCP dall'alimentazione, nota bene, dall'alimentazione, se lo scollego solo dal bus SPI i problemi rimangono, quindi potrebbe essere un problema dell'alimentazione?
Vi ringrazio
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
6 ago 2012, 13:51
da blow
TardoFreak ha scritto:Suggerimento.
Visto che implementare una SPI software pilotando direttamente le uscite e leggendo l' ingresso (oggi si chiama bit banding o qualcosa del genere) implementate la SPI mediante software (il sorgente è semplice, banale direi) utilizzando gli stessi pin della SPI poi, quando tutto funziona, si può pensare di usare la SPI del micro (i piedini sarebbero gli stessi).
In questo modo si ha tutto sotto controllo,la sequenza dei segnali la si sceglie in modo puntuale e poi ... non è detto che non basti. Di solito basta l' implementazione software... capisciammè
Poi fate un po' come volete.

Non ne capisco il motivo....l'SPI funziona benissimo, uso un logic analyzer per quello, i segnali sono corretti, ma probebailmente il logic analyzer filtra qualche disturbo, oppure è meno sensibile e gli va bene anche segnalo più debole, quindi non vedo problemi hardware.
Il software funziona.
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
7 ago 2012, 23:59
da blow
Ho notato che disconnettendo il pin SO dell'MCP tutto torna a funzionare correttamente, quindi sembra che l'MCP sporchi il segnale, anche quando il rispettivo slave select è disabilitato. È normale questo?
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
9 ago 2012, 0:25
da TardoFreak
La SPI che è inizializzata? Per comunicazione a due o tre fili?
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
10 ago 2012, 1:04
da blow
Ciao la SPI è inizializzata per comunicazione 2 fili, per inizializzarla uso la libreria spi.h del compilatore microchip C30.
Aggiungo lo schema(è fatto in paint prendendo i pezzi dai vari datasheet...scusatemi

)

Non gli ho messi, ma comunque nei pin dell'alimentazione del PIC ho messo anche un paio di condensatori per disaccoppiamento, e il tutto è alimentato dalla medesima linea 3.3V(per ora forniti dal PICkit 3).
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
10 ago 2012, 1:24
da IsidoroKZ
Non e` che le due uscite SO vanno in alta impedenza e l'ingresso del PIC prende rumore che per qualche ragione gli da` fastidio?
Re: SPI, perché devo usare una resistenza di pull-down?

Inviato:
10 ago 2012, 1:30
da blow
In teoria con il rispettivo slave select disabilitato devono andare in alta impedenza in modo da non dare fastidio all'altra linea, giusto?
Comunque ho notato anche che se stacco il logic analyzer(uso un saleae logic), funziona bene anche senza resistenza di pull-down, se lo attacco invece la devo mettere!
Questo mi fa pensare che c'è sicuramente del rumore e il segnale non è affidabile mi sa, non avendo un oscilloscopio perà non riesco ad individuare la fonte.
Sto facendo un po' di prove inserendo altri condensatori di disaccoppiamento, spostandoli, mettendo resistenze di pull-up ecc, ma per ora l'unica cosa che ha risolto il problema è la resistenza di pull-down, solo che non capendo il perché la devo mettere mi risulta un po' strano...
PS. per ora il prototipo è su breadbord, non so se conta qualcosa