Usa 10 kΩ, è un buon valore.
Per maggiori dettagli, dobbiamo guardare a cosa fa un pullup. Supponiamo che tu abbia un pulsante che vuoi leggere con un microcontrollore. Il pulsante è un interruttore SPST (Single Pole Single Throw) momentaneo. Ha due punti di connessione che sono collegati o meno. Quando si preme il pulsante, i due punti vengono collegati (l'interruttore è chiuso). Quando vengono rilasciati, non sono collegati (l'interruttore è aperto). I microcontrollori non rilevano intrinsecamente connessione o disconnessione. Quello che hanno senso è una tensione. Poiché questo interruttore ha solo due stati, ha senso utilizzare un ingresso digitale, che è progettato per essere solo in uno dei due stati. Il micro può rilevare in quale stato si trova direttamente un ingresso digitale.
Un pullup aiuta a convertire la connessione aperta / chiusa dell'interruttore in bassa o alta tensione che il microcontrollore può rilevare. Un lato dell'interruttore è collegato a terra e l'altro all'ingresso digitale. Quando si preme l'interruttore, la linea viene forzata in basso perché l'interruttore lo mette essenzialmente a terra. Tuttavia, quando l'interruttore viene rilasciato, nulla sta guidando la linea verso una particolare tensione. Potrebbe semplicemente rimanere basso, captare altri segnali vicini mediante accoppiamento capacitivo o eventualmente fluttuare a una tensione specifica a causa del piccolo bit di corrente di dispersione attraverso l'ingresso digitale. Il compito del resistore pullup è quello di fornire un livello elevato garantito positivo quando l'interruttore è aperto, ma consentire comunque all'interruttore di cortocircuitare in sicurezza la linea quando è chiuso.
Esistono due requisiti concorrenti principali sulla dimensione della resistenza di pullup. Deve essere abbastanza basso da tirare in alto la linea, ma abbastanza alto da non far fluire troppa corrente quando l'interruttore è chiuso. Entrambi sono ovviamente soggettivi e la loro importanza relativa dipende dalla situazione. In generale, il pullup è abbastanza basso da essere sicuro che la linea sia alta quando l'interruttore è aperto, date tutte le cose che potrebbero rendere la linea bassa altrimenti.
Diamo un'occhiata a ciò che serve per tirare su la linea. Osservando solo il requisito CC si scopre la corrente di dispersione della linea di ingresso digitale. L'ingresso digitale ideale ha un'impedenza infinita. Quelli veri non lo fanno, ovviamente, e la misura in cui non sono ideali viene solitamente espressa come una corrente di dispersione massima che può uscire o entrare nel pin. Supponiamo che il tuo micro sia specificato per una perdita massima di 1 µA sui suoi pin di ingresso digitali. Poiché il pullup deve mantenere la linea alta, il caso peggiore è supporre che il pin sembri un dispersore di corrente da 1 µA a terra. Se si dovesse utilizzare un pullup da 1 MΩ, ad esempio, quel 1 µA provocherebbe 1 Volt sul resistore da 1 MΩ. Diciamo che questo è un sistema a 5 V, quindi ciò significa che il pin è garantito solo per un massimo di 4 V. Ora devi guardare le specifiche dell'ingresso digitale e vedere qual è il requisito di tensione minima per un livello logico alto. Questo può essere l'80% di Vdd per alcuni micro, che in questo caso sarebbe 4V. Pertanto un pullup da 1 MΩ è proprio al margine. È necessario almeno un po 'meno di quello per un comportamento corretto garantito a causa di considerazioni DC.
Tuttavia, ci sono altre considerazioni e queste sono più difficili da quantificare. Ogni nodo ha un accoppiamento capacitivo con tutti gli altri nodi, sebbene l'entità dell'accoppiamento diminuisca con la distanza in modo tale che siano rilevanti solo i nodi vicini. Se questi altri nodi hanno segnali su di essi, questi segnali potrebbero accoppiarsi all'ingresso digitale. Un pullup di valore inferiore riduce la impedenza della linea, riducendo la quantità di segnale parassita che raccoglierà. Fornisce inoltre un livello CC minimo garantito più elevato rispetto alla corrente di dispersione, quindi c'è più spazio tra quel livello CC e in cui l'ingresso digitale potrebbe interpretare il risultato come un livello logico basso anziché il valore logico alto previsto. Quindi quanto basta? Chiaramente il pullup da 1 MΩ in questo esempio non è abbastanza (una resistenza troppo alta). È quasi impossibile indovinare l'accoppiamento ai segnali vicini, ma vorrei almeno un margine di grandezza dell'ordine rispetto al caso DC minimo. Ciò significa che voglio almeno un pullup di 100 kΩ o inferiore, anche se se c'è molto rumore intorno vorrei che fosse più basso.
C'è un'altra considerazione che fa abbassare il pullup, e questo è il tempo di salita. La linea avrà una certa capacità parassita a terra, quindi decadrà esponenzialmente verso il valore di fornitura invece di andare immediatamente lì. Diciamo che tutta la capacità parassita aggiunge fino a 20 pF. In questo caso il pullup di 100 kΩ è di 2 µs. Ci vogliono 3 costanti di tempo per arrivare al 95% del valore di assestamento, o 6 µs in questo caso. Ciò non ha alcuna conseguenza nel tempo umano, quindi non importa in questo esempio, ma se si trattasse di una linea di bus digitale che si desidera eseguire a una velocità di dati di 200 kHz, non funzionerebbe.
Ora diamo un'occhiata all'altra considerazione concorrente, che è la corrente sprecata quando si preme l'interruttore. Se questa unità si sta esaurendo o è alimentata in modo sostanziale, pochi mA non contano. A 5 V sono necessari 5 kΩ per assorbire 1 mA. Questo è in realtà "molto" di corrente in alcuni casi, e ben più del necessario a causa delle altre considerazioni. Se si tratta di un dispositivo alimentato a batteria e l'interruttore potrebbe essere acceso per una frazione sostanziale del tempo, allora ogni µA può avere importanza e devi pensarci molto attentamente. In alcuni casi è possibile campionare l'interruttore periodicamente e attivare il pullup solo per un breve periodo intorno al campione per ridurre al minimo l'assorbimento di corrente.
Oltre a considerazioni speciali come il funzionamento della batteria, 100 kΩ è un'impedenza abbastanza elevata da farmi innervosire dal raccogliere rumore. 1 mA di corrente sprecata quando l'interruttore è acceso sembra inutilmente grande. Quindi 500 µA, il che significa che l'impedenza di 10 kΩ è circa giusta.
Come ho detto, utilizzare 10 kΩ. È un buon valore.